These attributes are supported on IA-64 targets:
syscall_linkage ¶This attribute applies to functions.
It is used to modify the IA-64 calling convention by marking all input registers as live at all function exits. This makes it possible to restart a system call after an interrupt without having to save/restore the input registers. This also prevents kernel data from leaking into application code.
version_id ¶This attribute applies to global variables or functions.
This IA-64 HP-UX attribute renames the symbol to contain a version string, thus allowing for function level versioning. HP-UX system header files may use function level versioning for some system calls.
extern int foo () __attribute__((version_id ("20040821")));
Calls to foo are mapped to calls to foo{20040821}.
model (model-name) ¶This attribute applies to variables.
On IA-64, use this attribute to set the addressability of an object.
At present, the only supported identifier for model-name is
small, indicating addressability via “small” (22-bit)
addresses (so that their addresses can be loaded with the addl
instruction). Caveat: such addressing is by definition not position
independent and hence this attribute must not be used for objects
defined by shared libraries.