summaryrefslogtreecommitdiffstats
path: root/sys/conf/Makefile.arm
diff options
context:
space:
mode:
authorcognet <cognet@FreeBSD.org>2005-12-20 20:57:20 +0000
committercognet <cognet@FreeBSD.org>2005-12-20 20:57:20 +0000
commit97736242bbaefa0b0eddabeb62a1e157358e7bdd (patch)
tree48ca2bde9ca62388b3434e6e970f9a5b22dc8ca7 /sys/conf/Makefile.arm
parent5a09b5d83f2e95dba9b891c36c6b45f41ebb4c60 (diff)
downloadFreeBSD-src-97736242bbaefa0b0eddabeb62a1e157358e7bdd.zip
FreeBSD-src-97736242bbaefa0b0eddabeb62a1e157358e7bdd.tar.gz
Rather than appending it at the end of the kernel build process, give the
ELF trampoline build its own target, "trampoline". It makes it possible to construct a bootable gzipped kernel without having to build in the same process.
Diffstat (limited to 'sys/conf/Makefile.arm')
-rw-r--r--sys/conf/Makefile.arm41
1 files changed, 20 insertions, 21 deletions
diff --git a/sys/conf/Makefile.arm b/sys/conf/Makefile.arm
index a31aea1..a68c123 100644
--- a/sys/conf/Makefile.arm
+++ b/sys/conf/Makefile.arm
@@ -58,40 +58,39 @@ SYSTEM_LD_TAIL +=;sed s/" + SIZEOF_HEADERS"// ldscript.$M\
${OBJCOPY} -S -O binary ${FULLKERNEL}.noheader \
${KERNEL_KO}.bin; \
rm ${FULLKERNEL}.noheader
-.if ${DDB_ENABLED} != "" || defined(BUILD_ELF_TRAMPOLINE)
-SYSTEM_LD_TAIL += ;echo "\#define KERNNAME \"${KERNEL_KO}.tmp\"" \
- >opt_kernname.h ;\
- sed s/${KERNVIRTADDR}/${KERNPHYSADDR}/ ldscript.$M > \
- ldscript.$M.tramp; \
+
+trampoline: ${KERNEL_KO}.tramp
+${KERNEL_KO}.tramp: ${KERNEL_KO}
+ echo "#define KERNNAME \"${KERNEL_KO}.tmp\"" >opt_kernname.h
+ sed s/${KERNVIRTADDR}/${KERNPHYSADDR}/ ldscript.$M > ldscript.$M.tramp
sed s/" + SIZEOF_HEADERS"// ldscript.$M.tramp > \
- ldscript.$M.tramp.noheader; \
+ ldscript.$M.tramp.noheader
${OBJCOPY} --strip-symbol '$$d' --strip-symbol '$$a' \
- -g --strip-symbol '$$t' ${FULLKERNEL} ${KERNEL_KO}.tmp;\
+ -g --strip-symbol '$$t' ${FULLKERNEL} ${KERNEL_KO}.tmp
${CC} -O -nostdlib -I. -Xlinker -T -Xlinker ldscript.$M.tramp \
- $S/$M/$M/elf_trampoline.c $S/$M/$M/inckern.S -o ${KERNEL_KO}.tramp;\
+ $S/$M/$M/elf_trampoline.c $S/$M/$M/inckern.S -o ${KERNEL_KO}.tramp
${CC} -O -nostdlib -I. -Xlinker -T -Xlinker ldscript.$M.tramp.noheader \
$S/$M/$M/elf_trampoline.c $S/$M/$M/inckern.S -o \
- ${KERNEL_KO}.tramp.noheader; \
+ ${KERNEL_KO}.tramp.noheader
${OBJCOPY} -S -O binary ${KERNEL_KO}.tramp.noheader \
- ${KERNEL_KO}.tramp.bin; \
- ${OBJCOPY} ${STRIP_FLAGS} ${KERNEL_KO}.tmp; \
- echo "\#define KERNNAME \"${KERNEL_KO}.tmp.gz\"" \
- >opt_kernname.h ;\
- gzip -9 ${KERNEL_KO}.tmp; \
+ ${KERNEL_KO}.tramp.bin
+ ${OBJCOPY} ${STRIP_FLAGS} ${KERNEL_KO}.tmp
+ echo "#define KERNNAME \"${KERNEL_KO}.tmp.gz\"" \
+ >opt_kernname.h
+ gzip -9 ${KERNEL_KO}.tmp
eval $$(stat -s ${KERNEL_KO}.tmp.gz) && \
- echo "\#define KERNSIZE $$st_size" >>opt_kernname.h;\
- ${CC} -O2 -DKZIP -I. -c $S/kern/inflate.c -o inflate-tramp.o; \
+ echo "#define KERNSIZE $$st_size" >>opt_kernname.h
+ ${CC} -O2 -DKZIP -I. -c $S/kern/inflate.c -o inflate-tramp.o
${CC} -O -nostdlib -I. -Xlinker -T -Xlinker ldscript.$M.tramp \
-DKZIP $S/$M/$M/elf_trampoline.c inflate-tramp.o $S/$M/$M/inckern.S \
- -o ${KERNEL_KO}.gz.tramp;\
+ -o ${KERNEL_KO}.gz.tramp
${CC} -O -nostdlib -I. -Xlinker -T -Xlinker ldscript.$M.tramp.noheader \
-DKZIP $S/$M/$M/elf_trampoline.c inflate-tramp.o $S/$M/$M/inckern.S \
- -o ${KERNEL_KO}.tramp.noheader; \
+ -o ${KERNEL_KO}.tramp.noheader
${OBJCOPY} -S -O binary ${KERNEL_KO}.tramp.noheader \
- ${KERNEL_KO}.gz.tramp.bin; \
+ ${KERNEL_KO}.gz.tramp.bin
rm ${KERNEL_KO}.tmp.gz ${KERNEL_KO}.tramp.noheader opt_kernname.h \
- inflate-tramp.o;
-.endif
+ inflate-tramp.o
%BEFORE_DEPEND
OpenPOWER on IntegriCloud