aboutsummaryrefslogtreecommitdiff
path: root/stand
diff options
context:
space:
mode:
Diffstat (limited to 'stand')
-rw-r--r--stand/i386/Makefile.inc9
-rw-r--r--stand/i386/boot.ldscript16
-rw-r--r--stand/i386/boot2/Makefile4
-rw-r--r--stand/i386/gptboot/Makefile4
-rw-r--r--stand/i386/gptzfsboot/Makefile4
-rw-r--r--stand/i386/isoboot/Makefile4
-rw-r--r--stand/i386/loader/Makefile4
-rw-r--r--stand/i386/zfsboot/Makefile4
8 files changed, 28 insertions, 21 deletions
diff --git a/stand/i386/Makefile.inc b/stand/i386/Makefile.inc
index e2723dd79cdb..119f8a37162f 100644
--- a/stand/i386/Makefile.inc
+++ b/stand/i386/Makefile.inc
@@ -22,13 +22,12 @@ CFLAGS+= -I${BTXLIB}
# compact binary with no padding between text, data, bss
LDSCRIPT= ${BOOTSRC}/i386/boot.ldscript
-# LDFLAGS_BIN=-e start -Ttext ${ORG} -Wl,-T,${LDSCRIPT},-S,--oformat,binary
-# LD_FLAGS_BIN=-static -T ${LDSCRIPT} --gc-sections
-LDFLAGS_BIN=-e start -Ttext ${ORG} -Wl,-N,-S,--oformat,binary
+LDFLAGS_ORG= -Wl,--defsym,ORG=${ORG},-T,${LDSCRIPT}
+LDFLAGS_BIN= -e start ${LDFLAGS_ORG} -Wl,-N,-S,--oformat,binary
.if ${LINKER_FEATURES:Mbuild-id} != ""
-LDFLAGS_BIN+=-Wl,--build-id=none
+LDFLAGS_BIN+= -Wl,--build-id=none
.endif
-LD_FLAGS_BIN=-static -N --gc-sections
+LD_FLAGS_BIN= -static -N --gc-sections
.if ${MACHINE_CPUARCH} == "amd64"
DO32=1
diff --git a/stand/i386/boot.ldscript b/stand/i386/boot.ldscript
index 04ea39d47693..2f2a2d3e936e 100644
--- a/stand/i386/boot.ldscript
+++ b/stand/i386/boot.ldscript
@@ -1,11 +1,17 @@
/* $FreeBSD$ */
-/* Merge text, data and bss together almost no padding */
+/* Simplified linker script for the boot loaders. */
OUTPUT_FORMAT("elf32-i386-freebsd")
OUTPUT_ARCH(i386)
ENTRY(_start)
SECTIONS {
- . = 0x08048000 + SIZEOF_HEADERS;
- .text : { *(.text) } =0x90909090 /* Pad with nops, if needed */
- .data : { *(.data) } _edata = .;
- .bss : { *(.bss) } _end = .;
+ . = ORG;
+ .text : { *(.text .text.*) } =0xcccccccc /* Pad with int3, if needed */
+ .rodata : { *(.rodata .rodata.*) }
+ .got : { *(.got) *(.igot) }
+ .got.plt : { *(.got.plt) *(.igot.plt) }
+ .data : { *(.data .data.*) }
+ _edata = .; PROVIDE (edata = .);
+ .bss : { *(.bss .bss.*) }
+ _end = .; PROVIDE (end = .);
+ /DISCARD/ : { *(.interp) }
}
diff --git a/stand/i386/boot2/Makefile b/stand/i386/boot2/Makefile
index 73869062204a..3830199b2c4b 100644
--- a/stand/i386/boot2/Makefile
+++ b/stand/i386/boot2/Makefile
@@ -56,7 +56,7 @@ boot1: boot1.out
${OBJCOPY} -S -O binary boot1.out ${.TARGET}
boot1.out: boot1.o
- ${LD} ${LD_FLAGS} -e start -Ttext ${ORG1} -o ${.TARGET} boot1.o
+ ${LD} ${LD_FLAGS} -e start --defsym ORG=${ORG1} -T ${LDSCRIPT} -o ${.TARGET} boot1.o
CLEANFILES+= boot2 boot2.ld boot2.ldr boot2.bin boot2.out boot2.o \
boot2.h sio.o
@@ -84,7 +84,7 @@ CFLAGS.ashldi3.c= -Wno-missing-prototypes -Wno-missing-declarations
CLEANFILES+= ashldi3.o
boot2.out: ${BTXCRT} boot2.o sio.o ashldi3.o
- ${LD} ${LD_FLAGS} -Ttext ${ORG2} -o ${.TARGET} ${.ALLSRC}
+ ${LD} ${LD_FLAGS} --defsym ORG=${ORG2} -T ${LDSCRIPT} -o ${.TARGET} ${.ALLSRC}
SRCS= boot2.c boot2.h
diff --git a/stand/i386/gptboot/Makefile b/stand/i386/gptboot/Makefile
index 9666c7ab9d99..5ca6ca96535f 100644
--- a/stand/i386/gptboot/Makefile
+++ b/stand/i386/gptboot/Makefile
@@ -51,7 +51,7 @@ gptldr.bin: gptldr.out
${OBJCOPY} -S -O binary gptldr.out ${.TARGET}
gptldr.out: gptldr.o
- ${LD} ${LD_FLAGS} -e start -Ttext ${ORG1} -o ${.TARGET} gptldr.o
+ ${LD} ${LD_FLAGS} -e start --defsym ORG=${ORG1} -T ${LDSCRIPT} -o ${.TARGET} gptldr.o
CLEANFILES+= gptboot.bin gptboot.out gptboot.o sio.o drv.o \
cons.o ${OPENCRYPTO_XTS}
@@ -60,6 +60,6 @@ gptboot.bin: gptboot.out
${OBJCOPY} -S -O binary gptboot.out ${.TARGET}
gptboot.out: ${BTXCRT} gptboot.o sio.o drv.o cons.o ${OPENCRYPTO_XTS}
- ${LD} ${LD_FLAGS} -Ttext ${ORG2} -o ${.TARGET} ${.ALLSRC} ${LIBSA32}
+ ${LD} ${LD_FLAGS} --defsym ORG=${ORG2} -T ${LDSCRIPT} -o ${.TARGET} ${.ALLSRC} ${LIBSA32}
.include <bsd.prog.mk>
diff --git a/stand/i386/gptzfsboot/Makefile b/stand/i386/gptzfsboot/Makefile
index b8b05978b1bd..ecb24e10c6d4 100644
--- a/stand/i386/gptzfsboot/Makefile
+++ b/stand/i386/gptzfsboot/Makefile
@@ -57,7 +57,7 @@ gptldr.bin: gptldr.out
${OBJCOPY} -S -O binary gptldr.out ${.TARGET}
gptldr.out: gptldr.o
- ${LD} ${LD_FLAGS} -e start -Ttext ${ORG1} -o ${.TARGET} gptldr.o
+ ${LD} ${LD_FLAGS} -e start --defsym ORG=${ORG1} -T ${LDSCRIPT} -o ${.TARGET} gptldr.o
CLEANFILES+= gptzfsboot.bin gptzfsboot.out zfsboot.o sio.o cons.o \
drv.o gpt.o ${OPENCRYPTO_XTS}
@@ -67,7 +67,7 @@ gptzfsboot.bin: gptzfsboot.out
gptzfsboot.out: ${BTXCRT} zfsboot.o sio.o gpt.o drv.o cons.o \
${OPENCRYPTO_XTS}
- ${LD} ${LD_FLAGS} -Ttext ${ORG2} -o ${.TARGET} ${.ALLSRC} ${LIBSA32}
+ ${LD} ${LD_FLAGS} --defsym ORG=${ORG2} -T ${LDSCRIPT} -o ${.TARGET} ${.ALLSRC} ${LIBSA32}
zfsboot.o: ${ZFSSRC}/zfsimpl.c
diff --git a/stand/i386/isoboot/Makefile b/stand/i386/isoboot/Makefile
index 591dcf7df4c6..9fcd1f357231 100644
--- a/stand/i386/isoboot/Makefile
+++ b/stand/i386/isoboot/Makefile
@@ -53,7 +53,7 @@ gptldr.bin: gptldr.out
${OBJCOPY} -S -O binary gptldr.out ${.TARGET}
gptldr.out: gptldr.o
- ${LD} ${LD_FLAGS} -e start -Ttext ${ORG1} -o ${.TARGET} gptldr.o
+ ${LD} ${LD_FLAGS} -e start --defsym ORG=${ORG1} -T ${LDSCRIPT} -o ${.TARGET} gptldr.o
CLEANFILES+= isoboot.bin isoboot.out isoboot.o sio.o drv.o \
cons.o ${OPENCRYPTO_XTS}
@@ -62,6 +62,6 @@ isoboot.bin: isoboot.out
${OBJCOPY} -S -O binary isoboot.out ${.TARGET}
isoboot.out: ${BTXCRT} isoboot.o sio.o drv.o cons.o ${OPENCRYPTO_XTS}
- ${LD} ${LD_FLAGS} -Ttext ${ORG2} -o ${.TARGET} ${.ALLSRC} ${LIBSA32}
+ ${LD} ${LD_FLAGS} --defsym ORG=${ORG2} -T ${LDSCRIPT} -o ${.TARGET} ${.ALLSRC} ${LIBSA32}
.include <bsd.prog.mk>
diff --git a/stand/i386/loader/Makefile b/stand/i386/loader/Makefile
index d0611ef6a4d9..b74ef9007d97 100644
--- a/stand/i386/loader/Makefile
+++ b/stand/i386/loader/Makefile
@@ -46,8 +46,10 @@ HELP_FILES= ${.CURDIR}/help.i386
CLEANFILES+= ${LOADER} ${LOADER}.bin
+ORG= 0x0
+
CFLAGS+= -Wall
-LDFLAGS+= -static -Ttext 0x0 -Wl,--gc-sections
+LDFLAGS+= -static ${LDFLAGS_ORG} -Wl,--gc-sections
# i386 standalone support library
LIBI386= ${BOOTOBJ}/i386/libi386/libi386.a
diff --git a/stand/i386/zfsboot/Makefile b/stand/i386/zfsboot/Makefile
index 6bffd4591f3d..422bce0e5b88 100644
--- a/stand/i386/zfsboot/Makefile
+++ b/stand/i386/zfsboot/Makefile
@@ -49,7 +49,7 @@ zfsboot1: zfsldr.out
${OBJCOPY} -S -O binary zfsldr.out ${.TARGET}
zfsldr.out: zfsldr.o
- ${LD} ${LD_FLAGS} -e start -Ttext ${ORG1} -o ${.TARGET} zfsldr.o
+ ${LD} ${LD_FLAGS} -e start --defsym ORG=${ORG1} -T ${LDSCRIPT} -o ${.TARGET} zfsldr.o
CLEANFILES+= zfsboot2 zfsboot.ld zfsboot.ldr zfsboot.bin zfsboot.out \
zfsboot.o zfsboot.s zfsboot.s.tmp sio.o cons.o drv.o
@@ -75,7 +75,7 @@ zfsboot.bin: zfsboot.out
${OBJCOPY} -S -O binary zfsboot.out ${.TARGET}
zfsboot.out: ${BTXCRT} zfsboot.o sio.o drv.o cons.o
- ${LD} ${LD_FLAGS} -Ttext ${ORG2} -o ${.TARGET} ${.ALLSRC} ${LIBSA32}
+ ${LD} ${LD_FLAGS} --defsym ORG=${ORG2} -T ${LDSCRIPT} -o ${.TARGET} ${.ALLSRC} ${LIBSA32}
SRCS= zfsboot.c