boot2: Add linker scripts for gold v2.22
authorJohn Marino <draco@marino.st>
Fri, 24 Feb 2012 23:38:03 +0000 (00:38 +0100)
committerJohn Marino <draco@marino.st>
Fri, 24 Feb 2012 23:45:32 +0000 (00:45 +0100)
The precursors for boot2 and boot2_64 also require linker scripts
when built with gold.  The boot2 program was tested using disklabel
for both linkers after introducing the attached linker script.

sys/boot/pc32/boot2/Makefile
sys/boot/pc32/boot2/boot2.ldscript [new file with mode: 0644]

index 63055d1..6a3f51f 100644 (file)
@@ -76,7 +76,8 @@ CFLAGS+= -fno-unit-at-a-time
 #
 NSECT_32?=     16
 NSECT_64?=     30
-LDFLAGS=-nostdlib -static -N --gc-sections
+LDFLAGS=       -nostdlib -static -N --gc-sections
+LINKSCRIPT=    --script ${.CURDIR}/boot2.ldscript
 
 all: boot
 
@@ -135,7 +136,7 @@ boot2$s.bin: boot2$s.out
        objcopy -S -O binary boot2$s.out ${.TARGET}
 
 boot2$s.out: boot2$s.o sio.o ${_ADDOBJS$s}
-       ${LD} ${LDFLAGS} -Ttext ${ORG2} -o ${.TARGET} \
+       ${LD} ${LDFLAGS} -Ttext ${ORG2} ${LINKSCRIPT} -o ${.TARGET} \
                ${BTX}/lib/crt0.o ${.ALLSRC}
 
 boot2$s.o: boot2$s.h
diff --git a/sys/boot/pc32/boot2/boot2.ldscript b/sys/boot/pc32/boot2/boot2.ldscript
new file mode 100644 (file)
index 0000000..6f6ed89
--- /dev/null
@@ -0,0 +1,13 @@
+PHDRS
+{
+       text PT_LOAD ;
+}
+
+SECTIONS {
+       .text   : { KEEP (*(.text)) } :text
+       .rodata : { KEEP (*(.rodata .rodata.*)) }
+       .data   : { KEEP (*(.data)) }
+       _edata = .;
+       .bss    : { KEEP (*(.bss)) }
+       _end = .;
+}