This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Fix build with compiler defining __i686 (bug 411)
On Fri, 3 Feb 2012, Roland McGrath wrote:
> > There is no SETUP_PIC_REG_STR; sysdeps/unix/sysv/linux/i386/sysdep.h
> > still has its own copy of the thunk inside an asm after this patch.
>
> Then add to the list: macroize inline asm instances of the thunk.
There is exactly one such inline asm instance. You mean add a macro
expanding to a string version of LOAD_PIC_REG (for that is what
check_consistency in sysdeps/unix/sysv/linux/i386/sysdep.h is doing) and
use it in that one place?
> > I added a .p2align directive to SETUP_PIC_REG since most of the removed
> > copies of the thunk had it, and moved SETUP_PIC_REG and LOAD_PIC_REG
> > outside a PIC conditional since some of the IFUNC uses require the GOT /
> > PIC register setup even for static linking.
>
> That makes sense.
[...]
> > +/* Copyright (C) 2002-2004,2006-2007,2009,2010,2012
> > + Free Software Foundation, Inc.
>
> Not a blocker, but I think we can now canonicalize these to:
>
> /* Copyright (C) 2002-2012 Free Software Foundation, Inc.
I haven't done that because given Carlos's question when I suggested it
I'm waiting on confirmation from bug-standards regarding the rules for
collapsing ranges.
> The substantive changes look fine to me, but this sort of mechanical thing
> is prone to unnoticed typos and such. I think this change should have no
> effect whatsoever on linked code, so verifying matching disassembly from
> before and after on at least lib{c,m,pthread}.so seems wiser than just
> relying on the test suite.
The increased alignment on thunks means you get differences (LOAD_PIC_REG
was already used in sysdeps/i386/fpu, for example, and there were
previously no instances of the dx thunk with the extra alignment). It's
fully in accordance with the alignment used in the ENTRY macro in sysdep.h
- a benefit of using the macros more consistently is that such unnecessary
differences between files using the thunks are eliminated - but it does
mean that you can't just compare the linked libraries.
--
Joseph S. Myers
joseph@codesourcery.com