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