[OpenBIOS] cross-pcc compilation issue with GCC 4.5.0

Segher Boessenkool segher at kernel.crashing.org
Mon Apr 26 17:43:50 CEST 2010


> /Users/andreas/QEMU/OpenBIOS/openbios-devel/obj-ppc/../libc/ 
> string.c:499: undefined reference to `_restgpr_30_x'
> liblibc.a(string.o): In function `strcasecmp':
> /Users/andreas/QEMU/OpenBIOS/openbios-devel/obj-ppc/../libc/ 
> string.c:513: undefined reference to `_restgpr_27_x'
> liblibc.a(string.o): In function `strncasecmp':
> /Users/andreas/QEMU/OpenBIOS/openbios-devel/obj-ppc/../libc/ 
> string.c:527: undefined reference to `_restgpr_26_x'
> liblibc.a(vsprintf.o): In function `number':
> /Users/andreas/QEMU/OpenBIOS/openbios-devel/obj-ppc/../libc/ 
> vsprintf.c:145: undefined reference to `_restgpr_17_x'
> liblibc.a(vsprintf.o): In function `vsnprintf':
> /Users/andreas/QEMU/OpenBIOS/openbios-devel/obj-ppc/../libc/ 
> vsprintf.c:388: undefined reference to `_restgpr_21_x'
> libgcc.a(__divdi3.o): In function `__divdi3':
> /Users/andreas/QEMU/OpenBIOS/openbios-devel/obj-ppc/../libgcc/ 
> __divdi3.c:8: undefined reference to `_savegpr_31'
> /Users/andreas/QEMU/OpenBIOS/openbios-devel/obj-ppc/../libgcc/ 
> __divdi3.c:26: undefined reference to `_restgpr_31_x'
> libgcc.a(__udivmoddi4.o): In function `__udivmoddi4':
> /Users/andreas/QEMU/OpenBIOS/openbios-devel/obj-ppc/../libgcc/ 
> __udivmoddi4.c:31: undefined reference to `_restgpr_30_x'
> make[1]: *** [openbios-qemu.elf] Error 1
> make: *** [build] Error 1
>
> Anyone else noticed that on another system? Is it a GCC bug or are  
> changes to OpenBIOS code required?

Newer GCC is using a part of the ABI that older GCC did not.  This  
creates
better code, and is not a bug.  What _is_ arguably a bug is not using  
the
libgcc that comes with the compiler, but something else.

Why can OpenBIOS not use libgcc?


Segher




More information about the OpenBIOS mailing list