zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

elf.h (1336B) - Raw


      1 #ifndef _ELF_H
      2 #include <elf/elf.h>
      3 
      4 #ifndef _ISOMAC
      5 
      6 # include <libc-pointer-arith.h>
      7 
      8 /* Compute the offset of the note descriptor from size of note entry's
      9    owner string and note alignment.  */
     10 # define ELF_NOTE_DESC_OFFSET(namesz, align) \
     11   ALIGN_UP (sizeof (ElfW(Nhdr)) + (namesz), (align))
     12 
     13 /* Compute the offset of the next note entry from size of note entry's
     14    owner string, size of the note descriptor and note alignment.  */
     15 # define ELF_NOTE_NEXT_OFFSET(namesz, descsz, align) \
     16   ALIGN_UP (ELF_NOTE_DESC_OFFSET ((namesz), (align)) + (descsz), (align))
     17 
     18 # ifdef HIDDEN_VAR_NEEDS_DYNAMIC_RELOC
     19 #  define DL_ADDRESS_WITHOUT_RELOC(expr) (expr)
     20 # else
     21 /* Evaluate EXPR without run-time relocation for it.  EXPR should be an
     22    array, an address of an object, or a string literal.  */
     23 #  define DL_ADDRESS_WITHOUT_RELOC(expr)	\
     24   ({						\
     25      __auto_type _result = (expr);		\
     26      asm ("" : "+r" (_result));			\
     27      _result;					\
     28    })
     29 # endif
     30 
     31 /* Some information which is not meant for the public and therefore not
     32    in <elf.h>.  */
     33 # include <dl-dtprocnum.h>
     34 # ifdef DT_1_SUPPORTED_MASK
     35 #  error DT_1_SUPPORTED_MASK is defined!
     36 # endif
     37 # define DT_1_SUPPORTED_MASK \
     38    (DF_1_NOW | DF_1_NODELETE | DF_1_INITFIRST | DF_1_NOOPEN \
     39     | DF_1_ORIGIN | DF_1_NODEFLIB | DF_1_PIE)
     40 
     41 #endif /* !_ISOMAC */
     42 #endif /* elf.h */