summaryrefslogtreecommitdiffstats
path: root/distrib/i386/common
diff options
context:
space:
mode:
authornatano <natano@openbsd.org>2016-11-24 16:32:33 +0000
committernatano <natano@openbsd.org>2016-11-24 16:32:33 +0000
commit072c49fd6ca4c1cbb76c3c15714ebae7f5c568aa (patch)
tree30a9bdf4f539853c1da2980c9ed493bdbd4988df /distrib/i386/common
parentsync (diff)
downloadwireguard-openbsd-072c49fd6ca4c1cbb76c3c15714ebae7f5c568aa.tar.xz
wireguard-openbsd-072c49fd6ca4c1cbb76c3c15714ebae7f5c568aa.zip
Use makefs to build bsd.rd. amd64 and i386 are first; other platforms
will follow with some safety distance when I figured out all MD quirks. makefs allows to build the ramdisk image as an unprivileged user. The next step in the quest to reduce root during builds. ok deraadt
Diffstat (limited to 'distrib/i386/common')
-rw-r--r--distrib/i386/common/Makefile.inc52
1 files changed, 18 insertions, 34 deletions
diff --git a/distrib/i386/common/Makefile.inc b/distrib/i386/common/Makefile.inc
index 486538eef43..bcae63d6eac 100644
--- a/distrib/i386/common/Makefile.inc
+++ b/distrib/i386/common/Makefile.inc
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile.inc,v 1.39 2016/10/14 18:44:19 deraadt Exp $
+# $OpenBSD: Makefile.inc,v 1.40 2016/11/24 16:32:33 natano Exp $
TOP= ${.CURDIR}/..
@@ -49,10 +49,13 @@ ${FS}: bsd.gz
cp ${REALIMAGE} ${FS}
rm ${REALIMAGE}
-DISKTYPE?= rdroot
-NBLKS?= 3872
-# minfree, opt, b/i, blks/cyl
-NEWFSARGS= -m 0 -o space -i 4096
+unconfig:
+ -umount -f ${MOUNT_POINT}
+ -vnconfig -u ${VND}
+
+
+DISKTYPE= rdroot
+MAKEFSARGS_RD= -o disklabel=${DISKTYPE},minfree=0,density=4096
COPTS= -Os -mtune=i486
@@ -72,34 +75,21 @@ bsd:
su ${BUILDUSER} -c '${MAKE} config && ${MAKE} clean && env COPTS="${COPTS}" ${MAKE}'
cp -p ${.CURDIR}/../../../sys/arch/i386/compile/${RAMDISK}/obj/bsd bsd
-${IMAGE}: ${CBIN} rd_setup do_files rd_teardown
-
-rd_setup: ${CBIN}
- dd if=/dev/zero of=${REALIMAGE} bs=512 count=${NBLKS}
- vnconfig -v -c ${VND} ${REALIMAGE}
- disklabel -w ${VND} ${DISKTYPE}
- newfs ${NEWFSARGS} ${VND_RDEV}
- fsck ${VND_RDEV}
- mount ${VND_DEV} ${MOUNT_POINT}
-
-rd_teardown:
- @df -i ${MOUNT_POINT}
- -umount ${MOUNT_POINT}
- -vnconfig -u ${VND}
- cp ${REALIMAGE} ${IMAGE}
- rm ${REALIMAGE}
+${IMAGE}: ${CBIN}
+ rm -rf $@.d
+ install -d -o root -g wheel $@.d
+ mtree -def ${MTREE} -p $@.d -u
+ TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} REV=${REV} \
+ TARGDIR=$@.d UTILS=${UTILS} RELEASEDIR=${RELEASEDIR} \
+ sh ${UTILS}/runlist.sh ${LISTS}
+ rm $@.d/${CBIN}
+ makefs ${MAKEFSARGS_RD} $@ $@.d
rdsetroot: ${TOP}/../common/elfrdsetroot.c
${HOSTCC} ${HOSTCFLAGS} -o rdsetroot \
${TOP}/../common/elfrdsetroot.c ${TOP}/../common/elf32.c \
${TOP}/../common/elf64.c
-unconfig:
- -umount -f ${MOUNT_POINT}
- -vnconfig -u ${VND}
-
-.PRECIOUS: ${IMAGE}
-
.ifdef RELEASEDIR
install:
.ifndef NOBSDRD
@@ -121,18 +111,12 @@ ${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
${CRUNCHCONF}: ${LISTS}
awk -f ${UTILS}/makeconf.awk CBIN=${CBIN} ${LISTS} > ${CRUNCHCONF}
-do_files:
- mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u
- TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
- REV=${REV} TARGDIR=${MOUNT_POINT} UTILS=${UTILS} \
- RELEASEDIR=${RELEASEDIR} sh ${UTILS}/runlist.sh ${LISTS}
- rm ${MOUNT_POINT}/${CBIN}
-
clean cleandir:
/bin/rm -f *.core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}*.cache \
*.o *.lo *.c bsd bsd.rd bsd.gz bsd.strip floppy*.fs \
lib*.a lib*.olist ${CBIN}.map \
rdsetroot boot ${CRUNCHCONF} ${FS}
+ /bin/rm -rf ${IMAGE}.d
.include <bsd.obj.mk>
.include <bsd.subdir.mk>