From bac0222eecbfd85f0a3cd5628e2e076c9b345443 Mon Sep 17 00:00:00 2001 From: Arun Thomas Date: Wed, 23 Feb 2011 13:05:28 +0000 Subject: [PATCH] ramdisk: Add procfs to ramdisk -Prevents kernel/procfs mismatches -Also, strip ELF binaries in ramdisk --- drivers/ramdisk/Makefile | 68 +++++++++++++++++++++++++++------------- drivers/ramdisk/proto | 1 + drivers/ramdisk/rc | 2 ++ etc/rc | 2 -- 4 files changed, 49 insertions(+), 24 deletions(-) diff --git a/drivers/ramdisk/Makefile b/drivers/ramdisk/Makefile index 751d4879b..4a47f281b 100644 --- a/drivers/ramdisk/Makefile +++ b/drivers/ramdisk/Makefile @@ -1,18 +1,27 @@ # Makefile for ramdisk image +.include + PROGRAMS=ahci at_wini bios_wini cdprobe dev2name floppy loadramdisk mount \ - newroot pci sh service sysenv mfs ext2 + pci procfs sh service sysenv mfs ext2 +SCRIPTS=newroot # acpi is not compiled with ack .if ${COMPILER_TYPE} == "gnu" PROGRAMS += acpi .endif +.if ${OBJECT_FMT} == "ELF" +ELFSTRIP=/usr/gnu_cross/bin/i386-pc-minix3-strip +.else +STRIPFLAG+= -s +.endif + EXTRA=system.conf passwd rs.single CPPFLAGS+= -I${MINIXSRCDIR}/servers -I${MINIXSRCDIR} MAKEDEV=/usr/bin/MAKEDEV -CLEANFILES += $(PROGRAMS) $(EXTRA) bintoc image image.c t proto.gen +CLEANFILES += $(PROGRAMS) $(SCRIPTS) $(EXTRA) bintoc image image.c t proto.gen install: all @@ -30,111 +39,126 @@ image: proto.gen mtab rc $(EXTRA) mkfs.mfs image proto.gen || { rm -f image; false; } ahci: ../ahci/ahci - install -s ../$@/$@ $@ + install ${STRIPFLAG} ../$@/$@ $@ ../ahci/ahci: $(MAKE) -C ../ahci at_wini: ../at_wini/at_wini - install -s ../$@/$@ $@ + install ${STRIPFLAG} ../$@/$@ $@ ../at_wini/at_wini: $(MAKE) -C ../at_wini bios_wini: ../bios_wini/bios_wini - install -s ../$@/$@ $@ + install ${STRIPFLAG} ../$@/$@ $@ ../bios_wini/bios_wini: $(MAKE) -C ../bios_wini floppy: ../floppy/floppy - install -s ../$@/$@ $@ + install ${STRIPFLAG} ../$@/$@ $@ ../floppy/floppy: $(MAKE) -C ../floppy acpi: ../acpi/acpi - install -s ../$@/$@ $@ + install ${STRIPFLAG} ../$@/$@ $@ ../acpi/acpi: $(MAKE) -C ../acpi pci: ../pci/pci - install -s ../$@/$@ $@ + install ${STRIPFLAG} ../$@/$@ $@ ../pci/pci: $(MAKE) -C ../pci cdprobe: ../../commands/cdprobe/cdprobe - install -s ../../commands/$@/$@ $@ + install ${STRIPFLAG} ../../commands/$@/$@ $@ ../../commands/cdprobe: $(MAKE) -C ../../commands/cdprobe dev2name: ../../commands/dev2name/dev2name - install -s ../../commands/$@/$@ $@ + install ${STRIPFLAG} ../../commands/$@/$@ $@ ../../commands/dev2name/dev2name: $(MAKE) -C ../../commands/dev2name loadramdisk: ../../commands/loadramdisk/loadramdisk - install -s ../../commands/$@/$@ $@ + install ${STRIPFLAG} ../../commands/$@/$@ $@ ../../commands/loadramdisk/loadramdisk: $(MAKE) -C ../../commands/loadramdisk mount: ../../commands/mount/mount - install -s ../../commands/$@/$@ $@ + install ${STRIPFLAG} ../../commands/$@/$@ $@ ../../commands/mount/mount: $(MAKE) -C ../../commands/mount newroot: ../../commands/newroot/newroot.sh - install -s ../../commands/$@/$@.sh $@ + install ${STRIPFLAG} ../../commands/$@/$@.sh $@ ../../commands/newroot/newroot: $(MAKE) -C ../../commands/newroot sysenv: ../../commands/sysenv/sysenv - install -s ../../commands/$@/$@ $@ + install ${STRIPFLAG} ../../commands/$@/$@ $@ ../../commands/sysenv: $(MAKE) -C ../../commands/sysenv sh: ../../commands/ash/sh - install -s ../../commands/ash/$@ $@ + install ${STRIPFLAG} ../../commands/ash/$@ $@ ../../commands/ash/sh: $(MAKE) -C ../../commands/ash sh service: ../../commands/service/service - install -s ../../commands/service/$@ $@ + install ${STRIPFLAG} ../../commands/service/$@ $@ ../../commands/service: $(MAKE) -C ../../commands/service mfs: ../../servers/mfs/mfs - install -s ../../servers/mfs/$@ $@ + install ${STRIPFLAG} ../../servers/mfs/$@ $@ ../../servers/mfs/mfs: $(MAKE) -C ../../servers/mfs +procfs: ../../servers/procfs/procfs + install ${STRIPFLAG} ../../servers/procfs/$@ $@ + +../../servers/procfs/procfs: + $(MAKE) -C ../../servers/procfs + ext2: ../../servers/ext2/ext2 - install -s ../../servers/ext2/$@ $@ + install ${STRIPFLAG} ../../servers/ext2/$@ $@ ../../servers/ext2/ext2: $(MAKE) -C ../../servers/ext2 system.conf: ../../etc/system.conf - install -s ../../etc/$@ $@ + install ${STRIPFLAG} ../../etc/$@ $@ passwd: ../../etc/passwd - install -s ../../etc/$@ $@ + install ${STRIPFLAG} ../../etc/$@ $@ rs.single: ../../etc/rs.single - install -s ../../etc/$@ $@ + install ${STRIPFLAG} ../../etc/$@ $@ -proto.gen: $(PROGRAMS) $(MAKEDEV) proto.sh proto +proto.gen: $(PROGRAMS) $(SCRIPTS) $(MAKEDEV) proto.sh proto sh -e proto.sh >proto.gen +.if ${OBJECT_FMT} == "ELF" +proto.gen: elfstrip + +.PHONY: elfstrip + +elfstrip: $(PROGRAMS) + ${ELFSTRIP} $(PROGRAMS) +.endif + .include diff --git a/drivers/ramdisk/proto b/drivers/ramdisk/proto index 3e0f9f30e..e723ddf85 100644 --- a/drivers/ramdisk/proto +++ b/drivers/ramdisk/proto @@ -20,6 +20,7 @@ d--755 0 0 floppy ---755 0 0 floppy pci ---755 0 0 pci mfs ---755 0 0 mfs + procfs ---755 0 0 procfs $ dev d--755 0 0 @DEV@ diff --git a/drivers/ramdisk/rc b/drivers/ramdisk/rc index c86bf5e54..f0eeee9a4 100644 --- a/drivers/ramdisk/rc +++ b/drivers/ramdisk/rc @@ -24,6 +24,7 @@ else /bin/service -cr up /sbin/at_wini -dev /dev/c1d0 -label at_wini_1 -args instance=1 fi /bin/service -c edit /sbin/mfs -label fs_imgrd +/bin/service up /sbin/procfs || echo "WARNING: couldn't start procfs" rootdev=`sysenv rootdev` || echo 'No rootdev?' rootdevname=`/bin/dev2name "$rootdev"` || @@ -55,4 +56,5 @@ then fi echo "Root device name is $rootdevname" /bin/newroot $bin_img"$rootdevname" +/bin/mount -e -t procfs none /proc || echo "WARNING: couldn't mount procfs" exec /bin/sh /etc/rc "$@" diff --git a/etc/rc b/etc/rc index 8c5325717..3b6626280 100755 --- a/etc/rc +++ b/etc/rc @@ -192,8 +192,6 @@ Mount $usr /usr failed -- Single user." then mount $bin_img $home /home || echo "WARNING: couldn't mount $home on /home" fi - mount -t procfs none /proc || echo "WARNING: couldn't mount procfs" - # This file is necessary for above 'shutdown -C' check. # (Silence stderr in case of running from cd.) touch /usr/adm/wtmp 2>/dev/null -- 2.44.0