Project

General

Profile

Actions

Bug #527

open

Can't compile coreboot on Arch Linux

Added by naixin Lv 10 months ago. Updated 4 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
build system
Target version:
Start date:
02/23/2024
Due date:
% Done:

0%

Estimated time:
Affected versions:
Needs backport to:
Affected hardware:
GIGABYTE GA-H61M-DS2
Affected OS:
none

Description

I want to compile coreboot for my Gigabyte GA-H61M-DS2 mainboard, but I only found a short guide for this board at this site: https://www.iot-tech.dev/full.php?ar=166
After downloaded the coreboot git repository, It gave me this error:

/home/zhongli/coreboot/util/crossgcc/xgcc/bin/x86_64-elf-ld.bfd: build/romstage/console/vtxprintf.o: in function `number':
/home/zhongli/coreboot/src/console/vtxprintf.c:63:(.text.number+0x12b): undefined reference to `__udivmoddi4'
/home/zhongli/coreboot/util/crossgcc/xgcc/bin/x86_64-elf-ld.bfd: build/romstage/lib/gcc.o: in function `__wrap___divdi3':
/home/zhongli/coreboot/src/lib/gcc.c:19:(.text.__wrap___divdi3+0x1): undefined reference to `__divdi3'
/home/zhongli/coreboot/util/crossgcc/xgcc/bin/x86_64-elf-ld.bfd: build/romstage/lib/gcc.o: in function `__wrap___udivdi3':
/home/zhongli/coreboot/src/lib/gcc.c:20:(.text.__wrap___udivdi3+0x1): undefined reference to `__udivdi3'
make: *** [src/arch/x86/Makefile.mk:191: build/cbfs/fallback/romstage.debug] Error 1

And I'll put my config file on here.
Any help ?


Files

defconfig (726 Bytes) defconfig My config file. naixin Lv, 02/23/2024 02:43 PM
ifd_shrinked.bin (4 KB) ifd_shrinked.bin My IFD firmware. naixin Lv, 02/23/2024 02:43 PM
me_shrinked.bin (96 KB) me_shrinked.bin My Intel ME firmware. naixin Lv, 02/23/2024 02:43 PM
Actions #1

Updated by naixin Lv 10 months ago

  • Target version changed from none to master
Actions #2

Updated by naixin Lv 10 months ago

  • Assignee deleted (naixin Lv)
Actions #3

Updated by Maximilian Brune 10 months ago

When I build this defconfig it works (at least without the payload). You could try removing the ANY_TOOLCHAIN option, because it seems like that your libgcc.a is not correct.

Actions #4

Updated by Nico Huber 10 months ago

