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

Martin Roth gaumless at gmail.com
Mon Mar 12 21:13:50 CET 2018


I've updated that page in the wiki.

On Mon, Mar 12, 2018 at 12:31 PM, Jay Talbott <
JayTalbott at sysproconsulting.com> wrote:

> 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/b42ee6b8/attachment-0001.html>


More information about the coreboot mailing list