This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFC: TLS improvements for IA32 and AMD64/EM64T


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}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]