/home/zhongli/coreboot/util/crossgcc/xgcc/bin/x86_64-elf-ld.bfd: build/romstage/console/vtxprintf.o: in function `number':

Actually, this looks like it's using the reference toolchain, but the 64-bit one. xcompile picks up 64-bit toolchains even if they don't have a libgcc for 32-bit builds.

If you are trying a 32-bit build (the default, so I guess yes), try make crossgcc-i386 CPUS=$(nproc).

Actions #5

Updated by Peter Daru 4 months ago ยท Edited

Sorry if this doesn't fit here. I thought this is similar if not same issue as op's one.

I was following doc tutorial for qemu x64 and also couldn't compile. I run fully up to date installation (apart from kernel itself). Turns out doing $ make clang CPUS=$(nproc) and then $ make I was able to compile.

This is what I got following tutor:

Makefile:358: warning: overriding recipe for target '/home/daru/Git/coreboot/payloads/coreinfo/libpayload/arch/x86/exec.libc.o'
Makefile:358: warning: ignoring old recipe for target '/home/daru/Git/coreboot/payloads/coreinfo/libpayload/arch/x86/exec.libc.o'
    LPGCC      coreinfo.bin
/home/daru/Git/coreboot/util/crossgcc/xgcc/lib/gcc/x86_64-elf/14.2.0/../../../../x86_64-elf/bin/ld.bfd: warning: exception_asm.libc.o: missing .note.GNU-stack section implies executable stack
/home/daru/Git/coreboot/util/crossgcc/xgcc/lib/gcc/x86_64-elf/14.2.0/../../../../x86_64-elf/bin/ld.bfd: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
/home/daru/Git/coreboot/util/crossgcc/xgcc/lib/gcc/x86_64-elf/14.2.0/../../../../x86_64-elf/bin/ld.bfd: warning: build/coreinfo.bin has a LOAD segment with RWX permissions
/home/daru/Git/coreboot/util/crossgcc/xgcc/lib/gcc/x86_64-elf/14.2.0/../../../../x86_64-elf/bin/ld.bfd: build/cpuinfo_module.o: in function `cpuinfo_module_init':
cpuinfo_module.c:(.text+0x474): undefined reference to `__udivdi3'
/home/daru/Git/coreboot/util/crossgcc/xgcc/lib/gcc/x86_64-elf/14.2.0/../../../../x86_64-elf/bin/ld.bfd: build/timestamps_module.o: in function `timestamp_print_entry.constprop.0':
timestamps_module.c:(.text+0x157): undefined reference to `__udivdi3'
/home/daru/Git/coreboot/util/crossgcc/xgcc/lib/gcc/x86_64-elf/14.2.0/../../../../x86_64-elf/bin/ld.bfd: timestamps_module.c:(.text+0x194): undefined reference to `__udivdi3'
/home/daru/Git/coreboot/util/crossgcc/xgcc/lib/gcc/x86_64-elf/14.2.0/../../../../x86_64-elf/bin/ld.bfd: /home/daru/Git/coreboot/payloads/coreinfo/libpayload/libpayload.a(time.libc.o): in function `update_clock':
/home/daru/Git/coreboot/payloads/libpayload/libc/time.c:60:(.text.time+0xe8): undefined reference to `__udivdi3'
/home/daru/Git/coreboot/util/crossgcc/xgcc/lib/gcc/x86_64-elf/14.2.0/../../../../x86_64-elf/bin/ld.bfd: /home/daru/Git/coreboot/payloads/libpayload/libc/time.c:65:(.text.time+0x11d): undefined reference to `__udivdi3'
/home/daru/Git/coreboot/util/crossgcc/xgcc/lib/gcc/x86_64-elf/14.2.0/../../../../x86_64-elf/bin/ld.bfd: /home/daru/Git/coreboot/payloads/coreinfo/libpayload/libpayload.a(time.libc.o):/home/daru/Git/coreboot/payloads/libpayload/libc/time.c:68: more undefined references to `__udivdi3' follow
/home/daru/Git/coreboot/util/crossgcc/xgcc/lib/gcc/x86_64-elf/14.2.0/../../../../x86_64-elf/bin/ld.bfd: /home/daru/Git/coreboot/payloads/coreinfo/libpayload/libpayload.a(printf.libc.o): in function `print_number':
/home/daru/Git/coreboot/payloads/libpayload/libc/printf.c:261:(.text.printf_core+0x5c0): undefined reference to `__udivmoddi4'
/home/daru/Git/coreboot/util/crossgcc/xgcc/lib/gcc/x86_64-elf/14.2.0/../../../../x86_64-elf/bin/ld.bfd: /home/daru/Git/coreboot/payloads/coreinfo/libpayload/libpayload.a(gcd.libc.o): in function `gcd':
/home/daru/Git/coreboot/src/commonlib/bsd/gcd.c:14:(.text.gcd+0x58): undefined reference to `__umoddi3'
/home/daru/Git/coreboot/util/crossgcc/xgcc/lib/gcc/x86_64-elf/14.2.0/../../../../x86_64-elf/bin/ld.bfd: /home/daru/Git/coreboot/src/commonlib/bsd/gcd.c:19:(.text.gcd+0x76): undefined reference to `__umoddi3'
/home/daru/Git/coreboot/util/crossgcc/xgcc/lib/gcc/x86_64-elf/14.2.0/../../../../x86_64-elf/bin/ld.bfd: /home/daru/Git/coreboot/payloads/coreinfo/libpayload/libpayload.a(timer.libc.o): in function `get_cpu_khz_xtal':
/home/daru/Git/coreboot/payloads/libpayload/arch/x86/timer.c:121:(.text.get_cpu_speed+0x9f): undefined reference to `__udivdi3'
/home/daru/Git/coreboot/util/crossgcc/xgcc/lib/gcc/x86_64-elf/14.2.0/../../../../x86_64-elf/bin/ld.bfd: /home/daru/Git/coreboot/payloads/libpayload/arch/x86/timer.c:121:(.text.get_cpu_speed+0xb0): undefined reference to `__udivdi3'
/home/daru/Git/coreboot/util/crossgcc/xgcc/lib/gcc/x86_64-elf/14.2.0/../../../../x86_64-elf/bin/ld.bfd: /home/daru/Git/coreboot/payloads/coreinfo/libpayload/libpayload.a(timer.libc.o): in function `calibrate_pit':
/home/daru/Git/coreboot/payloads/libpayload/arch/x86/timer.c:78:(.text.get_cpu_speed+0x17c): undefined reference to `__udivdi3'
collect2: error: ld returned 1 exit status
make[2]: *** [../libpayload/Makefile.payload:104: build/coreinfo.bin] Error 1
make[1]: *** [Makefile:64: defaultbuild] Error 2
make: *** [payloads/Makefile.mk:38: payloads/coreinfo/build/coreinfo.elf] Error 2
Actions

Also available in: Atom PDF