Hi

I think this is a bug in GCC 5 on the PowerPC.  The code has compiled and
linked fine for years with various versions of GCC and friends.

powerpc-rtems4.11-gcc (GCC) 5.0.0 20150412 (experimental)

bootloader.o:(.debug_loc+0x3ce2): undefined reference to `.LCL2'

This looks like a symbol generation problem with GCC

$ powerpc-rtems4.11-gcc --pipe -DHAVE_CONFIG_H   -D__BOOT__ 
-B../../../../../../../lib/ -B../../../../../../../mvme2100/lib/ -specs
bsp_specs -qrtems -mrelocatable -msoft-float -mstrict-align -fno-builtin
-Wall -mmultiple -mstring -O2 -fomit-frame-pointer -ffixed-r13
-mno-sdata  -mcpu=603e -Dppc603e -O2 -g -mmultiple -mstring
-mstrict-align -Wall -Wmissing-prototypes
-Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -S
`test -f '../../../powerpc/shared/bootloader/zlib.c' || echo
'../../../../../../../../../rtems/c/src/lib/libbsp/powerpc/motorola_powerpc/bootloader/'`../../../powerpc/shared/bootloader/zlib.c

$ grep LCL2 *.s
.LCL22:
    lwz 0,.LCL22-.LCF22(30)
.LCL23:
    lwz 0,.LCL23-.LCF23(30)
.LCL24:
    lwz 0,.LCL24-.LCF24(30)
.LCL25:
    lwz 0,.LCL25-.LCF25(30)
    .4byte    .LCL2
    .4byte    .LCL2

Based on the grep, the .4byte directives are referencing a bogus symbol.

Does this look like a GCC bug? If so, I will file a PR with the preprocessed
source.

Thanks.

-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherr...@oarcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
Support Available                (256) 722-9985


Reply via email to