我试图在osx 10.11上编译gcc 4.x(主要关注4.9.2和4.9.3)。无论我做什么,我都无法正确构建它,它总是在某处出错。使用5.x不是一个选项,也不使用brew或macport中的gcc。
我已经安装(并更新)了Xcode 7.2和命令行工具。以下版本的osx(例如10.9,但不确定10.10)对我来说效果很好。以下是我用来构建它的内容:
cd gcc-4.9.2
./contrib/download_prerequisites
cd ..
mkdir objdir
cd objdir
$PWD/../gcc-4.9.2/configure --prefix=/usr/local/gcc-4.9.2
make
make install
以下是这个错误的原因(还有更多的ptrdiff_t错误):
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:1854:29: error: use of undeclared identifier 'ptrdiff_t'
const ptrdiff_t __m = (~ptrdiff_t(0) ^
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[3]: *** [graphite.o] Error 1
make[3]: *** Waiting for unfinished jobs....
20 errors generated.
make[3]: *** [graphite-blocking.o] Error 1
20 errors generated.
20 errors generated.
make[3]: *** [graphite-clast-to-gimple.o] Error 1
make[3]: *** [graphite-dependences.o] Error 1
20 errors generated.
make[3]: *** [graphite-interchange.o] Error 1
13 warnings generated.
/bin/sh /usr/local/src/objdir/../gcc-4.9.2/gcc/../move-if-change tmp-attrtab.c insn-attrtab.c
/bin/sh /usr/local/src/objdir/../gcc-4.9.2/gcc/../move-if-change tmp-dfatab.c insn-dfatab.c
/bin/sh /usr/local/src/objdir/../gcc-4.9.2/gcc/../move-if-change tmp-latencytab.c insn-latencytab.c
make[2]: *** [all-stage1-gcc] Error 2
make[1]: *** [stage1-bubble] Error 2
make: *** [all] Error 2
所以,我想这里的问题是,如果有人知道让gcc 4.x在10.11上构建的任何技巧。或者如果没有,任何关于弄清楚这里发生了什么的建议。我已经尝试过寻找好几天,并且没有想出任何东西。不太确定如何处理这个问题。如果需要,我绝对可以发布更多相关信息(只是不确定相关的内容)。
答案 0 :(得分:1)
tar xf gcc-4.9.3.tar.bz2
cd gcc-4.9.3
#fix - os x got now wget
sed -i.bak 's/wget/curl -O/g' contrib/download_prerequisites
./contrib/download_prerequisites
# this fixes your problem !!!!
sed -i.bak '/__need_size_t/d' gmp/gmp-h.in
mkdir build
cd build
#for example
../configure --target=x86_64-apple-darwin15.5.0 --build=x86_64-apple- darwin15.5.0 \
--prefix=/usr/local --program-suffix=-4.9 \
--enable-languages=c,c++ --with-system-zlib --enable-libstdcxx-time=yes \
--enable-stage1-checking --enable-checking=release --enable-lto \
--disable-multilib --disable-nls