DragonLace.Net
Home of the GNAT AUX and future DRACO Ada compilers.

I finally acquired an Android device, a nice ASUS Transformer TF101 equipped with an NVIDIA Tegra2 dual-core CPU. After building GNATDroid-ARMv7, I confirmed that I could compile Ada programs on FreeBSD and execute them on the Android tablet.

After some trial and error, I modified the ACATS test suite to execute the tests remotely on the transformer. After the first run, 57 tests failed with the same error. It turns out that the default location for temporary files (/tmp) doesn't exist on Android. I patched GNATDroid to first attempt to create temporary files at $ANDROID_DATA/local/tmp (/data/local/tmp) which normally requires a rooted device, and then try $EXTERNAL_STORAGE/ (/sdcard) which would require that the user permissions can write to that area.

With that update, the temporary files could be created and the GNATDroid passed the ACATS testsuite without a single failure. Modifying Dejagnu test harness is a little trickier, so the gnat.dg testsuite still hasn't been run. In any case, the confidence in this cross-compiler is now quite high and these ports can be officially submitted to FreeBSD.

The tarball and signature file referenced in the previous post have been updated to include the patch for adaint.c which controls the temporary file creation. If you have already built GNATDroid, you may wish to deinstall it, re-extract the files, and then rebuild it.

-- John

Posted Sat Aug 20 11:03:08 2011
Last edited Fri May 24 16:28:01 2013
© 2010 John Marino | design elements by styleshout | artwork by Arturo Aguirre