[BACK]Return to cdefs_elf.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / sys

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/sys/cdefs_elf.h between version 1.40.2.3 and 1.41

version 1.40.2.3, 2017/12/03 11:39:20 version 1.41, 2013/02/02 14:03:38
Line 65 
Line 65 
     __asm(".weak " _C_LABEL_STRING(#sym));      __asm(".weak " _C_LABEL_STRING(#sym));
   
 #if __GNUC_PREREQ__(4, 0)  #if __GNUC_PREREQ__(4, 0)
 #define __weak  __attribute__((__weak__))  
 #else  
 #define __weak  
 #endif  
   
 #if __GNUC_PREREQ__(4, 0)  
 #define __weak_reference(sym)   __attribute__((__weakref__(#sym)))  #define __weak_reference(sym)   __attribute__((__weakref__(#sym)))
 #else  #else
 #define __weak_reference(sym)   ; __asm(".weak " _C_LABEL_STRING(#sym))  #define __weak_reference(sym)   ; __asm(".weak " _C_LABEL_STRING(#sym))
Line 112 
Line 106 
   
 #endif /* !__STDC__ */  #endif /* !__STDC__ */
   
 #if __arm__  
 #define __ifunc(name, resolver) \  
         __asm(".globl   " _C_LABEL_STRING(#name) "\n" \  
               ".type    " _C_LABEL_STRING(#name) ", %gnu_indirect_function\n" \  
                _C_LABEL_STRING(#name) " = " _C_LABEL_STRING(#resolver))  
 #define __hidden_ifunc(name, resolver) \  
         __asm(".globl   " _C_LABEL_STRING(#name) "\n" \  
               ".hidden  " _C_LABEL_STRING(#name) "\n" \  
               ".type    " _C_LABEL_STRING(#name) ", %gnu_indirect_function\n" \  
                _C_LABEL_STRING(#name) " = " _C_LABEL_STRING(#resolver))  
 #else  
 #define __ifunc(name, resolver) \  
         __asm(".globl   " _C_LABEL_STRING(#name) "\n" \  
               ".type    " _C_LABEL_STRING(#name) ", @gnu_indirect_function\n" \  
               _C_LABEL_STRING(#name) " = " _C_LABEL_STRING(#resolver))  
 #define __hidden_ifunc(name, resolver) \  
         __asm(".globl   " _C_LABEL_STRING(#name) "\n" \  
               ".hidden  " _C_LABEL_STRING(#name) "\n" \  
               ".type    " _C_LABEL_STRING(#name) ", @gnu_indirect_function\n" \  
               _C_LABEL_STRING(#name) " = " _C_LABEL_STRING(#resolver))  
 #endif  
   
 #if __STDC__  #if __STDC__
 #define __SECTIONSTRING(_sec, _str)                                     \  #define __SECTIONSTRING(_sec, _str)                                     \
         __asm(".pushsection " #_sec "\n"                                \          __asm(".pushsection " #_sec "\n"                                \
Line 160 
Line 132 
 #ifndef __lint__  #ifndef __lint__
 #define __link_set_make_entry(set, sym)                                 \  #define __link_set_make_entry(set, sym)                                 \
         static void const * const __link_set_##set##_sym_##sym          \          static void const * const __link_set_##set##_sym_##sym          \
             __section("link_set_" #set) __used = (const void *)&sym              __section("link_set_" #set) __used = (void *)&sym
 #define __link_set_make_entry2(set, sym, n)                             \  #define __link_set_make_entry2(set, sym, n)                             \
         static void const * const __link_set_##set##_sym_##sym##_##n    \          static void const * const __link_set_##set##_sym_##sym##_##n    \
             __section("link_set_" #set) __used = (const void *)&sym[n]              __section("link_set_" #set) __used = (void *)&sym[n]
 #else  #else
 #define __link_set_make_entry(set, sym)                                 \  #define __link_set_make_entry(set, sym)                                 \
         extern void const * const __link_set_##set##_sym_##sym          extern void const * const __link_set_##set##_sym_##sym
Line 180 
Line 152 
 #define __link_set_add_data2(set, sym, n)   __link_set_make_entry2(set, sym, n)  #define __link_set_add_data2(set, sym, n)   __link_set_make_entry2(set, sym, n)
 #define __link_set_add_bss2(set, sym, n)    __link_set_make_entry2(set, sym, n)  #define __link_set_add_bss2(set, sym, n)    __link_set_make_entry2(set, sym, n)
   
   #define __link_set_decl(set, ptype)                                     \
           extern ptype * const __start_link_set_##set[] __dso_hidden;     \
           extern ptype * const __stop_link_set_##set[] __dso_hidden       \
   
 #define __link_set_start(set)   (__start_link_set_##set)  #define __link_set_start(set)   (__start_link_set_##set)
 #define __link_set_end(set)     (__stop_link_set_##set)  #define __link_set_end(set)     (__stop_link_set_##set)
   
 #define __link_set_decl(set, ptype)                                     \  
         extern ptype * const __link_set_start(set)[] __dso_hidden;      \  
         __asm__(".hidden " __STRING(__stop_link_set_##set)); \  
         extern ptype * const __link_set_end(set)[] __weak __dso_hidden  
   
 #define __link_set_count(set)                                           \  #define __link_set_count(set)                                           \
         (__link_set_end(set) - __link_set_start(set))          (__link_set_end(set) - __link_set_start(set))
   

Legend:
Removed from v.1.40.2.3  
changed lines
  Added in v.1.41

CVSweb <webmaster@jp.NetBSD.org>