From owner-freebsd-current Sat May 30 13:49:26 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id NAA00715 for freebsd-current-outgoing; Sat, 30 May 1998 13:49:26 -0700 (PDT) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from shrimp.dataplex.net (shrimp.dataplex.net [208.2.87.3]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id NAA00707 for ; Sat, 30 May 1998 13:49:23 -0700 (PDT) (envelope-from rkw@dataplex.net) Received: from [208.2.87.10] (user10.dataplex.net [208.2.87.10]) by shrimp.dataplex.net (8.8.8/8.8.5) with ESMTP id PAA29795; Sat, 30 May 1998 15:45:31 -0500 (CDT) Date: Sat, 30 May 1998 15:45:31 -0500 (CDT) X-Sender: rkw@mail.dataplex.net Message-Id: In-Reply-To: <19980530182913.04478@follo.net> References: <199805301346.PAA29505@labinfo.iet.unipi.it>; from Luigi Rizzo on Sat, May 30, 1998 at 03:46:04PM +0200 <199805301346.PAA29505@labinfo.iet.unipi.it> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: Eivind Eklund From: Richard Wackerbarth Subject: Re: How about /usr/ports/kernel ? Cc: current@FreeBSD.ORG Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG At 4:29 PM -0000 5/30/98, Eivind Eklund wrote: >My own view of this is that config(8) should scan for > ../../*/conf/files.FreeBSD > ../../*/conf/options.FreeBSD > ../../*/conf/files.FreeBSD. > ../../*/conf/options.FreeBSD. >add concatenate this with the appropriate files. > >This would allow us to add a new subsystem (like i4b) by just adding a >new subdir to the kernel. > >For some ports we would of course need to add extra kernel hooks, but >this at least solve the easy cases. > >What do people think? My first observation is that, other than being more dynamic, and a higher desire for individual customization, the binary file generated for "/kernel" is not fundamentally different from the one created for "/bin/cat" or "/usr/sbin/ctm". Each of them has its own variances on the theme of source -> itermediate -> result translation. For example, they use different linker stratgies. If we rearrange our viewpoint a bit, "config" is similar to "yacc" and is a tool (which needs to be up-to-date) which converts a source file (eg., "GENERIC") into some "C" files. These files are subsequently transformed, under the direction of "make", into intermediate object files and finally a loadable result. A single "user" may wish to have a number of different kernels built. He could do this by adding an appropriate (trivial) directory, Makefile, and additional/overriding files to describe his variation. Particular subprojects could, to a large extent, co-exist in the same (master) source tree. They would simply be invoked as needed by the kernel configuration and/or Makefiles. Unused sections would simply be ignored. A user would add appropriate directories to src/sys/compile.1386 for the kernels that he wishes to build. He would not explicitly run "config" because that would be an automatic part of the "make" structure. Richard Wackerbarth To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message