diff options
| -rw-r--r-- | src/internal/dynlink.h | 16 | 
1 files changed, 16 insertions, 0 deletions
diff --git a/src/internal/dynlink.h b/src/internal/dynlink.h index 8621d2dd..369f183e 100644 --- a/src/internal/dynlink.h +++ b/src/internal/dynlink.h @@ -36,6 +36,17 @@ enum {  	REL_TPOFF,  	REL_TPOFF_NEG,  	REL_TLSDESC, +	REL_FUNCDESC, +	REL_FUNCDESC_VAL, +}; + +struct fdpic_loadseg { +	uintptr_t addr, p_vaddr, p_memsz; +}; + +struct fdpic_loadmap { +	unsigned short version, nsegs; +	struct fdpic_loadseg segs[];  };  #include "reloc.h" @@ -44,6 +55,11 @@ enum {  	(R_TYPE(x) == REL_RELATIVE) || \  	(R_TYPE(x) == REL_SYM_OR_REL && !R_SYM(x)) ) +#define IS_FDPIC_RELATIVE(x,s) ( ( \ +	(R_TYPE(x) == REL_FUNCDESC_VAL) || \ +	(R_TYPE(x) == REL_SYMBOLIC) ) \ +	&& (((s)[R_SYM(x)].st_info & 0xf) == STT_SECTION) ) +  #ifndef NEED_MIPS_GOT_RELOCS  #define NEED_MIPS_GOT_RELOCS 0  #endif  | 
