GCC supports a #pragma
directive that changes the name used in assembly for a given declaration. While this pragma is supported on all platforms, it is intended primarily to provide compatibility with the Solaris system headers. This effect can also be achieved using the asm labels extension (see Asm Labels).
redefine_extname oldname newname
This pragma gives the C function oldname the assembly symbol newname. The preprocessor macro __PRAGMA_REDEFINE_EXTNAME
is defined if this pragma is available (currently on all platforms).
This pragma and the asm
labels extension interact in a complicated manner. Here are some corner cases you may want to be aware of:
asm
label feature does not have this restriction. asm
labels do not have this restriction. #pragma redefine_extname
is always the C-language name.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc/Symbol_002dRenaming-Pragmas.html