bad 3.0 IA32 PIC generation
Robert Lipe
robertl@sco.com
Thu Feb 15 08:51:00 GMT 2001
Watching with the 3.0 branch I'm seeing various build failures on all my
targets. Though this problem has been present for a while, here's the
first reduced test case:
$ cat x.c
bar(){}
foo(){bar();}
$ ./xgcc --save-temps -c -fPIC x.c
UX:as: ERROR: (EOF):undefined name: .LPR0
(robertl) rjlhome:/play/tmp/7/gcc
$ cat x.s
.file "x.i"
.version "01.01"
gcc2_compiled.:
.text
.align 16
.globl bar
.type bar,@function
bar:
pushl %ebp
movl %esp, %ebp
popl %ebp
ret
.Lfe1:
.size bar,.Lfe1-bar
.align 16
.globl foo
.type foo,@function
foo:
pushl %ebp
movl %esp, %ebp
pushl %ebx
subl $4, %esp
call .LPR0
addl $_GLOBAL_OFFSET_TABLE_, %ebx
call bar@PLT
addl $4, %esp
popl %ebx
popl %ebp
ret
.Lfe2:
.size foo,.Lfe2-foo
.ident "GCC: (GNU) 2.97 20010212 (experimental)"
So it's trying to call a temporary label that doesn't exist. Clearly
this isn't good. This is on target --host=i686-pc-udk and shows up as a
bootstrap failure when we're building crtstuff.
RJL
More information about the Gcc-bugs
mailing list