Date: Mon, 21 Oct 2019 21:08:57 +0200 From: Szabolcs Nagy <nsz@...t70.net> To: musl@...ts.openwall.com Subject: Re: another armv7-m exception handling problem * Rich Felker <dalias@...c.org> [2019-10-21 15:03:18 -0400]: > On Mon, Oct 21, 2019 at 08:09:56PM +0200, Szabolcs Nagy wrote: > > * Patrick Oppenlander <patrick.oppenlander@...il.com> [2019-10-21 15:43:40 +1100]: > > > Not sure if this is a musl, gcc or ld bug. > > > > > > Running gcc-8.3.0 musl 1.1.24 static pie. > > > > providing binutils version number is useful if there is > > a chance that it's an ld bug. > > > > this seems to be > > https://sourceware.org/bugzilla/show_bug.cgi?id=22269 > > > > which was supposed to be fixed by > > https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=95b03e4ad68e7a90f5096b47df595636344b783a > > > > but apperently there are still missing cases. > > (it does not help that the ld test for this bug > > greps for R_*_NONE dynrelocs but not R_*_RELATIVE > > which i is just as bad for undef weak syms in pie) > > i added a note to the bug. > > > > if you add __attribute__((visibility("hidden"))) > > to the example given by Rich then it works, the > > bug only affects static pie linking. > > That's really weird. How does it end up having an outstanding > *relative* relocation when it's not defined locally? I could > understand having a bogus outstanding symbolic one, but relative makes > no sense and suggests ld is doing something very wrong... i'd guess it creates a relative reloc for every got entry that stores some symbol's address which is known to be local, which makes sense, except for undefined weak symbols which should have fixed 0 address. and i'd guess there is some logic that special cases local undef weak in pic so hidden works, and that check should be extended to cover the static pie case.
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.