|
|
@@ -349,17 +349,22 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct dyn_elf *scope,
|
|
|
*(short *)reloc_addr = finaladdr;
|
|
|
break;
|
|
|
case R_PPC_REL24:
|
|
|
- {
|
|
|
- Elf32_Sword delta = finaladdr - (Elf32_Word)reloc_addr;
|
|
|
- if(unlikely(delta<<6>>6 != delta)) {
|
|
|
- _dl_dprintf(2, "%s: symbol '%s' R_PPC_REL24 is out of range.\n\t"
|
|
|
- "Compile shared libraries with -fPIC!\n",
|
|
|
- _dl_progname, symname);
|
|
|
- _dl_exit(1);
|
|
|
+#if 0
|
|
|
+ {
|
|
|
+ Elf32_Sword delta = finaladdr - (Elf32_Word)reloc_addr;
|
|
|
+ if(unlikely(delta<<6>>6 != delta)) {
|
|
|
+ _dl_dprintf(2, "%s: symbol '%s' R_PPC_REL24 is out of range.\n\t"
|
|
|
+ "Compile shared libraries with -fPIC!\n",
|
|
|
+ _dl_progname, symname);
|
|
|
+ _dl_exit(1);
|
|
|
+ }
|
|
|
+ *reloc_addr = (*reloc_addr & 0xfc000003) | (delta & 0x3fffffc);
|
|
|
+ break;
|
|
|
}
|
|
|
- *reloc_addr = (*reloc_addr & 0xfc000003) | (delta & 0x3fffffc);
|
|
|
- break;
|
|
|
- }
|
|
|
+#else
|
|
|
+ _dl_dprintf(2,"R_PPC_REL24: Compile shared libraries with -fPIC!\n");
|
|
|
+ _dl_exit(1);
|
|
|
+#endif
|
|
|
default:
|
|
|
_dl_dprintf(2, "%s: can't handle reloc type ", _dl_progname);
|
|
|
#if defined (__SUPPORT_LD_DEBUG__)
|