Subject: patch rfc: "host tools" disklabel, fdisk
To: None <tech-toolchain@NetBSD.org>
From: David Young <dyoung@pobox.com>
List: tech-toolchain
Date: 03/23/2005 18:34:10
--uxuisgdDHaNETlh8
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Y'all,

I am building NetBSD CompactFlash images for "rooftop" wireless routers
based on the Soekris SBC.  It's important that I can put both a DOS MBR
and a proper NetBSD disklabel on the system.  I badly need to support
developers who want to build CF images on 1.6.2 and Linux.  Hence the
attached patches, that make fdisk and disklabel into "host tools."

I would like to get your feedback on this before I commit to -current.
I hope that this can make it into the 3.1 release.

In broad overview, here are the changes I've made to the tools and
build system:

        In disklabel and fdisk, I've conditioned uses of ioctl(2) and
        sysctl(3) on !defined(HAVE_NBTOOL_CONFIG_H).

        If defined(HAVE_NBTOOL_CONFIG_H), I #include many system
        header files using relative paths.

        sys/disklabel.h #includes <machine/disklabel.h>.  Working around
        this was kind of tricky.  My solution is to install all the
        machine/*.h header files in $TOOLDIR/nbmachine/nbmachine/.
        I made some changes to bsd.kinc.mk for this purpose, and I added
        src/tools/nbmachine/Makefile.

Dave

P.S. There are some extraneous changes I intend to commit separately.

        Use standard type names (uint -> u_int, ulong -> u_long).

        Removed whitespace at EOL.

        Changed all subroutine and variable names from KNF to Pascal/Java
        style (disklabel -> DiskLabel).

        (Switched to GNU)
            {
                indentation style;
            }
        thoughout.

        Changed from British to Yankee spellings (judgement -> judgment,
        colour -> color).

-- 
David Young             OJC Technologies
dyoung@ojctech.com      Urbana, IL * (217) 278-3933

--uxuisgdDHaNETlh8
Content-Type: application/x-gzip
Content-Disposition: attachment; filename="host-fdisk-disklabel-3.gz"
Content-Transfer-Encoding: base64

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

--uxuisgdDHaNETlh8--