出于“原因”,我需要构建一个没有SIMD指令的x86工具链(尝试使用-march是不够的,因为glibc将包含用于使用SIMD指令的函数,等等)。
我使用以下配置标志构建了自己的gcc 5.3:
../src/gcc/configure --prefix=/scratch/install --enable-languages=c,c++ \
--with-cpu=ivybridge \
--with-arch=ivybridge \
CFLAGS="-march=ivybridge" \
CXXFLAGS="-march=ivybridge"然后,我使用以下配置标志构建了自己的glibc:
../src/glibc/configure --prefix=/scratch/install --with-arch=ivybridge \
CC="/scratch/install/bin/gcc" \
CXX="/scratch/install/bin/g++" \
CFLAGS="-O2 -march=ivybridge" \
CXXFLAGS="-O2 -march=ivybridge -Wa,-march=corei7+nommx+nosse+noavx"`我证实我的gcc没有用我的滑头。
$ /scratch/install/bin/gcc -print-file-name=libc.so
/usr/lib/x86_64-linux-gnu/libc.so问题:
如何在新编译的glibc中链接?我只对编译-static二进制文件感兴趣,如果这有帮助的话。
发布于 2016-04-27 04:10:23
我证实我的gcc没有用我的滑头。
为什么要这么做?
您需要重新构建gcc,添加--with-sysroot=/scratch/install (可能还有其他标志)。
一般来说,构建正确的linux到linux交叉编译器是相当棘手的,您可能会发现使用交叉凳-ng会为您节省相当多的尝试和错误。
https://stackoverflow.com/questions/36788849
复制相似问题