This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


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

bad 3.0 IA32 PIC generation


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


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