We also have the Kconfig option in coreboot to build memtest86+ as a secondary payload. That works with no issue.
Below is my build output from the coreboot memtest86plus repo. Hope this helps.
Martin
~/work/git/memtest86plus ((5ca4eb9...))% make
rm -f *.o *.pre.s *.iso memtest.bin memtest memtest_shared \
memtest_shared.bin memtest.iso
cc -E -traditional head.S -o head.pre.s
as -32 -o head.pre.o head.pre.s
cc -c -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -fgnu89-inline -fno-strict-aliasing reloc.c
cc -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -fgnu89-inline -c -o main.o main.c
cc -c -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding test.c
cc -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -fgnu89-inline -c -o init.o init.c
cc -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -fgnu89-inline -c -o lib.o lib.c
cc -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -fgnu89-inline -c -o patn.o patn.c
cc -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -fgnu89-inline -c -o screen_buffer.o screen_buffer.c
cc -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -fgnu89-inline -c -o config.o config.c
cc -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -fgnu89-inline -c -o cpuid.o cpuid.c
cc -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -fgnu89-inline -c -o coreboot.o coreboot.c
cc -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -fgnu89-inline -c -o pci.o pci.c
cc -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -fgnu89-inline -c -o memsize.o memsize.c
cc -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -fgnu89-inline -c -o spd.o spd.c
spd.c: In function ‘sb800_get_smb’:
spd.c:58:20: warning: variable ‘result’ set but not used [-Wunused-but-set-variable]
int lbyte, hbyte, result;
^~~~~~
cc -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -fgnu89-inline -c -o error.o error.c
cc -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -fgnu89-inline -c -o dmi.o dmi.c
cc -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -fgnu89-inline -c -o controller.o controller.c
cc -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -fgnu89-inline -c -o smp.o smp.c
cc -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -fgnu89-inline -c -o vmem.o vmem.c
cc -c -Wall -march=i486 -m32 -O3 -fomit-frame-pointer -fno-builtin -ffreestanding random.c
cc -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -fgnu89-inline -c -o multiboot.o multiboot.c
ld -z max-page-size=0x1000 --warn-constructors --warn-common -static -T memtest_shared.lds \
-o memtest_shared head.pre.o reloc.o main.o test.o init.o lib.o patn.o screen_buffer.o config.o cpuid.o coreboot.o pci.o memsize.o spd.o error.o dmi.o controller.o smp.o vmem.o random.o multiboot.o && \
ld -z max-page-size=0x1000 -shared -Bsymbolic -T memtest_shared.lds -o memtest_shared head.pre.o reloc.o main.o test.o init.o lib.o patn.o screen_buffer.o config.o cpuid.o coreboot.o pci.o memsize.o spd.o error.o dmi.o controller.o smp.o vmem.o random.o multiboot.o
objcopy -O binary memtest_shared memtest_shared.bin
cc -E -traditional bootsect.S -o bootsect.pre.s
as -32 -o bootsect.pre.o bootsect.pre.s
cc -E -traditional setup.S -o setup.pre.s
as -32 -o setup.pre.o setup.pre.s
ld -z max-page-size=0x1000 -T memtest.bin.lds bootsect.pre.o setup.pre.o -b binary \
memtest_shared.bin -o memtest.bin
ld -z max-page-size=0x1000 -s -T memtest.lds -b binary memtest_shared.bin -o memtest
On Mon, Mar 12, 2018 at 10:41 AM, Jay Talbott <
JayTalbott@sysproconsulting.com> wrote:
>
> One of my colleagues is trying to build the memtest86+ payload, and is running into build problems.
>
>
>
> Build environment is Ubuntu 16.0.4 LTS.
>
>
>
> Has anybody else run into this? Any guidance on how to resolve it?
>
>
>
> I’m hoping it’s just something simple that needs to be changed in the build environment that I can pass along to him.
>
>
>
> Thanks,
>
>
>
> - Jay
>
>
>
> $ make clean
>
> rm -f *.o *.s *.iso memtest.bin memtest memtest_shared \
>
> memtest_shared.bin memtest.iso
>
> $ make
>
> rm -f *.o *.s *.iso memtest.bin memtest memtest_shared \
>
> memtest_shared.bin memtest.iso
>
> gcc -E -traditional head.S -o head.s
>
> as -32 -o head.o head.s
>
> gcc -c -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -fno-strict-aliasing reloc.c
>
> gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -c -o main.o main.c
>
> gcc -c -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding test.c
>
> gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -c -o init.o init.c
>
> gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -c -o lib.o lib.c
>
> lib.c: In function ‘serial_echo_init’:
>
> lib.c:807:19: warning: variable ‘lo’ set but not used [-Wunused-but-set-variable]
>
> int comstat, hi, lo, serial_div;
>
> ^
>
> lib.c:807:15: warning: variable ‘hi’ set but not used [-Wunused-but-set-variable]
>
> int comstat, hi, lo, serial_div;
>
> ^
>
> gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -c -o patn.o patn.c
>
> gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -c -o screen_buffer.o screen_buffer.c
>
> gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -c -o config.o config.c
>
> gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -c -o cpuid.o cpuid.c
>
> gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -c -o linuxbios.o linuxbios.c
>
> gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -c -o pci.o pci.c
>
> gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -c -o memsize.o memsize.c
>
> gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -c -o spd.o spd.c
>
> gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -c -o error.o error.c
>
> gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -c -o dmi.o dmi.c
>
> gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -c -o controller.o controller.c
>
> controller.c: In function ‘poll_timings_k16’:
>
> controller.c:3683:20: warning: variable ‘rc’ set but not used [-Wunused-but-set-variable]
>
> int cas, rcd, rp, rc, ras;
>
> ^
>
> controller.c: In function ‘setup_nhm32’:
>
> controller.c:331:34: warning: iteration 3u invokes undefined behavior [-Waggressive-loop-optimizations]
>
> pci_conf_read( possible_nhm_bus[i], 3, 4, 0x00, 2, &vid);
>
> ^
>
> controller.c:330:2: note: containing loop
>
> for(i = 0; i < sizeof(possible_nhm_bus); i++) {
>
> ^
>
> controller.c: In function ‘setup_nhm’:
>
> controller.c:296:34: warning: iteration 3u invokes undefined behavior [-Waggressive-loop-optimizations]
>
> pci_conf_read( possible_nhm_bus[i], 3, 4, 0x00, 2, &vid);
>
> ^
>
> controller.c:295:2: note: containing loop
>
> for(i = 0; i < sizeof(possible_nhm_bus); i++) {
>
> ^
>
> gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -c -o smp.o smp.c
>
> smp.c: In function ‘smp_find_cpus’:
>
> smp.c:513:11: warning: passing argument 1 of ‘memset’ discards ‘volatile’ qualifier from pointer target type [-Wdiscarded-array-qualifiers]
>
> memset(&AP, 0, sizeof AP);
>
> ^
>
> smp.c:170:1: note: expected ‘void *’ but argument is of type ‘volatile ap_info_t (*)[32] {aka volatile struct <anonymous> (*)[32]}’
>
> memset (void *dst,
>
> ^
>
> gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector -c -o vmem.o vmem.c
>
> gcc -c -Wall -march=i486 -m32 -O3 -fomit-frame-pointer -fno-builtin -ffreestanding random.c
>
> ld --warn-constructors --warn-common -static -T memtest_shared.lds \
>
> -o memtest_shared head.o reloc.o main.o test.o init.o lib.o patn.o screen_buffer.o config.o cpuid.o linuxbios.o pci.o memsize.o spd.o error.o dmi.o controller.o smp.o vmem.o random.o && \
>
> ld -shared -Bsymbolic -T memtest_shared.lds -o memtest_shared head.o reloc.o main.o test.o init.o lib.o patn.o screen_buffer.o config.o cpuid.o linuxbios.o pci.o memsize.o spd.o error.o dmi.o controller.o smp.o vmem.o random.o
>
> lib.o: In function `__inb':
>
> lib.c:(.text+0x0): multiple definition of `__inb'
>
> init.o:init.c:(.text+0x0): first defined here
>
> lib.o: In function `__inbc':
>
> lib.c:(.text+0x6): multiple definition of `__inbc'
>
> init.o:init.c:(.text+0x6): first defined here
>
> lib.o: In function `__inb_p':
>
> lib.c:(.text+0xc): multiple definition of `__inb_p'
>
> init.o:init.c:(.text+0xc): first defined here
>
> lib.o: In function `__inbc_p':
>
> lib.c:(.text+0x14): multiple definition of `__inbc_p'
>
> init.o:init.c:(.text+0x14): first defined here
>
> lib.o: In function `__inw':
>
> lib.c:(.text+0x1c): multiple definition of `__inw'
>
> init.o:init.c:(.text+0x1c): first defined here
>
> lib.o: In function `__inwc':
>
> lib.c:(.text+0x23): multiple definition of `__inwc'
>
> init.o:init.c:(.text+0x23): first defined here
>
> lib.o: In function `__inw_p':
>
> lib.c:(.text+0x2a): multiple definition of `__inw_p'
>
> init.o:init.c:(.text+0x2a): first defined here
>
> lib.o: In function `__inwc_p':
>
> lib.c:(.text+0x33): multiple definition of `__inwc_p'
>
> init.o:init.c:(.text+0x33): first defined here
>
> lib.o: In function `__inl':
>
> lib.c:(.text+0x3c): multiple definition of `__inl'
>
> init.o:init.c:(.text+0x3c): first defined here
>
> lib.o: In function `__inlc':
>
> lib.c:(.text+0x42): multiple definition of `__inlc'
>
> init.o:init.c:(.text+0x42): first defined here
>
> lib.o: In function `__inl_p':
>
> lib.c:(.text+0x48): multiple definition of `__inl_p'
>
> init.o:init.c:(.text+0x48): first defined here
>
> lib.o: In function `__inlc_p':
>
> lib.c:(.text+0x50): multiple definition of `__inlc_p'
>
> init.o:init.c:(.text+0x50): first defined here
>
> lib.o: In function `__outb':
>
> lib.c:(.text+0x58): multiple definition of `__outb'
>
> init.o:init.c:(.text+0x58): first defined here
>
> lib.o: In function `__outbc':
>
> lib.c:(.text+0x62): multiple definition of `__outbc'
>
> init.o:init.c:(.text+0x62): first defined here
>
> lib.o: In function `__outb_p':
>
> lib.c:(.text+0x6c): multiple definition of `__outb_p'
>
> init.o:init.c:(.text+0x6c): first defined here
>
> lib.o: In function `__outbc_p':
>
> lib.c:(.text+0x78): multiple definition of `__outbc_p'
>
> init.o:init.c:(.text+0x78): first defined here
>
> lib.o: In function `__outw':
>
> lib.c:(.text+0x84): multiple definition of `__outw'
>
> init.o:init.c:(.text+0x84): first defined here
>
> lib.o: In function `__outwc':
>
> lib.c:(.text+0x8f): multiple definition of `__outwc'
>
> init.o:init.c:(.text+0x8f): first defined here
>
> lib.o: In function `__outw_p':
>
> lib.c:(.text+0x9a): multiple definition of `__outw_p'
>
> init.o:init.c:(.text+0x9a): first defined here
>
> lib.o: In function `__outwc_p':
>
> lib.c:(.text+0xa7): multiple definition of `__outwc_p'
>
> init.o:init.c:(.text+0xa7): first defined here
>
> lib.o: In function `__outl':
>
> lib.c:(.text+0xb4): multiple definition of `__outl'
>
> init.o:init.c:(.text+0xb4): first defined here
>
> lib.o: In function `__outlc':
>
> lib.c:(.text+0xbe): multiple definition of `__outlc'
>
> init.o:init.c:(.text+0xbe): first defined here
>
> lib.o: In function `__outl_p':
>
> lib.c:(.text+0xc8): multiple definition of `__outl_p'
>
> init.o:init.c:(.text+0xc8): first defined here
>
> lib.o: In function `__outlc_p':
>
> lib.c:(.text+0xd4): multiple definition of `__outlc_p'
>
> init.o:init.c:(.text+0xd4): first defined here
>
> lib.o: In function `outsb':
>
> lib.c:(.text+0xe0): multiple definition of `outsb'
>
> init.o:init.c:(.text+0xe0): first defined here
>
> lib.o: In function `outsw':
>
> lib.c:(.text+0xf2): multiple definition of `outsw'
>
> init.o:init.c:(.text+0xf2): first defined here
>
> lib.o: In function `outsl':
>
> lib.c:(.text+0x105): multiple definition of `outsl'
>
> init.o:init.c:(.text+0x105): first defined here
>
> pci.o: In function `__inb':
>
> pci.c:(.text+0x0): multiple definition of `__inb'
>
> init.o:init.c:(.text+0x0): first defined here
>
> pci.o: In function `__inbc':
>
> pci.c:(.text+0x6): multiple definition of `__inbc'
>
> init.o:init.c:(.text+0x6): first defined here
>
> pci.o: In function `__inb_p':
>
> pci.c:(.text+0xc): multiple definition of `__inb_p'
>
> init.o:init.c:(.text+0xc): first defined here
>
> pci.o: In function `__inbc_p':
>
> pci.c:(.text+0x14): multiple definition of `__inbc_p'
>
> init.o:init.c:(.text+0x14): first defined here
>
> pci.o: In function `__inw':
>
> pci.c:(.text+0x1c): multiple definition of `__inw'
>
> init.o:init.c:(.text+0x1c): first defined here
>
> pci.o: In function `__inwc':
>
> pci.c:(.text+0x23): multiple definition of `__inwc'
>
> init.o:init.c:(.text+0x23): first defined here
>
> pci.o: In function `__inw_p':
>
> pci.c:(.text+0x2a): multiple definition of `__inw_p'
>
> init.o:init.c:(.text+0x2a): first defined here
>
> pci.o: In function `__inwc_p':
>
> pci.c:(.text+0x33): multiple definition of `__inwc_p'
>
> init.o:init.c:(.text+0x33): first defined here
>
> pci.o: In function `__inl':
>
> pci.c:(.text+0x3c): multiple definition of `__inl'
>
> init.o:init.c:(.text+0x3c): first defined here
>
> pci.o: In function `__inlc':
>
> pci.c:(.text+0x42): multiple definition of `__inlc'
>
> init.o:init.c:(.text+0x42): first defined here
>
> pci.o: In function `__inl_p':
>
> pci.c:(.text+0x48): multiple definition of `__inl_p'
>
> init.o:init.c:(.text+0x48): first defined here
>
> pci.o: In function `__inlc_p':
>
> pci.c:(.text+0x50): multiple definition of `__inlc_p'
>
> init.o:init.c:(.text+0x50): first defined here
>
> pci.o: In function `__outb':
>
> pci.c:(.text+0x58): multiple definition of `__outb'
>
> init.o:init.c:(.text+0x58): first defined here
>
> pci.o: In function `__outbc':
>
> pci.c:(.text+0x62): multiple definition of `__outbc'
>
> init.o:init.c:(.text+0x62): first defined here
>
> pci.o: In function `__outb_p':
>
> pci.c:(.text+0x6c): multiple definition of `__outb_p'
>
> init.o:init.c:(.text+0x6c): first defined here
>
> pci.o: In function `__outbc_p':
>
> pci.c:(.text+0x78): multiple definition of `__outbc_p'
>
> init.o:init.c:(.text+0x78): first defined here
>
> pci.o: In function `__outw':
>
> pci.c:(.text+0x84): multiple definition of `__outw'
>
> init.o:init.c:(.text+0x84): first defined here
>
> pci.o: In function `__outwc':
>
> pci.c:(.text+0x8f): multiple definition of `__outwc'
>
> init.o:init.c:(.text+0x8f): first defined here
>
> pci.o: In function `__outw_p':
>
> pci.c:(.text+0x9a): multiple definition of `__outw_p'
>
> init.o:init.c:(.text+0x9a): first defined here
>
> pci.o: In function `__outwc_p':
>
> pci.c:(.text+0xa7): multiple definition of `__outwc_p'
>
> init.o:init.c:(.text+0xa7): first defined here
>
> pci.o: In function `__outl':
>
> pci.c:(.text+0xb4): multiple definition of `__outl'
>
> init.o:init.c:(.text+0xb4): first defined here
>
> pci.o: In function `__outlc':
>
> pci.c:(.text+0xbe): multiple definition of `__outlc'
>
> init.o:init.c:(.text+0xbe): first defined here
>
> pci.o: In function `__outl_p':
>
> pci.c:(.text+0xc8): multiple definition of `__outl_p'
>
> init.o:init.c:(.text+0xc8): first defined here
>
> pci.o: In function `__outlc_p':
>
> pci.c:(.text+0xd4): multiple definition of `__outlc_p'
>
> init.o:init.c:(.text+0xd4): first defined here
>
> pci.o: In function `outsb':
>
> pci.c:(.text+0xe0): multiple definition of `outsb'
>
> init.o:init.c:(.text+0xe0): first defined here
>
> pci.o: In function `outsw':
>
> pci.c:(.text+0xf2): multiple definition of `outsw'
>
> init.o:init.c:(.text+0xf2): first defined here
>
> pci.o: In function `outsl':
>
> pci.c:(.text+0x105): multiple definition of `outsl'
>
> init.o:init.c:(.text+0x105): first defined here
>
> spd.o: In function `__inb':
>
> spd.c:(.text+0x162): multiple definition of `__inb'
>
> init.o:init.c:(.text+0x0): first defined here
>
> spd.o: In function `__inbc':
>
> spd.c:(.text+0x168): multiple definition of `__inbc'
>
> init.o:init.c:(.text+0x6): first defined here
>
> spd.o: In function `__inb_p':
>
> spd.c:(.text+0x16e): multiple definition of `__inb_p'
>
> init.o:init.c:(.text+0xc): first defined here
>
> spd.o: In function `__inbc_p':
>
> spd.c:(.text+0x176): multiple definition of `__inbc_p'
>
> init.o:init.c:(.text+0x14): first defined here
>
> spd.o: In function `__inw':
>
> spd.c:(.text+0x17e): multiple definition of `__inw'
>
> init.o:init.c:(.text+0x1c): first defined here
>
> spd.o: In function `__inwc':
>
> spd.c:(.text+0x185): multiple definition of `__inwc'
>
> init.o:init.c:(.text+0x23): first defined here
>
> spd.o: In function `__inw_p':
>
> spd.c:(.text+0x18c): multiple definition of `__inw_p'
>
> init.o:init.c:(.text+0x2a): first defined here
>
> spd.o: In function `__inwc_p':
>
> spd.c:(.text+0x195): multiple definition of `__inwc_p'
>
> init.o:init.c:(.text+0x33): first defined here
>
> spd.o: In function `__inl':
>
> spd.c:(.text+0x19e): multiple definition of `__inl'
>
> init.o:init.c:(.text+0x3c): first defined here
>
> spd.o: In function `__inlc':
>
> spd.c:(.text+0x1a4): multiple definition of `__inlc'
>
> init.o:init.c:(.text+0x42): first defined here
>
> spd.o: In function `__inl_p':
>
> spd.c:(.text+0x1aa): multiple definition of `__inl_p'
>
> init.o:init.c:(.text+0x48): first defined here
>
> spd.o: In function `__inlc_p':
>
> spd.c:(.text+0x1b2): multiple definition of `__inlc_p'
>
> init.o:init.c:(.text+0x50): first defined here
>
> spd.o: In function `__outb':
>
> spd.c:(.text+0x1ba): multiple definition of `__outb'
>
> init.o:init.c:(.text+0x58): first defined here
>
> spd.o: In function `__outbc':
>
> spd.c:(.text+0x1c4): multiple definition of `__outbc'
>
> init.o:init.c:(.text+0x62): first defined here
>
> spd.o: In function `__outb_p':
>
> spd.c:(.text+0x1ce): multiple definition of `__outb_p'
>
> init.o:init.c:(.text+0x6c): first defined here
>
> spd.o: In function `__outbc_p':
>
> spd.c:(.text+0x1da): multiple definition of `__outbc_p'
>
> init.o:init.c:(.text+0x78): first defined here
>
> spd.o: In function `__outw':
>
> spd.c:(.text+0x1e6): multiple definition of `__outw'
>
> init.o:init.c:(.text+0x84): first defined here
>
> spd.o: In function `__outwc':
>
> spd.c:(.text+0x1f1): multiple definition of `__outwc'
>
> init.o:init.c:(.text+0x8f): first defined here
>
> spd.o: In function `__outw_p':
>
> spd.c:(.text+0x1fc): multiple definition of `__outw_p'
>
> init.o:init.c:(.text+0x9a): first defined here
>
> spd.o: In function `__outwc_p':
>
> spd.c:(.text+0x209): multiple definition of `__outwc_p'
>
> init.o:init.c:(.text+0xa7): first defined here
>
> spd.o: In function `__outl':
>
> spd.c:(.text+0x216): multiple definition of `__outl'
>
> init.o:init.c:(.text+0xb4): first defined here
>
> spd.o: In function `__outlc':
>
> spd.c:(.text+0x220): multiple definition of `__outlc'
>
> init.o:init.c:(.text+0xbe): first defined here
>
> spd.o: In function `__outl_p':
>
> spd.c:(.text+0x22a): multiple definition of `__outl_p'
>
> init.o:init.c:(.text+0xc8): first defined here
>
> spd.o: In function `__outlc_p':
>
> spd.c:(.text+0x236): multiple definition of `__outlc_p'
>
> init.o:init.c:(.text+0xd4): first defined here
>
> spd.o: In function `outsb':
>
> spd.c:(.text+0x242): multiple definition of `outsb'
>
> init.o:init.c:(.text+0xe0): first defined here
>
> spd.o: In function `outsw':
>
> spd.c:(.text+0x254): multiple definition of `outsw'
>
> init.o:init.c:(.text+0xf2): first defined here
>
> spd.o: In function `outsl':
>
> spd.c:(.text+0x267): multiple definition of `outsl'
>
> init.o:init.c:(.text+0x105): first defined here
>
> main.o: In function `test_start':
>
> main.c:(.text+0x2143): undefined reference to `reboot'
>
> Makefile:30: recipe for target 'memtest_shared' failed
>
> make: *** [memtest_shared] Error 1
>
>
>
>
> --
> coreboot mailing list:
coreboot@coreboot.org>
https://mail.coreboot.org/mailman/listinfo/coreboot