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 the `rts-sjlj' library is to be selected on a permanent basis, these soft links can be modified 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.

Selecting another run-time library temporarily can be achieved by using the --RTS switch, e.g., --RTS=sjlj