【问题标题】:Compiling gcc-5.2.0 in RHEL6 with Ada support: "make sure you are using consistent versions of gcc/gnatbind"在支持 Ada 的 RHEL6 中编译 gcc-5.2.0:“确保您使用的是一致版本的 gcc/gnatbind”
【发布时间】:2016-01-29 17:37:12
【问题描述】:

使用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 时也使用了这些相同的配置选项(此后没有重大更新或更改),并且没有收到此错误。

我很高兴用任何其他可能相关的信息来更新这个问题,请告诉我。

【问题讨论】:

  • 我不知道。但是 4.4.7 是一个可疑的旧版本。如果您成功构建并安装了 gcc4.9.2,我建议使用它来构建 gcc5.2 而不是 4.4。
  • 惊讶地看到“make install”重建工具。会不会是路径问题?您可能正在尝试以 root 身份安装 - 当您更改为 root 时,路径会改变吗?
  • @BrianDrummond 谢谢,我会用 4.9.2 再试一次。目前,我只是从 --enable-languages 行中删除了“ada”。 make install 目前正在运行,似乎做得更好。在我们解决这个问题之前,必须给我们的用户留下“Ada 目前不受支持”的消息。
  • @SimonWright 所有步骤、配置、制作和安装都以 root 身份运行。 PATH 没有什么奇怪/不寻常的地方。目前我只是从语言中删除了“ada”,因为请求这个最新版本 gcc 的用户只对 c、c++ 和 fortran 感兴趣。不过,从长远来看,希望得到 Ada 的支持。

标签: gcc build compilation makefile ada


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 2021-01-22
    相关资源
    最近更新 更多