This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


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

Re: new way of generating crt[ni].o [patch]


>>>>> Zack Weinberg writes:

Zack> Andreas Jaeger wrote:
>> >>>>> Zack Weinberg writes:
>> 
>> > The new x86 back end wants to generate trampolines to load the PIC
>> > base register all the time (yes, even with -march=i386).  The current
>> > crt[in] generation can't handle this.  So I rewrote it again.  This
>> > version does the split in the object file; it turns out to be much,
>> > much cleaner that way.  On the other hand, it is dependent on more
>> > gnu-binutils-specific features than before.  I'm using binutils
>> > 2.9.5.0.10, but it ought to work with 2.9.1 and later, at least.
>> 
>> Do I understand your statement correctly that the current gcc cvs
>> version doesn't correctly build glibc?  How severe is the problem?

Zack> When I tried it, it blew up in the others pass trying to link the
Zack> first program against the just-built library.  Error was "undefined
Zack> reference to symbol `LPR0'" or something like that; the problem was
Zack> that the new ia32 backend does -fPIC like this:

Zack> .LPR0:
Zack> 	movl	(%esp), %ebx
Zack> 	ret

Zack> _init:
Zack> 	pushl	%ebp
Zack> 	movl	%esp, %ebp
Zack> 	pushl	%ebx
Zack> 	call	.LPR0
Zack> 	... body of function here ...

Zack> The .LPR0 label and its code are lost when we split up the file.
:-(

Zack> sysdeps/i386/Makefile adds -march=i386 to CFLAGS, which is supposed to
Zack> go back to the old style of -fPIC.  It works on a test file, but
Zack> doesn't on initfini.c, I don't know why.

I've got to concerns: I'd like to see glibc 2.1.2 asap released - and
I don't like another glibc release that only works with the current but
not with the next gcc compiler [1].

Richard, is there no way to get this working with all versions of gcc
including the current development version?

Andreas

Footnotes: 
[1]  gcc 2.95 doesn't work correctly with glibc 2.1.1 - and I don't
     like to see a 2.1.2 which doesn't work with gcc 2.96.
-- 
 Andreas Jaeger   aj@arthur.rhein-neckar.de    jaeger@informatik.uni-kl.de
  for pgp-key finger ajaeger@aixd1.rhrk.uni-kl.de

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