GCC 4.6.1 was released on June 27th. While not much was done directly to GNAT, 157 bugs were addressed. GNAT AUX was updated accordingly and it's already available to FreeBSD users. Patches have already been submitted to pkgsrc so that DragonFly and NetBSD fans will also receive the latest version of GNAT-AUX soon. We still don't own a real Android device, so continued work on the Android compiler has been difficult. This may change in the near future as we have our eyes on an Asus Transformer (ARM v7), but until then we are still limited to using the ARM v5 Android SDK emulator. A new cross-compiler was built, this time using FreeBSD64 as the host machine. The goal is to convert the cross compiler into a set of ports so that FreeBSD users can obtain the cross compiler like they get other software. This will be the next project, and once the Android tablet is obtained, the full testsuite will be run on the cross-compiler. In the meantime, I found a text version of Tetris written in Ada on the AdaPower site. It turns out this game takes advantage of tasking, and that's how we found out the the Android compiler had broken tasking. Luckily, it only took a couple of hours to figure out how to fix it. As proof, a screenshot of FreeBSD64-built Ada Tetris running inside an Android SKD emulator hosted on Ubuntu 10.04 LTS Linux is presented, and it works! The fact that tasking runs is a very good indicator that the compiler should do very well when the testsuite is run. Hopefully we can get these ports built were interested parties can untar them in FreeBSD's /usr/ports directory and get working Android cross-compilers so they can play with it as well. If all goes well, we'll get the ports officially added to the FreeBSD ports tree. FreeBSD users now have an easy method to obtain their own Ada capable Android cross-compiler. We have created four FreeBSD ports that can build two different GNAT-AUX (gcc 4.6.1) compilers that target Android ARMv5 and Android ARMv7. The ARMv5 version creates binaries that can be run on the Android SKD emulator. The ARMv7 version is intended to produce binaries that can be run on ARM Cortex-A8+ CPUs, but until we get that Android tablet, we can't confirm it's functional. The emulator can NOT run ARMv7 binaries, so don't attempt it. The ports will not be submitted to FreeBSD until we can run the full testsuite on them, but in the meantime we're making them available to anyone that wants to use them now (no promises of course!) The four packages are:
The first two are dependencies of the last two which get automatically built, so the process to install a cross-compiler is simple (logged in as root):
If you prefer PGP-signed downloads, the signature file is available, and can be verified against John Marino's public key Feedback or comments about these cross-compilers are always welcome. |