2016-02-03 81 views
1

我想在osx 10.11上編譯gcc 4.x(主要集中在4.9.2和4.9.3左右)。無論我做什麼,我都無法正確構建它,它總是在某處出錯。使用5.x不是一個選項,也不是使用來自brew或macports的gcc。在Mac上構建GCC 4.x 10.11

我已經安裝(和更新)了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上構建的技巧。或者,如果沒有,任何建議,以弄清楚這裏發生了什麼。我試過尋找幾天,並沒有拿出任何東西。不太確定如何解決這個問題。如果需要,我肯定可以發佈更多相關信息(只是不確定相關內容)。

回答

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