1 #ifndef _SEPOL_DSO_H 2 #define _SEPOL_DSO_H 1 3 4 #if !defined(SHARED) || defined(ANDROID) || defined(__APPLE__) 5 #define DISABLE_SYMVER 1 6 #endif 7 8 #ifdef SHARED 9 # define hidden __attribute__ ((visibility ("hidden"))) 10 # define hidden_proto(fct) __hidden_proto (fct, fct##_internal) 11 # define __hidden_proto(fct, internal) \ 12 extern __typeof (fct) internal; \ 13 extern __typeof (fct) fct __asm (#internal) hidden; 14 # if defined(__alpha__) || defined(__mips__) 15 # define hidden_def(fct) \ 16 asm (".globl " #fct "\n" #fct " = " #fct "_internal"); 17 # else 18 # define hidden_def(fct) \ 19 asm (".globl " #fct "\n.set " #fct ", " #fct "_internal"); 20 #endif 21 #else 22 # define hidden 23 # define hidden_proto(fct) 24 # define hidden_def(fct) 25 #endif 26 27 #endif 28