This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: RFC: TLS improvements for IA32 and AMD64/EM64T
- From: Alexandre Oliva <aoliva at redhat dot com>
- To: Roland McGrath <roland at redhat dot com>
- Cc: libc-alpha at sources dot redhat dot com
- Date: Wed, 21 Sep 2005 05:05:01 -0300
- Subject: Re: RFC: TLS improvements for IA32 and AMD64/EM64T
- References: <20050920192340.0A5F8180E1F@magilla.sf.frob.com>
On Sep 20, 2005, Roland McGrath <roland@redhat.com> wrote:
>> The patch also adds a test to fix a problem I ran into while testing
>> these optimizations, that turned out to be possible to trigger with
>> the old code.
>>
>> It also introduces one missing initial-exec annotation to a data
>> symbol, removing code size differences between the dynamic loaders.
> These sound like fixes that need to be considered independent of your
> proposed ABI additions. Please post separately each of those patches with
> some elaboration on the need for it.
Although that is indeed true, the fix overlaps significantly with
changes I'd already made to the affected macros and functions, to the
point that splitting out the patch is needlessly difficult (and I
haven't had spare mind or cpu cycles to split it out and test it
separately), and waiting until the ABI additions go in to later
integrate the new testcase and fix doesn't make sense to me.
I was hoping the patch could go in as a whole, but I have a new
version of it that I'm testing, with a few improvements here and
there, and one additional fix for a bug that exists without my
changes, exposed by auditing when the attribute to choose initial exec
for libc et al is not available, but that AFAICT affects builds with
IE enabled as well, in that the malloc hook called by calloc at the
end of the final self-relocation of the dynamic loader accesses
uninitialized TLS memory, that is later clobbered by the TLS
initialization. Oops :-)
--
Alexandre Oliva http://www.lsd.ic.unicamp.br/~oliva/
Red Hat Compiler Engineer aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist oliva@{lsd.ic.unicamp.br, gnu.org}