Stephen Smalley | f074036 | 2012-01-04 12:30:47 -0500 | [diff] [blame] | 1 | #ifndef _SELINUX_DSO_H |
| 2 | #define _SELINUX_DSO_H 1 |
| 3 | |
| 4 | #ifdef SHARED |
| 5 | # define hidden __attribute__ ((visibility ("hidden"))) |
| 6 | # define hidden_proto(fct) __hidden_proto (fct, fct##_internal) |
| 7 | # define __hidden_proto(fct, internal) \ |
| 8 | extern __typeof (fct) internal; \ |
| 9 | extern __typeof (fct) fct __asm (#internal) hidden; |
| 10 | # if defined(__alpha__) || defined(__mips__) |
| 11 | # define hidden_def(fct) \ |
| 12 | asm (".globl " #fct "\n" #fct " = " #fct "_internal"); |
| 13 | # else |
| 14 | # define hidden_def(fct) \ |
| 15 | asm (".globl " #fct "\n.set " #fct ", " #fct "_internal"); |
| 16 | #endif |
| 17 | #else |
| 18 | # define hidden |
| 19 | # define hidden_proto(fct) |
| 20 | # define hidden_def(fct) |
| 21 | #endif |
| 22 | |
| 23 | #endif |