无法在 UBI8 中引导 GNAT 源构建

问题描述 投票:0回答:1

我正在尝试从 UBI8 中的源代码编译 GCC 8.5.0。具体来说,我想同时构建 GNAT。从 Docker 镜像开始

redhat/ubi8

我安装所需的软件包

dnf install -y gcc-gnat gcc-c++ gmp-devel mpfr-devel libmpc-devel

并从GNU网站下载GCC 8.5.0(与系统编译器版本相同)的源代码。

我解压缩,创建构建目录,然后从那里运行配置。大多数标志在这里无关紧要,但我将 ada 添加到构建中:

../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto,ada ...

我收到此错误:

configure: error: GNAT is required to build ada

显然

gnat
已安装:

# gnat --version

GNAT 8.5.0 20210514 (Red Hat 8.5.0-21)
Copyright (C) 1996-2018, Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

那么发生了什么?

gcc
似乎不是使用 ada 前端构建的,因此它无法理解 ada 文件。正如这里所见

# touch a.adb
# gcc -c a.adb

gcc: error: a.adb: Ada compiler not installed on this system

这引出了我的问题:是否可以使用系统编译器构建 GNAT?我能够在 CentOS7 上运行,因为那里的软件包内置了前端,但这里似乎没有

gnat
1个回答
0
投票

可能不是。查看EPEL中gcc-gnat包的描述:

重要提示:对于带有 Ada/GNAT 的 GCC,请使用“gnatgcc”而不是“gcc” 支持,因为不幸的是“gcc”并不是真正的模块化,而且也是 构建时没有 Red Hat(或 100% bug-for-bug 的供应商)的 Ada/GNAT 支持 兼容的嵌入式发行版)。

为 GCC 提供 GNAT 的软件包将其作为独立的 GCC 编译器提供,并支持 Ada (

gnatgcc
)。 “正常”
gcc
可执行文件是从 Red Hat 存储库安装的。该编译器(从 RHEL 8 开始,链接)是在没有 Ada 支持的情况下构建的。

上述内容可以在软件包安装程序的输出中得到验证。它表明

gcc-gnat
是从
epel
安装的,
gcc
是从
ubi-9-appstream-rpms
安装的。

注意:输出显示在 UBI 9 上安装了

gcc-gnat
,因为我无法在 UBI 8 上安装它。但推理似乎是相同的。

Extra Packages for Enterprise Linux 9 - x86_64  7.5 MB/s |  21 MB     00:02
Extra Packages for Enterprise Linux 9 openh264  5.9 kB/s | 2.5 kB     00:00
Dependencies resolved.
=======================================================================================
 Package                      Arch    Version               Repository             Size
=======================================================================================
Installing:
 gcc-gnat                     x86_64  11.4.1-4.el9          epel                   16 M
Upgrading:
 glibc                        x86_64  2.34-100.el9_4.2      ubi-9-baseos-rpms     2.0 M
 glibc-common                 x86_64  2.34-100.el9_4.2      ubi-9-baseos-rpms     313 k
 glibc-minimal-langpack       x86_64  2.34-100.el9_4.2      ubi-9-baseos-rpms      28 k
Installing dependencies:
 binutils                     x86_64  2.35.2-43.el9         ubi-9-baseos-rpms     4.6 M
 binutils-gold                x86_64  2.35.2-43.el9         ubi-9-baseos-rpms     736 k
 cpp                          x86_64  11.4.1-3.el9          ubi-9-appstream-rpms   11 M
 elfutils-debuginfod-client   x86_64  0.190-2.el9           ubi-9-baseos-rpms      39 k
 gcc                          x86_64  11.4.1-3.el9          ubi-9-appstream-rpms   32 M
 glibc-devel                  x86_64  2.34-100.el9_4.2      ubi-9-appstream-rpms   42 k
 glibc-headers                x86_64  2.34-100.el9_4.2      ubi-9-appstream-rpms  548 k
 kernel-headers               x86_64  5.14.0-427.18.1.el9_4 ubi-9-appstream-rpms  7.4 M
 libgnat                      x86_64  11.4.1-4.el9          epel                  1.3 M
 libgnat-devel                x86_64  11.4.1-4.el9          epel                  4.1 M
 libmpc                       x86_64  1.2.1-4.el9           ubi-9-appstream-rpms   65 k
 libpkgconf                   x86_64  1.7.3-10.el9          ubi-9-baseos-rpms      37 k
 libxcrypt-devel              x86_64  4.4.18-3.el9          ubi-9-appstream-rpms   32 k
 make                         x86_64  1:4.3-8.el9           ubi-9-baseos-rpms     541 k
 pkgconf                      x86_64  1.7.3-10.el9          ubi-9-baseos-rpms      45 k
 pkgconf-m4                   noarch  1.7.3-10.el9          ubi-9-baseos-rpms      16 k
 pkgconf-pkg-config           x86_64  1.7.3-10.el9          ubi-9-baseos-rpms      12 k
Installing weak dependencies:
 glibc-langpack-en            x86_64  2.34-100.el9_4.2      ubi-9-baseos-rpms     666 k
© www.soinside.com 2019 - 2024. All rights reserved.