Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Oct 2008 18:08:35 +0200
From:      Andriy Gapon <avg@icyb.net.ua>
To:        freebsd-hackers@freebsd.org
Subject:   memtest86+ can not link: binutils issue?
Message-ID:  <4909DC03.1080901@icyb.net.ua>

next in thread | raw e-mail | index | archive | help

0.
FreeBSD 7.1-PRERELEASE r184195 i386
$ ld -v
GNU ld version 2.15 [FreeBSD] 2004-05-23

1. obtain and extract
http://www.memtest.org/download/2.01/memtest86+-2.01.bin.gz

2. run gmake:
$ gmake
gcc -E -traditional head.S -o head.s
as -32   -o head.o head.s
gcc -c -Wall -march=i486 -m32 -Os -fomit-frame-pointer -fno-builtin
-ffreestanding -fPIC -fno-strict-aliasing reloc.c
gcc -Wall -march=i486 -m32 -Os -fomit-frame-pointer -fno-builtin
-ffreestanding -fPIC   -c -o main.o main.c
gcc -c -Wall -march=i486 -m32 -Os -fomit-frame-pointer -fno-builtin
-ffreestanding test.c
gcc -Wall -march=i486 -m32 -Os -fomit-frame-pointer -fno-builtin
-ffreestanding -fPIC   -c -o init.o init.c
gcc -Wall -march=i486 -m32 -Os -fomit-frame-pointer -fno-builtin
-ffreestanding -fPIC   -c -o lib.o lib.c
gcc -Wall -march=i486 -m32 -Os -fomit-frame-pointer -fno-builtin
-ffreestanding -fPIC   -c -o patn.o patn.c
gcc -Wall -march=i486 -m32 -Os -fomit-frame-pointer -fno-builtin
-ffreestanding -fPIC   -c -o screen_buffer.o screen_buffer.c
gcc -Wall -march=i486 -m32 -Os -fomit-frame-pointer -fno-builtin
-ffreestanding -fPIC   -c -o config.o config.c
gcc -Wall -march=i486 -m32 -Os -fomit-frame-pointer -fno-builtin
-ffreestanding -fPIC   -c -o linuxbios.o linuxbios.c
gcc -Wall -march=i486 -m32 -Os -fomit-frame-pointer -fno-builtin
-ffreestanding -fPIC   -c -o memsize.o memsize.c
gcc -Wall -march=i486 -m32 -Os -fomit-frame-pointer -fno-builtin
-ffreestanding -fPIC   -c -o pci.o pci.c
gcc -Wall -march=i486 -m32 -Os -fomit-frame-pointer -fno-builtin
-ffreestanding -fPIC   -c -o controller.o controller.c
gcc -Wall -march=i486 -m32 -Os -fomit-frame-pointer -fno-builtin
-ffreestanding -fPIC   -c -o random.o random.c
gcc -Wall -march=i486 -m32 -Os -fomit-frame-pointer -fno-builtin
-ffreestanding -fPIC   -c -o extra.o extra.c
gcc -Wall -march=i486 -m32 -Os -fomit-frame-pointer -fno-builtin
-ffreestanding -fPIC   -c -o spd.o spd.c
gcc -Wall -march=i486 -m32 -Os -fomit-frame-pointer -fno-builtin
-ffreestanding -fPIC   -c -o error.o error.c
gcc -Wall -march=i486 -m32 -Os -fomit-frame-pointer -fno-builtin
-ffreestanding -fPIC   -c -o dmi.o dmi.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 linuxbios.o memsize.o pci.o controller.o
random.o extra.o spd.o error.o dmi.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 linuxbios.o memsize.o pci.o controller.o random.o extra.o spd.o
error.o dmi.o
head.o(.text+0x7): In function `startup_32':
: undefined reference to `_GLOBAL_OFFSET_TABLE_'
Segmentation fault (core dumped)
gmake: *** [memtest_shared] Error 139


Not only linking fails, but ld even crashes.
Things are more complicated than usual because of the custom linker
script memtest_shared.lds.

The same compiles/links nicely on Fedora 9.
$ ld -v
GNU ld version 2.18.50.0.6-5.fc9 20080403


Can anybody suggest anything about this problem?
If somebody is working on newer version of binuitls for FreeBSD I can
help as a tester.

-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4909DC03.1080901>