[Bug ld/25882] .gnu.attributes are not checked for shared libraries

2020-11-09 Thread amodra at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=25882

--- Comment #10 from Alan Modra  ---
One fix is to compile libgcc_s_so.1 with -mno-gnu-attribute, which can be
accomplished by adding

gcc_s_compile += -mno-gnu-attribute

to libgcc/config/rs6000/t-linux

-- 
You are receiving this mail because:
You are on the CC list for the bug.


[Bug ld/25882] .gnu.attributes are not checked for shared libraries

2020-10-30 Thread bugdal at aerifal dot cx
https://sourceware.org/bugzilla/show_bug.cgi?id=25882

--- Comment #9 from Rich Felker  ---
OK, I should have read more before commenting. My comments in particular
pertain specifically to powerpc64 although other archs might be affected too. I
see that the error was downgraded to a warning since the breaking change first
appeared in a release, which is an improvement, but it's still likely going to
lead to people doing very wrong things based on that warning. For example,
Alpine Linux got this merge request:

https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/13547

which would have created a broken Frankenstein-ABI to make the error message go
away rather than fixing the problem. I can envision folks doing the exact same
sort of thing when they see a warning, because I get/see wrong "warning fix"
patches all the time for compiler warnings.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


[Bug ld/25882] .gnu.attributes are not checked for shared libraries

2020-10-30 Thread bugdal at aerifal dot cx
https://sourceware.org/bugzilla/show_bug.cgi?id=25882

--- Comment #8 from Rich Felker  ---
Also note that while, for musl targets, this issue could also be fixed just by
getting gcc not to build its ld128 functions in libgcc_s, there are also people
using glibc's ld64 ABI, and glibc necessarily has (as ABI) both ld64 and ld128
functions in the same shared library. So I don't think there's any complete fix
without reverting this.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


[Bug ld/25882] .gnu.attributes are not checked for shared libraries

2020-10-30 Thread bugdal at aerifal dot cx
https://sourceware.org/bugzilla/show_bug.cgi?id=25882

Rich Felker  changed:

   What|Removed |Added

 CC||bugdal at aerifal dot cx

--- Comment #7 from Rich Felker  ---
This should be reverted. It breaks linking anything that uses libgcc_s.so.1 on
musl libc, since gcc builds ld128 floating point functions into libgcc
unconditionally, but musl's ABI does not use them. (And in general it breaks
any use of -mlong-double-64 in a setting where shared libgcc will be used.)

-- 
You are receiving this mail because:
You are on the CC list for the bug.


[Bug ld/25882] .gnu.attributes are not checked for shared libraries

2020-05-21 Thread cvs-commit at gcc dot gnu.org
https://sourceware.org/bugzilla/show_bug.cgi?id=25882

--- Comment #6 from cvs-commit at gcc dot gnu.org  ---
The master branch has been updated by Alan Modra :

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6f3fe02b0b8f6865820d8889a8420190063f3235

commit 6f3fe02b0b8f6865820d8889a8420190063f3235
Author: Alan Modra 
Date:   Fri May 22 11:42:43 2020 +0930

PowerPC: downgrade FP mismatch error for shared libraries to a warning

PR 25882
bfd/
* elf32-ppc.c (_bfd_elf_ppc_merge_fp_attributes): Don't init FP
attributes from shared libraries, and do not return an error if
they don't match.
gold/
* powerpc.cc (merge_object_attributes): Replace name param with
obj param.  Update callers.  Don't init FP attributes from shared
libraries, and do not emit an error if they don't match.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


[Bug ld/25882] .gnu.attributes are not checked for shared libraries

2020-05-01 Thread hjl.tools at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=25882

--- Comment #5 from H.J. Lu  ---
It is odd to check .gnu.attributes on shared libraries since shared libraries
used at link-time can be very different from run-time.  Checking
.gnu.attributes
on shared libraries gives you very little.  For PT_GNU_PROPERTY,
.note.gnu.property section is ignored on shared libraries and shared library
check is done at run-time.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


[Bug ld/25882] .gnu.attributes are not checked for shared libraries

2020-05-01 Thread amodra at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=25882

Alan Modra  changed:

   What|Removed |Added

   Assignee|unassigned at sourceware dot org   |amodra at gmail dot com
 Status|NEW |RESOLVED
   Target Milestone|--- |2.35
 Resolution|--- |FIXED

--- Comment #4 from Alan Modra  ---
Fixed.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


[Bug ld/25882] .gnu.attributes are not checked for shared libraries

2020-05-01 Thread cvs-commit at gcc dot gnu.org
https://sourceware.org/bugzilla/show_bug.cgi?id=25882

