mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-28 20:43:45 +08:00
Fix the SH behavior for EF_SH_PIC flag in FDPIC ABI
Fix it so that it's compatible with the kernel and other FDPIC targets. * elf32-sh.c (sh_elf_relocate_section): Set EF_SH_PIC flag instead of clearing it on cross-section relocations. (sh_elf_merge_private_data): Clear EF_SH_PIC flag by default.
This commit is contained in:
parent
4c2f2a792a
commit
fbedb42d07
@ -1,3 +1,9 @@
|
||||
2015-09-14 Rich Felker <dalias@libc.org>
|
||||
|
||||
* elf32-sh.c (sh_elf_relocate_section): Set EF_SH_PIC flag
|
||||
instead of clearing it on cross-section relocations.
|
||||
(sh_elf_merge_private_data): Clear EF_SH_PIC flag by default.
|
||||
|
||||
2015-09-12 Helge Deller <deller@gmx.de>
|
||||
|
||||
PR ld/18514
|
||||
|
@ -5496,7 +5496,7 @@ sh_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
|
||||
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)
|
||||
@ -6653,7 +6653,7 @@ sh_elf_merge_private_data (bfd *ibfd, bfd *obfd)
|
||||
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
Block a user