Summary: | [2.27 Regression] glibc-2.24 fails to build with the 2.7 branch on powerpc64-linux-gnu | ||
---|---|---|---|
Product: | binutils | Reporter: | Matthias Klose <doko> |
Component: | ld | Assignee: | Alan Modra <amodra> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | amodra |
Priority: | P2 | ||
Version: | 2.27 | ||
Target Milestone: | --- | ||
Host: | Target: | powerpc64-linux-gnu | |
Build: | Last reconfirmed: | ||
Attachments: | test case |
Description
Matthias Klose
2016-08-15 20:52:49 UTC
Created attachment 9436 [details] test case test case, taken from https://bugs.debian.org/834445 Confirmed. I was concerned enough about this change to build both gcc and glibc on powerpc64 and powerpc64le, as I've been bitten with this sort of change before. However the machine I used to build the powerpc64 glibc was running an old kernel, so the testsuite gave lots of "FATAL: kernel too old" messages and I obviously didn't check the testsuite output carefully enough. My glibc build had the same failure.. The master branch has been updated by Alan Modra <amodra@sourceware.org>: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=8a2058b5e3318a337a6fecd61b91349d1131758e commit 8a2058b5e3318a337a6fecd61b91349d1131758e Author: Alan Modra <amodra@gmail.com> Date: Fri Aug 19 11:06:41 2016 +0930 PR 20472, PowerPC64 ifunc confusion This patch fixes quite a lot of confusion in allocate_dynrelocs over ifuncs. Function descriptors make ELFv1 quite different to ELFv2. PR 20472 * elf64-ppc.c (ppc64_elf_before_check_relocs): Tweak abiversion test. (readonly_dynrelocs): Comment fix. (global_entry_stub): New function. (ppc64_elf_adjust_dynamic_symbol): Tweak abiversion test. Match ELFv2 code deciding on dynamic relocs vs. global entry stubs to that in size_global_entry_stubs, handling ifunc too. Delete dead weak sym code. (allocate_dynrelocs): Ensure dyn_relocs field is cleared when no dyn_relocs are needed. Correct handling of ifunc dyn_relocs. Tidy ELIMINATE_COPY_RELOCS code, only setting dynindx for undefweak syms. Expand and correct comments. (size_global_entry_stubs): Ensure symbol is defined. (ppc64_elf_relocate_section): Match condition under which dyn_relocs are emitted to that in allocate_dynrelocs. The binutils-2_27-branch branch has been updated by Alan Modra <amodra@sourceware.org>: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7f27ccfcd5b86a6517a5c01d1cc29e87ac39c13c commit 7f27ccfcd5b86a6517a5c01d1cc29e87ac39c13c Author: Alan Modra <amodra@gmail.com> Date: Fri Aug 19 11:06:41 2016 +0930 PR 20472, PowerPC64 ifunc confusion This patch fixes quite a lot of confusion in allocate_dynrelocs over ifuncs. Function descriptors make ELFv1 quite different to ELFv2. PR 20472 * elf64-ppc.c (ppc64_elf_before_check_relocs): Tweak abiversion test. (readonly_dynrelocs): Comment fix. (global_entry_stub): New function. (ppc64_elf_adjust_dynamic_symbol): Tweak abiversion test. Match ELFv2 code deciding on dynamic relocs vs. global entry stubs to that in size_global_entry_stubs, handling ifunc too. Delete dead weak sym code. (allocate_dynrelocs): Ensure dyn_relocs field is cleared when no dyn_relocs are needed. Correct handling of ifunc dyn_relocs. Tidy ELIMINATE_COPY_RELOCS code, only setting dynindx for undefweak syms. Expand and correct comments. (size_global_entry_stubs): Ensure symbol is defined. (ppc64_elf_relocate_section): Match condition under which dyn_relocs are emitted to that in allocate_dynrelocs. Fixed |