7.2 Specifying a Run-Time Library

The adainclude subdirectory containing the sources of the GNAT run-time library and the adalib subdirectory containing the ALI files and the static and/or shared GNAT library are located in the gcc target-dependent area:

target=$prefix/lib/gcc/gcc-*dumpmachine*/gcc-*dumpversion*/

As indicated above, on some platforms, several run-time libraries are supplied. These libraries are installed in the target dependent area and contain a complete source and binary subdirectory. The detailed description below explains the differences between the different libraries in terms of their thread support.

The default run-time library (when GNAT is installed) is ‘rts-native’. This default run-time is selected by the means of soft links. For example on x86-linux:

               $(target-dir)
              __/ /      \ \___
      _______/   /        \    \_________________
     /          /          \                     \
    /          /            \                     \
ADAINCLUDE  ADALIB      rts-native             rts-sjlj
   :          :            /    \                 /   \
   :          :           /      \               /     \
   :          :          /        \             /       \
   :          :         /          \           /         \
   +-------------> adainclude     adalib   adainclude   adalib
              :                     ^
              :                     :
              +---------------------+

              Run-Time Library Directory Structure
   (Upper-case names and dotted/dashed arrows represent soft links)

If you want to select the ‘rts-sjlj’ library on a permanent basis, you can modify these soft links with the following commands:

$ cd $target
$ rm -f adainclude adalib
$ ln -s rts-sjlj/adainclude adainclude
$ ln -s rts-sjlj/adalib adalib

Alternatively, you can specify rts-sjlj/adainclude in the file $target/ada_source_path and rts-sjlj/adalib in $target/ada_object_path.

You can select another run-time library temporarily by using the --RTS switch, e.g., --RTS=sjlj