Hi Jay,
  Are they using the coreboot version of memtest86plus?
  What commit is being built?
  What version of GCC?

Building with GCC 7.3.0 from the latest commit at review.coreboot.org/memtest86plus, I do get one warning that should be cleaned up, but it builds fine.  The errors you posted look to me like it's being built from the default memtest86+ zipfile.

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