This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
bad 3.0 IA32 PIC generation
- To: gcc-bugs at gcc dot gnu dot org
- Subject: bad 3.0 IA32 PIC generation
- From: Robert Lipe <robertl at sco dot com>
- Date: Thu, 15 Feb 2001 10:58:22 -0600
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