Commit | Line | Data |
---|---|---|
d8045f23 NC |
1 | int |
2 | library_func1 (void) | |
3 | { | |
4 | return 2; | |
5 | } | |
6 | ||
7 | int global = 1; | |
8 | ||
9 | #ifdef WITH_IFUNC | |
10 | ||
11 | static int minus_one (void) { return -1; } | |
12 | static int zero (void) { return 0; } | |
13 | ||
14 | void * library_func2_ifunc (void) __asm__ ("library_func2"); | |
15 | void * library_func2_ifunc (void) { return global ? minus_one : zero ; } | |
16 | __asm__(".type library_func2, %gnu_indirect_function"); | |
17 | ||
cbe950e9 L |
18 | extern int library_func2 (int); |
19 | extern __typeof (library_func2) library_func2 __asm__ ("__GI_library_func2"); | |
20 | ||
21 | __asm__(".global __GI_library_func2"); | |
22 | __asm__(".hidden __GI_library_func2"); | |
23 | __asm__(".set __GI_library_func2, library_func2"); | |
24 | ||
25 | int | |
26 | library_func (int x) | |
27 | { | |
28 | return library_func2 (x); | |
29 | } | |
30 | ||
d8045f23 NC |
31 | #else /* WITHOUT_IFUNC */ |
32 | ||
33 | int | |
34 | library_func2 (void) | |
35 | { | |
36 | return 3; | |
37 | } | |
38 | ||
39 | #endif |