[coreboot] Has anyone built the memtest86+ payload recently?

Jay Talbott JayTalbott at sysproconsulting.com
Mon Mar 12 19:31:44 CET 2018


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:coreboot-bounces at coreboot.org] 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 <JayTalbott at 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 at coreboot.org
> https://mail.coreboot.org/mailman/listinfo/coreboot

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot/attachments/20180312/a710e4d3/attachment.html>


More information about the coreboot mailing list