[RM 13.12.1] This restriction ensures at compile time that there are no dependences on a library unit. For GNAT, this includes implicit implementation dependences on units of the runtime library that are created by the compiler to support specific constructs of the language. Here are some examples:
System.Arith_64
: 64-bit arithmetics for 32-bit platforms,
System.Arith_128
: 128-bit arithmetics for 64-bit platforms,
System.Memory
: heap memory allocation routines,
System.Memory_Compare
: memory comparison routine (aka memcmp
for C),
System.Memory_Copy
: memory copy routine (aka memcpy
for C),
System.Memory_Move
: memoy move routine (aka memmove
for C),
System.Memory_Set
: memory set routine (aka memset
for C),
System.Stack_Checking[.Operations]
: stack checking without MMU,
System.GCC
: support routines from the GCC library.