The FSF GCC compilerAt the writing, the latest release of GCC is 5.2.0. First I update the build script to matched what's in the current tree. I would to like to replace the stock Slackware64 14.1's compiler with the new one, but GCC changed the default standard C++ library ABI since 5.1.0. To make it compatible with GCC 4, a configure switch (--with-default-libstdcxx-abi=gcc4-compatible) was added to the build script. Also, I have changed the build directory to a fixed location to avoid the random location in the original script. As it is needed for gnat_util build, a fixed location is easier for the script to find the right files. I had problem on i586 platform, which I had to explicitly add the --disable-multilib switch to the configuration and remove the conditional test for it. Built and install without problem.
P.S. Due to GPRBuild will look for GNAT's runtime library as libgnat-5.2.so in stead of libgnat-5.so, build script was modified to create the softlink when packaging the GNAT compiler. Also created libgnarl-5.2.so from libgnarl-5.so
XMLAdaFor XMLAda GPL 2015, the default build process is making use of gprbuild, which depends on XMLAda. I followed what was done on Arch Linux and created a custom Makefile.SlackBuild. But I installed the package with the following scheme, similar to what GNAT GPL 2015 is doing but with sub-directories for each sub-module:
usr/include/xmlada |- input |- unicode ... usr/lib64/xmlada |- input | |- static | `- relocatable |- unicode | |- static | `- relocatable ...The document build requires Sphinx, as SlackBuilds.org provides all necessary build scripts, it is a matter of installing the relevant packages and dependencies.
GPRBuildThe 2015 version of gprbuild required gprbuild itself. So Similar to XMLAda, a custom Makefile was borrowed from the Arch Linux project and modified to suite the needs of Slackware. My first build was without error, but it failed to build when trying it for gnat_uitl, complained about:
gnat_util.gpr:21:09: warning: no compiler specified for language "C", ignoring all its sources gnat_util.gpr:21:09: warning: no compiler specified for language "Ada", ignoring all its sourcesFurther investigation showed that the default target for gprconfig was wrong, it was set to "Slackware" when generating gprconfig-sdefault.ads in my build script, due to not fully understand what it means. After set it to "$ARCH-slackare-linux", it still failed on linking, looking for GNAT's runtime library libgnat-5.2.so, which does not exist for a standard GCC build, as it only has libgnat-5.so. After created a soft link from libgnat-5.so, it builds and working.
GNAT_UTILThe GNAT Util Library provides access to GNAT compiler internals for AdaCore utilities. The latest release is 5.1.0, since there are no changes on Ada part of the GCC for 5.2.0, it is sufficient for us. The build went well except for the initial gprbuild target problem.
GTKAdaGTKAda require Gtk+3 version after 3.8.3, the stock version in Slackware 14.1 is 3.8.2, need to upgrade to a latter version. The version in Slackware current tree is too new, I settled on the latest 3.8 release 3.8.9 and rebuild the GTK+3 package. The GL support is turned on for this version, but when building test program, it complained:
gtkada-gpl-2015-src/src/lib/gtkada_gl/static/libgtkada_gl.a(gdkgl.o): undefined reference to symbol 'XFree' /usr/lib/libX11.so.6: error adding symbols: DSO missing from command lineAfter patching the testgtk.gpr with linker option to link with -lX11 -lm, it built and run fine.