The following is the output I get when trying to compile coreinfo.
wt@mediakitchen:~/projects/coreboot/coreinfo$ make CC build/cpuinfo_module.o AS build/cpuid.S.o CC build/pci_module.o CC build/coreboot_module.o CC build/nvram_module.o CC build/bootlog_module.o CC build/ramdump_module.o CC build/lar_module.o CC build/multiboot_module.o CC build/coreinfo.o LD build/coreinfo.elf /home/wt/projects/coreboot/coreinfo/build/cpuinfo_module.o: In function `cpuinfo_module_init': cpuinfo_module.c:(.text+0x469): undefined reference to `__udivdi3' ../libpayload/bin/../lib/libpayload.a(timer.o): In function `get_cpu_speed': timer.c:(.text+0xe8): undefined reference to `__udivdi3' ../libpayload/bin/../lib/libpayload.a(printf.o): In function `print_number': printf.c:(.text+0x344): undefined reference to `__umoddi3' printf.c:(.text+0x379): undefined reference to `__udivdi3' collect2: ld returned 1 exit status make: *** [/home/wt/projects/coreboot/coreinfo/build/coreinfo.elf] Error 1
Is there something I am not doing that I should be doing?
Also, I had to manually symlink libpayload.config to .config in my libpayload directory so that lpgcc would work. This should probably be automated.
Thanks, wt
On Sun, Jun 28, 2009 at 12:49:09AM -0700, Warren Turkal wrote:
The following is the output I get when trying to compile coreinfo.
wt@mediakitchen:~/projects/coreboot/coreinfo$ make CC build/cpuinfo_module.o AS build/cpuid.S.o CC build/pci_module.o CC build/coreboot_module.o CC build/nvram_module.o CC build/bootlog_module.o CC build/ramdump_module.o CC build/lar_module.o CC build/multiboot_module.o CC build/coreinfo.o LD build/coreinfo.elf /home/wt/projects/coreboot/coreinfo/build/cpuinfo_module.o: In function `cpuinfo_module_init': cpuinfo_module.c:(.text+0x469): undefined reference to `__udivdi3' ../libpayload/bin/../lib/libpayload.a(timer.o): In function `get_cpu_speed': timer.c:(.text+0xe8): undefined reference to `__udivdi3' ../libpayload/bin/../lib/libpayload.a(printf.o): In function `print_number': printf.c:(.text+0x344): undefined reference to `__umoddi3' printf.c:(.text+0x379): undefined reference to `__udivdi3' collect2: ld returned 1 exit status make: *** [/home/wt/projects/coreboot/coreinfo/build/coreinfo.elf] Error 1
Is there something I am not doing that I should be doing?
apt-get install gcc-multilib
That should fix your problem. You're on a 64bit system and need 32bit libgcc.
Also, I had to manually symlink libpayload.config to .config in my libpayload directory so that lpgcc would work. This should probably be automated.
There's no symlinking required, but I think the docs need some updating. The problem is that coreinfo must be pointed to an _installed_ libpayload dir, not to the libpayload source directory.
Here's what the canonical installation instructions look like (similar to FILO trunk):
svn co svn://coreboot.org/repos/trunk/payloads/libpayload libpayload-source cd libpayload-source make menuconfig make make DESTDIR=.. install cd ..
svn co svn://coreboot.org/repos/trunk/payloads/coreinfo cd coreinfo make
We could also make libpayload an svn:external in the coreinfo dir like FILO does, dunno which is the better choice on the long run.
Uwe.