Subject: Re: /dev/MAKEDEV and mknod -[rR]
To: None <tech-userlevel@netbsd.org>
From: Alan Barrett <apb@cequrux.com>
List: tech-userlevel
Date: 02/25/2007 12:02:30
On Sat, 24 Feb 2007, David Young wrote:
> If you have a NetBSD cross-toolchain around, I offer the following
> workaround: use ./MAKEDEV -s [...]  to create an mtree(8) specfile

The example MAKEDEV.local that we supply doesn't support the -s option
(or any of the other options).

The following potential solutions spring to mind:

A) Move the relevant code into a new MAKEDEV.subr, and let both MAKEDEV and
   MAKEDEV.local include it via "." at run time.  This has no duplicated
   code, but requires one extra file in distributions and ramdisk images.

B) Move the relevant code into src/etc/MAKEDEV.subr.tmpl, and let both MAKEDEV
   and MAKEDEV.local include it via preprocessing at build time.  This
   has no duplicated code at a source level, but does have duplicated code
   at a user-visible level, and requires users to keep the duplicated code in
   sync.

C) Maintain two copies of the code in src/etc/MAKDEV.tmpl and
   src/etc/MAKEDEV.local.

D) Let MAKEDEV invoke MAKEDEV.local using ".", so that MAKEDEV.local
   has access to all the shell functions and variables already defined
   in MAKEDEV.  This won't work if MAKEDEV.local is invoked directly.

E) keep the status quo, with MAKEDEV.local not supporting any options.

I like (A).  Any objections if I do it?

--apb (Alan Barrett)