mirror of
https://github.com/richfelker/musl-cross-make.git
synced 2025-03-13 02:26:59 +01:00

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
22 lines
790 B
Diff
22 lines
790 B
Diff
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))
|