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: CPP predefine conflict with getpc thunks


From: Jakub Jelinek <jakub@redhat.com>
Date: Wed, 24 Feb 2010 14:16:40 +0100

> On Tue, Feb 23, 2010 at 11:02:24PM -0800, David Miller wrote:
>> From: "Carlos O'Donell" <carlos@systemhalted.org>
>> Date: Tue, 23 Feb 2010 23:40:56 -0500
>> 
>> > I think we should undef it in the source and include a corresponding
>> > comment, or change all instances of __i686 to something else. Having
>> > the Makefiles undef a compiler define seems sneaky and bound to bite
>> > somebody.
>> > 
>> > Is sysdeps/i386/sysdep.h (SETUP_PIC_REG) the only troublesome spot?
>> 
>> There are also several 10s of *.S assembler files, as well as some
>> other header files.  Anywhere there is a PIC assembler sequence in the
>> x86 code, there will be one of these thunks and thus this problem.
>> 
>> You also can't use a different name, as this is the symbol name that
>> the compiler uses for the shared getpc thunks on x86.  If we use a
>> different name, the instances glibc's assembler uses won't be sharable
>> with those emitted by the compiler.
>> 
>> I can't see a way around this other than getting it at the compiler
>> command line.
> 
> Here is what Fedora branch uses:
> 
> 2009-07-22  Jakub Jelinek  <jakub@redhat.com>
> 
> 	* Makeconfig (ASFLAGS): Append $(sysdep-ASFLAGS).
> 	* sysdeps/i386/Makefile (sysdep-ASFLAGS): Add -U__i686.

Exactly.  This should really be attached to:

http://sourceware.org/bugzilla/show_bug.cgi?id=411

and commited to mainline.

Nice work Jakub.


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