记录编译glibc-2.15出现找不到cpuid.h时的解决方法。
《
深度探索Linux操作系统》这边书的操作步骤参考网站:
http://www.kissthink.com/archive/shen-du-tan-suo--i-n-u-x-cao-zuo-xi-tong--xi-tong-gou-jian-he-yuan-li-jie-xi---gong-ju-bian-yi--.html
编译glibc-2.15时,先进行配置:
../glibc-2.15/configure \
--prefix=/usr --host=$TARGET \
--enable-kernel=3.7.4 --enable-add-on
--with-headers=$SYSROOT/usr/include \
libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes \
libc_cv_ctors_header=yes
出现找不到"cpuid.h"的错误,在《深度探索Linux操作系统》这边书上是要先打一个glibc-2.15-cpuid.path这个补丁。但是找半天就是找不到这个补丁。
后来去查看配置文件到底怎么执行的,发现sysdeps/x86_64/configure 调用sysdeps/i386/configuers。
打开sysdeps/i386/configuers 再这里面查找"cpuid.h",妈蛋,仇人相见分外眼红,管他三七二十一,先把与它相关的代码屏蔽掉。大概在第635行:
#ac_fn_c_check_header_mongrel "$LINENO" "cpuid.h" "ac_cv_header_cpuid_h" "$ac_includes_default"
#if test "x$ac_cv_header_cpuid_h" = xyes; then :
#
#else
#as_fn_error $? "gcc must provide the <cpuid.h> header" "$LINENO" 5
#fi
然后再配置编译,没有出现问题了。
最后执行:make install_root=$SYSROOT install
$SYSROOT = /vita/sysroot
查看下成果:
# ls /vita/sysroot/
etc lib64 sbin usr var