summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2004-06-24 07:52:08 +0000
committerEric Andersen <andersen@codepoet.org>2004-06-24 07:52:08 +0000
commit998f870a192c165c53ebf62d896006824e073d60 (patch)
treeba10325897e9837ecd011088e9e8f0437b339c6d
parent860d8b8215f5205513fbe1f03ec9a93f114815b7 (diff)
Disable support for R_ARM_PC24, just like R_PPC_REL24 these should
only occur when shared libs are not compiled with -fPIC
-rw-r--r--ldso/ldso/arm/elfinterp.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/ldso/ldso/arm/elfinterp.c b/ldso/ldso/arm/elfinterp.c
index c04477561..6b43464b3 100644
--- a/ldso/ldso/arm/elfinterp.c
+++ b/ldso/ldso/arm/elfinterp.c
@@ -242,6 +242,7 @@ _dl_parse(struct elf_resolve *tpnt, struct dyn_elf *scope,
return goof;
}
+#if 0
static unsigned long
fix_bad_pc24 (unsigned long *const reloc_addr, unsigned long value)
{
@@ -265,6 +266,7 @@ fix_bad_pc24 (unsigned long *const reloc_addr, unsigned long value)
return (unsigned long)fix_address;
}
+#endif
static int
_dl_do_reloc (struct elf_resolve *tpnt,struct dyn_elf *scope,
@@ -307,6 +309,7 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct dyn_elf *scope,
*reloc_addr += symbol_addr;
break;
case R_ARM_PC24:
+#if 0
{
unsigned long addend;
long newvalue, topbits;
@@ -333,6 +336,10 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct dyn_elf *scope,
*reloc_addr = symbol_addr;
break;
}
+#else
+ _dl_dprintf(2,"R_ARM_PC24: Compile shared libraries with -fPIC!\n");
+ _dl_exit(1);
+#endif
case R_ARM_GLOB_DAT:
case R_ARM_JUMP_SLOT:
*reloc_addr = symbol_addr;