summaryrefslogtreecommitdiff
path: root/sys/arch/sparc/stand/boot/Makefile
diff options
context:
space:
mode:
authorArtur Grabowski <art@cvs.openbsd.org>2002-08-11 23:11:23 +0000
committerArtur Grabowski <art@cvs.openbsd.org>2002-08-11 23:11:23 +0000
commitfb6a32c2912aeedcccd7059407d495ad4a6e1421 (patch)
tree672650a8219bca690a2ac97afbb746a902db97b3 /sys/arch/sparc/stand/boot/Makefile
parent1c9a674781a04c62693d9e96cee8c3d61d7270bb (diff)
ELF support in sparc bootblocks.
Loadfile is from alpha, but heaviliy hacked here. The build is done by building elf versions of boot and bootxx, then merging the .rodata and .text sections into .text with a horrible hack and then using objcopy to convert that into a.out. Maybe someone will want to fix installboot to deal with ELF instead, but I won't be that someone in the nearest future.
Diffstat (limited to 'sys/arch/sparc/stand/boot/Makefile')
-rw-r--r--sys/arch/sparc/stand/boot/Makefile21
1 files changed, 15 insertions, 6 deletions
diff --git a/sys/arch/sparc/stand/boot/Makefile b/sys/arch/sparc/stand/boot/Makefile
index 078cde65973..1c74591bab0 100644
--- a/sys/arch/sparc/stand/boot/Makefile
+++ b/sys/arch/sparc/stand/boot/Makefile
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile,v 1.9 2000/02/19 15:38:24 deraadt Exp $
+# $OpenBSD: Makefile,v 1.10 2002/08/11 23:11:22 art Exp $
# $NetBSD: Makefile,v 1.2 1995/09/30 21:43:38 pk Exp $
.PATH: ${.CURDIR}/../common
@@ -9,16 +9,25 @@ NOMAN= noman
INSTALL_STRIP=
SRCS= srt0.S boot.c conf.c dvma.c net.c netif_sun.c promdev.c version.c
+SRCS+= loadfile.c
CFLAGS= -O2 -I${.CURDIR}/../common -I${.CURDIR}/../../../../arch \
- -I${.CURDIR}/../../../.. -I${.CURDIR}/../../../../lib/libsa ${DEFS}
+ -I${.CURDIR}/../../../.. -I${.CURDIR}/../../../../lib/libsa ${DEFS} \
+ -DSPARC_BOOT_AOUT -DSPARC_BOOT_ELF
-${PROG}: ${OBJS} ${LIBS}
- ${LD} -N -T ${RELOC2} -e start ${OBJS} ${LIBSA} ${LIBKERN} ${LIBZ} `cc -print-libgcc-file-name`
- # convert to Sun magic
+CLEANFILES+=${PROG}.aout ${PROG}.elf
+LIBS=${LIBSA} ${LIBKERN} ${LIBZ}
+
+elfclean: clean-elf.c
+ ${HOSTCC} -o elfclean ${.ALLSRC}
+
+${PROG}: ${OBJS} ${LIBS} elfclean
+ ${LD} -N -Ttext ${RELOC2} --format a.out-sparc-netbsd -e start ${OBJS} ${LIBSA} ${LIBKERN} ${LIBZ} `cc -print-libgcc-file-name` -o elf
+ ./elfclean elf
+ objcopy -j .text -j .data -j .bss -O a.out-sparc-netbsd elf a.out
@size a.out
(echo -n 01 | tr 01 '\01\03'; tail +3c a.out) > ${.TARGET}
- @rm a.out
+ @rm a.out elf
srt0.o: srt0.S
${CC} ${CFLAGS} -D_LOCORE -c ${.IMPSRC}