summaryrefslogtreecommitdiff
path: root/debian/README.gnat
blob: f352ce6fbb8cfce8671c01342bde2b793755cdaf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
If you want to develop Ada programs and libraries on Debian, please
read the Debian Policy for Ada:

http://people.debian.org/~lbrenta/debian-ada-policy.html

The default Ada compiler is and always will be the package `gnat'.
Debian contains many programs and libraries compiled with it, which
are all ABI-compatible.

Starting with gnat-4.2, Debian provides both zero-cost and
setjump/longjump versions of the run-time library.  The zero-cost
exception handling mechanism is the default as it provides the best
performance.  The setjump/longjump exception handling mechanism is new
and only provided as a static library.  It is necessary to use this
exception handling mechanism in distributed (annex E) programs.  If
you wish to use the new sjlj library:

1) call gnatmake with --RTS=sjlj
2) call gnatbind with -static

Do NOT link your programs with libgnat-4.2.so, because it uses the ZCX
mechanism.


This package also includes small tools covering specific needs.

* When linking objects compiled from both Ada and C sources, you need
  to use compatible versions of the Ada and C compilers. The
  /usr/bin/gnatgcc symbolic link targets a version of the C compiler
  compatible with the default Ada compiler, and may differ from the
  default C compiler /usr/bin/gcc.

* When packaging Ada sources for Debian, you may want to read the
  /usr/share/ada/debian_packaging.mk Makefile snippet and/or include
  it from debian/rules in order to set sensible defaults.