Hi Martin,

 

He was following the instructions on the coreboot website: 
https://www.coreboot.org/Memtest86%2B

 

Obviously that must be completely out of date if there’s now a version 
available from the coreboot site.

 

Let me see what he can do with that.

 

We just want to build it as an elf and use it as the primary payload for some 
validation checks on the memory – the normal/production payload is a Linux 
kernel.

 

Thanks,

 

- Jay

 

From: coreboot [mailto:[email protected]] On Behalf Of Martin Roth
Sent: Monday, March 12, 2018 10:18 AM
To: Jay Talbott
Cc: coreboot
Subject: Re: [coreboot] Has anyone built the memtest86+ payload recently?

 

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 <[email protected]> 
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: [email protected]
> https://mail.coreboot.org/mailman/listinfo/coreboot

-- 
coreboot mailing list: [email protected]
https://mail.coreboot.org/mailman/listinfo/coreboot

Reply via email to