使用Ada支持在RHEL6中编译gcc-5.2.0:“确保使用的是gcc / gnatbind的一致版本”

时间:2015-10-29 14:11:24

标签: gcc build compilation makefile ada

使用RHEL6,内核版本2.6.32-573.3.1.el6.x86_64.

配置并成功无误。但是在make install过程中:

gcc -c -g -O2  -gnatpg -gnatwns  -W -Wall -nostdinc -I- -I. -Iada/generated
-Iada -I../../gcc-5.2.0/gcc/ada -I../../gcc-5.2.0/gcc/ada/gcc-interface
../../gcc-5.2.0/gcc/ada/gnat1drv.adb -o ada/gnat1drv.o

gnatbind -nostdinc -I- -I. -Iada/generated -Iada -I../../gcc-5.2.0/gcc/ada
-I../../gcc-5.2.0/gcc/ada/gcc-interface -o b_gnat1.adb -n ada/gnat1drv.ali

fatal error: file s-stalib.ali is incorrectly formatted
make sure you are using consistent versions of gcc/gnatbind

==================================

[root@server1 ~]# which gcc
/usr/bin/gcc
[root@server1 ~]# which gnatbind
/usr/bin/gnatbind

[root@server1 Notes]# gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16
[root@server1 Notes]# gnatbind --version
GNATBIND 4.4.7 20120313 (Red Hat 4.4.7-16)

==================================

configure,make,make install都是从单独的构建目录执行的,而不是源目录

==================================

wget http://mirrors-usa.go-parts.com/gcc/releases/gcc-5.2.0/gcc-5.2.0.tar.gz
tar -xvf gcc-5.2.0.tar.gz
mkdir gcc-5.2.0-build
cd gcc-5.2.0-build

==================================

../gcc-5.2.0/configure --prefix=/usr/local/pkg/gcc/5.2.0 \
                       --enable-bootstrap \
                       --enable-shared \
                       --enable-threads=posix \
                       --enable-checking=release \
                       --with-system-zlib \
                       --enable-__cxa_atexit \
                       --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go \
                       --enable-java-awt=gtk \
                       --with-tune=generic \
                       --with-arch_32=i686 \
                       --build=x86_64-redhat-linux 2>&1 | tee CONFIGURE.OUT

==================================

我很难过。当我们在同一台服务器上安装gcc 4.9.2时,我们使用了这些相同的配置选项,也是今年(此后没有重大更新或更改),并且没有出现此错误。

我很高兴用其他可能相关的信息更新此问题,请告知我们。

1 个答案:

答案 0 :(得分:0)

可能你的4.4.7托管的gcc太旧了,无法直接构建5.2.0。您应该尝试首先构建一个中间版本,比如4.8.4,然后使用新构建的编译器构建5.2.0。我成功地用Slackware上的4.7.1构建了5.2.0。