美文网首页
Compile GCC-4.6.2 in Ubuntu-14.0

Compile GCC-4.6.2 in Ubuntu-14.0

作者: Quasars | 来源:发表于2015-07-31 14:39 被阅读3152次

    Warning - 写在前面

    • 不建议重新编译gcc.!!!

    • 最后我在ubuntu14.04上安装codeviz还是失败了,原因gcc与新版本texinfo冲突,目前有Doxygen+GraphViz完全可以代替CodeViz+GraphViz,并且前者有Win版本。

    • 下面是我这两天解决的问题,由于还不断有新问题出现,时间关系我暂时不走CodeViz了。

    • 若有同学成功走通Codeviz这条路可以在这跟我讨论下:)

    Here are some issues during my compiling gcc 4.6.2 <strong>for codeviz</strong>.

    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 <codeviz-src-dir>/compilers/gcc-graph/gcc-4.6.2/

    .
    └── codeviz-1.0.12
        ├── bin
        ├── compilers
         |     |---- install_gcc-4.6.2.sh  <--you will run this script,and it will: 1.download gcc-4.6.2.tar.gz 
        │   ├── gcc-graph                                                           2.mkdir    gcc-graph 
        │   │   ├── gcc-4.6.2    <--where gcc actually is                           3. untar it into gcc-graph
        │   │   └── objdir                                                          4. patch it
        │   └── gcc-patches                                                         5. compile it.
    

    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-dircd gcc-4.6.2
    run th script./contrib/download_prerequisites
    and then ./configureyou 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
    

    <strong>DO NOT</strong> <i>LIBRARY_PATH=/usr/lib/i386-linux-gnu:$LIBRARY_PATH</i>,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

    <strong>When You Continue make, You May Get Another Error, see below.</strong>

    Error:

    undefined reference to libc_name_p.

    Solve:

    make clean and re-make again.

    <strong>Sadly I've got another error. :(</strong>

    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:<a href=https://github.com/jmccrohan/openwrt/commit/46f366f967757517ff75753db0647b166a838a6b>toolchain: fix gcc 4.6 build with gcc5 </a>

    WARNING: There are still a lot of issues(VERSION THINGS) when compiling gcc4.6.2 in ubuntu 14.04.

    相关文章

      网友评论

          本文标题:Compile GCC-4.6.2 in Ubuntu-14.0

          本文链接:https://www.haomeiwen.com/subject/yrfvqttx.html