From owner-freebsd-current Thu May 2 00:07:45 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id AAA00789 for current-outgoing; Thu, 2 May 1996 00:07:45 -0700 (PDT) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.19]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id AAA00784 for ; Thu, 2 May 1996 00:07:41 -0700 (PDT) Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.12/8.6.9) id RAA00668; Thu, 2 May 1996 17:02:15 +1000 Date: Thu, 2 May 1996 17:02:15 +1000 From: Bruce Evans Message-Id: <199605020702.RAA00668@godzilla.zeta.org.au> To: bde@zeta.org.au, julian@ref.tfs.com Subject: Re: execve Cc: chuckr@Glue.umd.edu, freebsd-current@freebsd.org, joerg_wunsch@uriah.heep.sax.de, terry@lambert.org Sender: owner-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk >> OTOH, it would be easy to change config to emit: >> >> static const struct execsw aout_execsw = { exec_aout_imgact, "a.out" }; >> ... >> const struct linker_set execsw_set = { >> ... >but you'd have to educate config about every kind of linker set and >adding a new one would require changing config.... >yuk There are actually only a few kinds of linker sets (for TEXT and DATA, etc). In the above example, the execsw structs are actually in the individual modules and config would only need to emit the linker_set struct. There would have to be declarations in files[.machine] to tell config what to emit. E.g., kern_imgact.c standard TEXT_SET(execsw_set, aout_execsw) This is the same as now except the TEXT_SET() declaration is in /sys/conf/files instead of in the individual file. The advantages of this approach is that you're not limited to objects that can be built as linker sets, and you can see all the possible and configured objects in central places in the sources (in files[.machine] and in the generated sources). Bruce