This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: CPP predefine conflict with getpc thunks
- From: David Miller <davem at davemloft dot net>
- To: carlos at systemhalted dot org
- Cc: libc-alpha at sourceware dot org
- Date: Tue, 23 Feb 2010 23:02:24 -0800 (PST)
- Subject: Re: CPP predefine conflict with getpc thunks
- References: <20100223.194546.120469393.davem@davemloft.net><119aab441002232040g2ed2d76ev5523b5e2d3ba542e@mail.gmail.com>
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.