我正在尝试从源代码编译 GLIBC,但是在此过程中我收到以下错误:
../sysdeps/ieee754/flt-32/e_gammaf_r.c: In function ‘__ieee754_gammaf_r’:
../sysdeps/ieee754/flt-32/e_gammaf_r.c:127:32: error: implicit declaration of function ‘__builtin_roundeven’; did you mean ‘__builtin_round’? [-Werror=implicit-function-declaration]
double m = z - 0x1.7p+1, i = __builtin_roundeven(m), step = __builtin_copysign(1.0,i);
^~~~~~~~~~~~~~~~~~~
__builtin_round
cc1: all warnings being treated as errors
我尝试使用以下内容进行编译:
git clone https://sourceware.org/git/glibc.git glibc-devel
cd glibc-devel
mkdir build
cd build
../configure --prefix=/home/a0504063/bin/python/glibc --host=x86_64-linux-gnu --build=x86_64-linux-gnu CC="gcc -m64" CXX="g++ -m64" CFLAGS="-O2 -Wno-error" CXXFLAGS="-O2 -Wno-error"
make
这会产生上述错误。正如配置命令中所示,我使用
-Wno-error
来尝试抑制默认的“所有警告都被视为错误”行为。但是,此选项被添加到默认选项列表中,导致它被忽略。
我目前正在使用:
18596c5415
gcc/g++版本:8.5.0
您的 GCC 太旧了。
来自补丁评论:
版本 10 之前的 gcc 不支持。__builtin_roundeven
您的选择是: