This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] tst-tlsopt-powerpc as a shared lib
- From: Alan Modra <amodra at gmail dot com>
- To: Tulio Magno Quites Machado Filho <tuliom at linux dot vnet dot ibm dot com>
- Cc: libc-alpha at sourceware dot org
- Date: Tue, 1 Aug 2017 09:43:51 +0930
- Subject: Re: [PATCH] tst-tlsopt-powerpc as a shared lib
- Authentication-results: sourceware.org; auth=none
- References: <30946d0a-a095-f5cb-bf0b-d3897712cdab@redhat.com> <ef3da09f-5e98-223c-8e77-68c724c12df7@redhat.com> <be439468-44fe-6cf1-0519-d03e50dd8432@redhat.com> <20170727040411.GX14520@bubble.grove.modra.org> <d61a7515-31b7-5799-948c-25aa77fa2d76@redhat.com> <20170727234529.GZ14520@bubble.grove.modra.org> <20170728090246.GA1956@bubble.grove.modra.org> <20170728130744.GU21230@0c3.net> <20170730000430.GF1956@bubble.grove.modra.org> <87lgn4pnjj.fsf@linux.vnet.ibm.com>
[cc trimmed]
On Mon, Jul 31, 2017 at 01:40:48PM -0300, Tulio Magno Quites Machado Filho wrote:
> Alan Modra <amodra@gmail.com> writes:
>
> > On Fri, Jul 28, 2017 at 01:07:44PM +0000, Adam Conrad wrote:
> >> On Fri, Jul 28, 2017 at 06:32:46PM +0930, Alan Modra wrote:
> >> >
> >> > Since tst-tlsopt-powerpc is supposed to test glibc dynamic relocation
> >> > processing, the body of the test ought to be put in a shared library
> >> > (*). I cobbled together such a test, and TRY_STATIC_TLS works fine.
> >> > So, not a powerpc64 glibc bug.
> >>
> >> Excellent. Should I expect said cobbled test to replace tst-tlsopt-powerpc
> >> in glibc trunk soonish (obviously, I'll just XFAIL it for now locally).
> >
> > This makes the __tls_get_addr_opt test run as a shared library, and so
> > actually test that DTPMOD64/DTPREL64 pairs are processed by ld.so to
> > support the __tls_get_adfr_opt call stub fast return. After a
> > 2017-01-24 patch (binutils f0158f4416) ld.bfd no longer emitted
> > unnecessary dynamic relocations against local thread variables,
> > instead setting up the __tls_index GOT entries for the call stub fast
> > return. This meant tst-tlsopt-powerpc passed but did not check ld.so
> > relocation support. After a 2017-07-16 patch (binutils 676ee2b5fa)
> > ld.bfd no longer set up the __tls_index GOT entries for the call stub
> > fast return, and tst-tlsopt-powerpc failed.
> >
> > Compiling mod-tlsopt-powerpc.c with -DSHARED exposed a bug in
> > powerpc64/tls-macros.h, which defines a __TLS_GET_ADDR macro that
> > clashes with one defined in dl-tls.h. The tls-macros.h version is
> > only used in that file, so delete it and expand.
> >
> > Regression tested powerpc64le-linux. Please verify the Makefile
> > changes. The test passes with "make -j64 check", but I may well have
> > missed something there.
>
> Tested on powerpc-linux and powerpc64-linux too.
Thanks! I'll commit this after the 2.26 freeze is over.
> > * sysdeps/powerpc/mod-tlsopt-powerpc.c: Extract from
> > tst-tlsopt-powerpc.c with function name change and no test harness.
> > * sysdeps/powerpc/tst-tlsopt-powerpc.c: Remove body of test.
> > Call tls_get_addr_opt_test.
> > * sysdeps/powerpc/Makefile (LDFLAGS-tst-tlsopt-powerpc): Don't define.
> > (modules-names): Add mod-tlsopt-powerpc.
> > (mod-tlsopt-powerpc.so-no-z-defs): Define.
> > (tst-tlsopt-powerpc): Depend on .so.
> > * sysdeps/powerpc/powerpc64/tls-macros.h (__TLS_GET_ADDR): Don't
> > define. Expand use in TLS_GD and TLS_LD.
>
> Even if this patch doesn't fix bug 21847 [1], I think it makes sense to refer
> it here and close the bug, which was reported to glibc.
>
> Looks good to me.
>
> [1] https://sourceware.org/bugzilla/show_bug.cgi?id=21847
No, 21847 is an entirely different issue. I've moved it from
glibc/dynamic-linker to binutils/ld and mentioned the commits on the
binutils side that have already fixed the bug.
--
Alan Modra
Australia Development Lab, IBM