--- Comment #1 from cvs-commit at gcc dot gnu.org  ---
The master branch has been updated by Alan Modra :

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=91ed9b71fa737ff4a4519f84c5e0ae0d544514f1

commit 91ed9b71fa737ff4a4519f84c5e0ae0d544514f1
Author: Alan Modra 
Date:   Fri May 1 15:17:42 2020 +0930

ppc32 merging of e_flags from dynamic objects

EF_PPC_RELOCATABLE and similar flags, if present in an input shared
library, don't have any relevance as far as the output file is
concerned.

Currently, dynamic objects aren't seen in merge_private_bfd_data.
This patch is in preparation for a change to that.

PR 25882
* elf32-ppc.c (ppc_elf_merge_private_bfd_data): Ignore e_flags
from shared libraries.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


[Bug ld/25882] .gnu.attributes are not checked for shared libraries

2020-05-01 Thread cvs-commit at gcc dot gnu.org
https://sourceware.org/bugzilla/show_bug.cgi?id=25882

--- Comment #2 from cvs-commit at gcc dot gnu.org  ---
The master branch has been updated by Alan Modra :

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6b728d3286a6e073e8cbdb63600e421de4f32dad

commit 6b728d3286a6e073e8cbdb63600e421de4f32dad
Author: Alan Modra 
Date:   Fri May 1 15:20:14 2020 +0930

FIXME for merging of e_flags and .gnu.attributes

Code in the linker, present before the addition of .gnu.attributes
support, results in shared libraries not being considered by BFD when
merging e_flags and .gnu.attributes from input files to the output.
That doesn't seem correct to me, but I don't know enough about all the
various ABIs to change the behaviour with any confidence.  So this
patch merely punts on dynamic objects in merge_private_bfd_data target
functions, with a FIXME for maintainer attention.

I haven't excluded shared libraries from being considered where the
target merge_private_bfd_data (a) already has code dealing with shared
libraries, or (b) where that function just sets the output to the most
constraining arch/mach combination and other fairly trivial merges, or
(c) when the target has no shared library linker support.

In (a) are: arc, arm, aarch64, riscv, sparc.
In (b) are: bpf, cris, csky, m32r, m68k, mn10300, nios2, tilegx,
tilepro, vax, visium, xtensa.
In (c) are: bpf, cr16, h8300, iq2000, m32c, m68hc11, m68hc12, mcore,
mep, msp430, mt, rl78, rx, v850.

PR 25882
* elf32-bfin.c (elf32_bfin_merge_private_bfd_data): Add FIXME.
* elf32-frv.c (frv_elf_merge_private_bfd_data): Likewise.
* elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Likewise.
* elf32-nds32.c (nds32_elf_merge_private_bfd_data): Likewise.
* elf32-score.c (s3_elf32_score_merge_private_bfd_data): Likewise.
* elf32-score7.c (s7_elf32_score_merge_private_bfd_data): Likewise.
* elf32-sh.c (sh_elf_merge_private_data): Likewise.
* elf32-tic6x.c (elf32_tic6x_merge_attributes): Likewise.
* elf64-ia64-vms.c (elf64_ia64_merge_private_bfd_data): Likewise.
* elfnn-ia64.c (elfNN_ia64_merge_private_bfd_data): Likewise.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


[Bug ld/25882] .gnu.attributes are not checked for shared libraries

2020-05-01 Thread cvs-commit at gcc dot gnu.org
https://sourceware.org/bugzilla/show_bug.cgi?id=25882

--- Comment #3 from cvs-commit at gcc dot gnu.org  ---
The master branch has been updated by Alan Modra :

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba

commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba
Author: Alan Modra 
Date:   Fri May 1 15:23:17 2020 +0930

PR25882, .gnu.attributes are not checked for shared libraries

This allows backend merge_private_bfd_data to examine shared library
e_flags and/or .gnu.attributes.  ARM and PowerPC have done so when
using ld.gold for a long time.

(The tic6x change below is dead code due to the earlier FIXME,
but this is probably one of the changes needed there.)

PR 25882
bfd/
* elf32-tic6x.c (elf32_tic6x_merge_attributes): Don't transfer
Tag_ABI_PIC or Tag_ABI_PID from dynamic objects to the output.
ld/
* ldlang.c (lang_check): Call bfd_merge_private_bfd_data for
shared libraries.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


[Bug ld/25882] .gnu.attributes are not checked for shared libraries

2020-04-29 Thread amodra at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=25882

Alan Modra  changed:

   What|Removed |Added

 Target||powerpc*-*-*, arm*-*-*

-- 
You are receiving this mail because:
You are on the CC list for the bug.