aboutsummaryrefslogtreecommitdiff
path: root/include/elf.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/elf.h')
-rw-r--r--include/elf.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/elf.h b/include/elf.h
index 14ed67f..1424982 100644
--- a/include/elf.h
+++ b/include/elf.h
@@ -15,6 +15,19 @@
# define ELF_NOTE_NEXT_OFFSET(namesz, descsz, align) \
ALIGN_UP (ELF_NOTE_DESC_OFFSET ((namesz), (align)) + (descsz), (align))
+# ifdef HIDDEN_VAR_NEEDS_DYNAMIC_RELOC
+# define DL_ADDRESS_WITHOUT_RELOC(expr) (expr)
+# else
+/* Evaluate EXPR without run-time relocation for it. EXPR should be an
+ array, an address of an object, or a string literal. */
+# define DL_ADDRESS_WITHOUT_RELOC(expr) \
+ ({ \
+ __auto_type _result = (expr); \
+ asm ("" : "+r" (_result)); \
+ _result; \
+ })
+# endif
+
/* Some information which is not meant for the public and therefore not
in <elf.h>. */
# include <dl-dtprocnum.h>