我如何告诉gcc使用glibc的特定实例?

时间:2016-04-22 08:33:38

标签: gcc glibc

对于"原因",我需要构建一个不发出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没有使用我的glibc。

$ /scratch/install/bin/gcc  -print-file-name=libc.so
/usr/lib/x86_64-linux-gnu/libc.so

问题:

如何在新编译的glibc中链接?我只对编译-static二进制文件感兴趣,如果有帮助的话。

1 个答案:

答案 0 :(得分:0)

  

我确认我的gcc没有使用我的glibc。

为什么会这样?

您需要再次重建gcc,添加--with-sysroot=/scratch/install(以及可能的其他标记)。

一般来说,构建正确的 linux-to-linux交叉编译器非常棘手,你可能会发现使用crosstool-ng会为你节省大量的试验和错误。< / p>