Compile GCC-4.6.2 in Ubuntu-14.04_32bit
4015 ワード
Warning-前に書いてある再コンパイルgcc.!!! 最後にubuntu 14.04にcodevizをインストールすることに失敗しました.gccが新しいバージョンtexinfoと衝突したためです.現在、CodeViz+GraphVizの代わりにDoxygen+GraphVizがあり、前者はWinバージョンがあります. 次は私がこの2,3日解決した問題で、まだ新しい問題が絶えず現れているので、時間の関係はしばらくCodeVizを行かない. もし同級生がCodevizという道を歩むことに成功したら、ここで私と議論することができます:) Here are some issues during my compiling gcc 4.6.2 for codeviz.
When you install codeviz, you have to install gcc first because gcc is patched for generate the call graph. So below
Error:
Solve:
Go to Download the binarys. At the top of the gcc-src-dir
Error:
Solve:
Go to Download the LIBS. if you use ubuntu (14.04 like me) and your current version of gcc is 4.8,try this:
Error:
Solve:
Error:
Solve:
At first,find it.
and setup an env-var $LIBRARY_PATH
DO NOT LIBRARY_PATH=/usr/lib/i386-linux-gnu:$LIBRARY_PATH,this will get an error like below:
Error:
Solve:
Apparently, your LIBRARY_PATH ends in a colon:
Get rid of that:
Error:
Solve:
just install it.
When You Continue make, You May Get Another Error, see below.
Error:
Solve:
Sadly I've got another error. :(
Error:
Solve:
What I do is:
a little different from where I found the solution. refer to this site: toolchain: fix gcc 4.6 build with gcc5
WARNING: There are still a lot of issues(VERSION THINGS) when compiling gcc4.6.2 in ubuntu 14.04.
When you install codeviz, you have to install gcc first because gcc is patched for generate the call graph. So below
gcc-src-dir
is /compilers/gcc-graph/gcc-4.6.2/
.
└── codeviz-1.0.12
├── bin
├── compilers
| |---- install_gcc-4.6.2.sh
Error:
gcc configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+
Solve:
Go to Download the binarys. At the top of the gcc-src-dir
cd gcc-4.6.2
run th script ./contrib/download_prerequisites
and then ./configure
you won't get this error again. Error:
/usr/include/features.h:374:25: fatal error: sys/cdefs.h: No such file or directory.
Solve:
Go to Download the LIBS. if you use ubuntu (14.04 like me) and your current version of gcc is 4.8,try this:
sudo apt-get install libx32gcc-4.8-dev g++-multilib build-essential
this work for me. Error:
In file included from ../../../gcc-4.6.2/libgcc/../gcc/unwind-dw2.c:333:0:
../../../gcc-4.6.2/libgcc/../gcc/config/i386/linux-unwind.h: In function ‘x86_fallback_frame_state’:
../../../gcc-4.6.2/libgcc/../gcc/config/i386/linux-unwind.h:138:17: error: field ‘info’ has incomplete type
Solve:
+++/gcc/config/i386/linux-unwind.h:138:
--struct siginfo info;
++siginfo_t info;
Error:
cannot find crt1.o: No such file or directory
Solve:
At first,find it.
sudo find /usr/ -name crti*
will ouput: (32 )/usr/lib/i386-linux-gnu/crti.o
(64 )/usr/lib/x86_64-linux-gnu/crti.o
and setup an env-var $LIBRARY_PATH
LIBRARY_PATH=/usr/lib/i386-linux-gnu
export LIBRARY_PATH
DO NOT LIBRARY_PATH=/usr/lib/i386-linux-gnu:$LIBRARY_PATH,this will get an error like below:
Error:
checking LIBRARY_PATH variable... contains current directory
configure: error:
*** LIBRARY_PATH shouldn't contain the current directory when
*** building gcc. Please change the environment variable
*** and run configure again.
make[2]: *** [configure-stage2-gcc] Error 1
Solve:
Apparently, your LIBRARY_PATH ends in a colon:
/usr/lib/x86_64-linux-gnu/:
^
Get rid of that:
export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/
Error:
gperf :command not found
Solve:
just install it.
apt-get install gperf
When You Continue make, You May Get Another Error, see below.
Error:
undefined reference to libc_name_p.
Solve:
make clean
and re- make
again. Sadly I've got another error. :(
Error:
../.././gcc/cp/cfns.gperf:101:1: error: ‘gnu_inline’ attribute present on ‘libc_name_p’
../.././gcc/cp/cfns.gperf:26:14: error: but not here
Solve:
What I do is:
line 99:
--register int hval = len;
++register int hval = (int)len;//mod 1
line 127:
--#if defined __GNUC_STDC_INLINE__ || __GNUC_GNU.....
++#ifdef __GNUC_STDC_INLINE__//mod 2
a little different from where I found the solution. refer to this site: toolchain: fix gcc 4.6 build with gcc5
WARNING: There are still a lot of issues(VERSION THINGS) when compiling gcc4.6.2 in ubuntu 14.04.