Successfully Build an Ada Compiler in Arch

From ArchWiki

Jump to: navigation, search


i18n
Español

Contents

[edit] Successfully Build an Ada Compiler in Arch

[edit] Introduction

The thing which was most annoying for me in Arch Linux is that I absolutely needed to have a working Ada compiler on my computer for my studies, and I found there was no Ada support in my favorite Linux distribution.

Unfortunately, an Ada compiler is required to build the Ada compiler. In this HowTo, I will describe how to properly install Ada support in the gcc package.

[edit] Getting a binary compiler

As I said before, an Ada compiler is required to compile an Ada compiler. Therefore you will have to get one from a binary distribution. I suggest (and highly recommend) you use one from http://gnuada.sourceforge.net/. These are the only ones I could get to compile gcc-ada.

So, grab an RPM for your architecture:

For example, I'll use this one: gnat-gcc-4.1.1-r6.FC6.i386.rpm.

Now, create a temporary folder for your build:

$ mkdir ~/ADA_BUILD

And extract the RPM to some directory (this requires rpmextract from extra):

$ cd ~/ADA_BUILD
$ mkdir RPM
$ cd RPM
$ rpmextract.sh /<path to>/gnat-gcc-4.1.1-r6.FC6.i386.rpm

You now have a full gcc installation in ~/ADA_BUILD/RPM.

[edit] Updating the abs database

As root, run:

$ mkdir -p /var/abs #you don't need that if you ran it before already
$ abs

and copy the gcc PKGBUILD and files to your temporary folder:

$ cd ~/ADA_BUILD
$ cp -rv /var/abs/core/devel/gcc .

[edit] Editing the PKGBUILD

$ cd ~/ADA_BUILD/gcc

Now you will have to modify the PKGBUILD to add the Ada language to your compilation: Edit it as follows:

  • In the sources array, replace:
ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++,objc}-${pkgver}.tar.bz2

with

ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++,objc,ada}-${pkgver}.tar.bz2
  • Remove everything from "md5sums=(" to the next right parenthesis.
  • Now find the ./configure line

and add ada to --enable-languages=...

../gcc-${pkgver}/configure --prefix=/usr --enable-shared \
--enable-languages=c,c++,objc,ada --enable-threads=posix \

[edit] Building the package

$ cd ~/ADA_BUILD/gcc

Clean up the directory if it's dirty.

$ rm -r pkg/ src/ *.pkg.tar.gz

You need to set your environment so that the Ada toolchain is used instead of the one installed on your system.

$ export PATH="~/ADA_BUILD/RPM/usr/bin:$PATH"

Check that your system now uses the right gcc compiler.

$ which gcc

This should point to the one you unpacked from the RPM. If that's OK, then you're ready to go.

$ makepkg

This will take a while. When it is built, upgrade it as root:

$ pacman -U gcc-*.pkg.tar.gz

You can now test your Ada compiler with the gnatmake command:

$ gnatmake helloworld.adb

[edit] Additional Notes

Once you have your Ada compiler up-and-running, you don't need to do this over and over again. When a new gcc is released, DON'T upgrade and overwrite your former one. Instead, get the latest PKGBUILD from abs, make the modifications, and recompile.

[edit] Troubleshooting

[edit] configure fails

If you get the following error from makepkg:

configure: error: C compiler cannot create executables

check your CFLAGS entry in /etc/makepkg.conf. In my case, I had to temporarily remove the "-mtune=generic" flag, as the compiler from the rpm did not support that.

For more information on what may be the problem, check the config.log file.

[edit] Links

http://gnuada.sourceforge.net

Personal tools