fix inverted setting of sh fdpic flag by binutils
the behavior by bfd/ld matched the ABI document but was the opposite of the kernel's interpretation and opposite of how ld treats the flag on every other target using fdpic. see this thread for details: https://sourceware.org/ml/binutils/2015-09/msg00186.html
This commit is contained in:
parent
8d226d0ff6
commit
72b4cdc7e2
|
@ -0,0 +1,21 @@
|
||||||
|
diff -ur binutils-2.25.1.orig/bfd/elf32-sh.c binutils-2.25.1/bfd/elf32-sh.c
|
||||||
|
--- binutils-2.25.1.orig/bfd/elf32-sh.c 2015-09-03 21:52:17.000000000 +0000
|
||||||
|
+++ binutils-2.25.1/bfd/elf32-sh.c 2015-09-14 17:08:48.114426847 +0000
|
||||||
|
@@ -5487,7 +5487,7 @@
|
||||||
|
input_bfd, input_section, rel->r_offset, symname);
|
||||||
|
}
|
||||||
|
|
||||||
|
- elf_elfheader (output_bfd)->e_flags &= ~EF_SH_PIC;
|
||||||
|
+ elf_elfheader (output_bfd)->e_flags |= EF_SH_PIC;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (r != bfd_reloc_ok)
|
||||||
|
@@ -6644,7 +6644,7 @@
|
||||||
|
elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags;
|
||||||
|
sh_elf_set_mach_from_flags (obfd);
|
||||||
|
if (elf_elfheader (obfd)->e_flags & EF_SH_FDPIC)
|
||||||
|
- elf_elfheader (obfd)->e_flags |= EF_SH_PIC;
|
||||||
|
+ elf_elfheader (obfd)->e_flags &= ~EF_SH_PIC;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! sh_merge_bfd_arch (ibfd, obfd))
|
Loading…
Reference in New Issue