Next: Pragma Linker_Constructor, Previous: Pragma Link_With, Up: Implementation Defined Pragmas
pragma Linker_Alias (
[Entity =>] local_NAME
[Target =>] static_string_EXPRESSION);
local_NAME must refer to an object that is declared at the library
level. This pragma establishes the given entity as a linker alias for the
given target. It is equivalent to __attribute__((alias)) in GNU C
and causes local_NAME to be emitted as an alias for the symbol
static_string_EXPRESSION in the object file, that is to say no space
is reserved for local_NAME by the assembler and it will be resolved
to the same address as static_string_EXPRESSION by the linker.
The actual linker name for the target must be used (e.g. the fully
encoded name with qualification in Ada, or the mangled name in C++),
or it must be declared using the C convention with pragma Import
or pragma Export.
Not all target machines support this pragma. On some of them it is accepted
only if pragma Weak_External has been applied to local_NAME.
-- Example of the use of pragma Linker_Alias
package p is
i : Integer := 1;
pragma Export (C, i);
new_name_for_i : Integer;
pragma Linker_Alias (new_name_for_i, "i");
end p;