[LinuxBIOS] Linker failures due to __divdi3

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Thu Mar 1 23:23:28 CET 2007


Hi,

all of the following mainboards fail to link for me on my openSUSE 10.2
x86_64 system with the following message:

gcc -m32 -nostdlib -nostartfiles -static -o linuxbios_ram -T /storage/LinuxBIOSv2/src/config/linuxbios_ram.ld linuxbios_ram.o
linuxbios_ram.o: In function `div_long':
(.text+0x11575): undefined reference to `__umoddi3'
linuxbios_ram.o: In function `div_long':
(.text+0x11593): undefined reference to `__udivdi3'
linuxbios_ram.o: In function `idiv_long':
(.text+0x116de): undefined reference to `__moddi3'
linuxbios_ram.o: In function `idiv_long':
(.text+0x116fc): undefined reference to `__divdi3'
collect2: ld returned 1 exit status
make[1]: *** [linuxbios_ram] Error 1

List of boards:
agami/aruma amd/serengeti_cheetah amd/serengeti_leopard arima/hdama
digitallogic/msm586seg ibm/e326 iei/nova4899r iwill/dk8_htx
msi/ms9185 msi/ms9282 nvidia/l1_2pvv sunw/ultra40 supermicro/h8dmr
tyan/s2850 tyan/s2875 tyan/s2880 tyan/s2882 tyan/s2885 tyan/s2891
tyan/s2892 tyan/s2895 tyan/s2912 tyan/s4880

The problem is specific to x86_64. Reason:
libgcc.a (32bit) is not installed on 64bit systems, only the 64bit
version.



Solution:
Install the package providing the 32bit version of libgcc.a
(this static library is not necessarily in the libgcc package).
On openSUSE 10.2, this is the gcc41-32bit package.

Regards,
Carl-Daniel
-- 
http://www.hailfinger.org/




More information about the coreboot mailing list