0
|
1 /* mangle.h - This file has some CPP macros to deal with different symbol
|
|
2 * mangling across binary formats.
|
|
3 * (c)2002 by Felix Buenemann <atmosfear at users.sourceforge.net>
|
|
4 * File licensed under the GPL, see http://www.fsf.org/ for more info.
|
|
5 */
|
|
6
|
|
7 #ifndef __MANGLE_H
|
|
8 #define __MANGLE_H
|
|
9
|
|
10 /* Feel free to add more to the list, eg. a.out IMO */
|
|
11 /* Use rip-relative addressing if compiling PIC code on x86-64. */
|
|
12 #if defined(__CYGWIN__) || defined(__MINGW32__) || defined(__OS2__) || \
|
|
13 (defined(__OpenBSD__) && !defined(__ELF__))
|
|
14 #if defined(ARCH_X86_64) && defined(PIC)
|
|
15 #define MANGLE(a) "_" #a"(%%rip)"
|
|
16 #else
|
|
17 #define MANGLE(a) "_" #a
|
|
18 #endif
|
|
19 #else
|
|
20 #if defined(ARCH_X86_64) && defined(PIC)
|
|
21 #define MANGLE(a) #a"(%%rip)"
|
|
22 #elif defined(CONFIG_DARWIN)
|
|
23 #define MANGLE(a) "_" #a
|
|
24 #else
|
|
25 #define MANGLE(a) #a
|
|
26 #endif
|
|
27 #endif
|
|
28
|
|
29 #endif /* !__MANGLE_H */
|
|
30
|