我们有一个装有 gcc 7.3 的 Solaris 11 系统,我们需要安装 Ada 软件包。 在Linux gcc 7上,Ada/GNAT作为gcc安装的一部分:
apt install gcc
我访问了AdaCore,看起来Solaris(SPARC(不再在列表中。 我需要使用 Ada95,无论如何我们都希望在 Linux 和 Solaris 上使用相同的编译器。
pkg install gcc
仅安装了各种C++命令和Fortran。
pkg install gcc-ada
像gcc7ada这样的变体,没有发现任何可以安装的东西。
如果必须,我们可以重建GCC 7的Ada组件,但是我还没有找到一个清晰的coodbook风格"如何..."(还没有(。
希望您能按偏好顺序指出这些项目,以帮助我们回到正轨。
- 用于 gcc7/Solaris 11 的 Solaris 11 gcc-ada 软件包 Spark 和软件包存储库。
- 一个"替代"包存储库,我可以检索 GCC Ada 工具。
- 预先构建GCC 7 Ada模块,我们可以将其复制到正确的位置。
- 现成的 Solaris 构建 Ada/GNAT 项目以及如何下载并开始构建。
- 在 Solaris(或 Unix(上下载和构建带有 gcc 7 的 gcc-ada 的说明。
从过去几天在 Gnu 编译器集合、Oracle 上搜索、包管理器搜索、谷歌等等......如今,Solaris上似乎几乎没有对CGG Ada的支持。
我对该列表以外的其他解决方案非常感兴趣。 例如,有没有人从Linux交叉编译到Solaris? 这是否适用于 Solaris 机器上的 GDB?
期待您的建议。
我已经使用以下过程在 OpenIndiana(Hipster 2020/10(上用 GNAT 成功构建了 gcc 7.50(x86_64带有 i386 交叉编译器的原生版本(。
-
从 Dragonlace 下载引导编译器 http://downloads.dragonlace.net/src/ada-bootstrap.x86_64.solaris.511.tar.bz2
-
从 https://github.com/illumos/gcc/tree/il-7_5_0 获取 illumos gcc 7.5.0 源代码
-
将引导编译器的 bin 目录放在 $PATH 的前面,将/usr/bin/gcc/usr/bin/cpp/usr/bin/g++ 替换为指向引导编译器目录中对应项的符号链接(请参阅下面的注释 re g++ 和 c++(
-
确保你有 gnu-binutils 和 gmake;然后运行 contrib/download_prerequisites
-
配置 --enable-languages='c ada c++' --build=x86_64-aux-solaris2.11 --enable-threads=posix --disable-libmudflap --disable-libgomp --disable-libssp --disable-libquadmath --disable-nls --disable-shared --disable-lto --disable-libstdcxx-pch --enable-multilib --with-gnu-as --with-as=/usr/bin/gas --without-gnu-ld --with-ld=/usr/bin/ld
-
gmake 然后 gmake install
笔记: 此设置应足够接近 Solaris 11 才能工作。 如果没有,请尝试使用常规的 gcc 7.5.0 版本,而不是 illumos 修改的分支。
如果您卡在链接阶段,请尝试使用 gcc ld,但您绝对应该先尝试使用 Solaris ld。 gnu as (gas( 使构建更加顺利。我没有任何问题,但是如果您在第 1 阶段结束时或第 2 阶段开始时遇到困难,请尝试设置 $CONFIG_SHELL=/usr/bin/ksh - 我认为它已被修复,但至少对于较旧的 gcc 版本,需要指定 ksh,因为内置的 sh 具有一些非 POSIX 特性,不适用于某些组件的 makefile
如果不构建 gcc c++ 并使用具有完整引导程序的 g++,我就无法获得对 gnat 的支持库之一轻松编译。 你也许能够弄清楚,但阻力最小的路径可能是构建 gcc c++ 并将 g++ 符号链接放在/usr/bin 中,这是 makefile 想要找到它的地方。
请注意,我对Solaris了解不多,但是在Google上快速搜索后,我找到了OpenCSW网站。该网站提供 gcc4ada 和 gcc5ada。
看起来gcc5ada
是使用 makefile 构建的(如此处找到,特别是第 424 行(。gcc7ada
也存在类似的生成文件(如此处所示,特别是通知行 426(。然而,虽然似乎可以使用后一个makefile创建包"gcc7ada
",但它没有发布在 OpenCSW.org 网站上(网站不再更新?
您可以尝试先安装gcc5ada
然后使用这个旧的GCC/GNAT编译器作为编译所需版本的引导程序(使用GCC 7制作文件(。