summaryrefslogtreecommitdiff
path: root/src/internal/dynlink.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/internal/dynlink.h')
-rw-r--r--src/internal/dynlink.h17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/internal/dynlink.h b/src/internal/dynlink.h
index 369f183e..b9333926 100644
--- a/src/internal/dynlink.h
+++ b/src/internal/dynlink.h
@@ -49,16 +49,27 @@ struct fdpic_loadmap {
struct fdpic_loadseg segs[];
};
+struct fdpic_dummy_loadmap {
+ unsigned short version, nsegs;
+ struct fdpic_loadseg segs[1];
+};
+
#include "reloc.h"
-#define IS_RELATIVE(x) ( \
+#ifndef DL_FDPIC
+#define DL_FDPIC 0
+#endif
+
+#if !DL_FDPIC
+#define IS_RELATIVE(x,s) ( \
(R_TYPE(x) == REL_RELATIVE) || \
(R_TYPE(x) == REL_SYM_OR_REL && !R_SYM(x)) )
-
-#define IS_FDPIC_RELATIVE(x,s) ( ( \
+#else
+#define IS_RELATIVE(x,s) ( ( \
(R_TYPE(x) == REL_FUNCDESC_VAL) || \
(R_TYPE(x) == REL_SYMBOLIC) ) \
&& (((s)[R_SYM(x)].st_info & 0xf) == STT_SECTION) )
+#endif
#ifndef NEED_MIPS_GOT_RELOCS
#define NEED_MIPS_GOT_RELOCS 0