Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 May 1996 17:02:15 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        bde@zeta.org.au, julian@ref.tfs.com
Cc:        chuckr@Glue.umd.edu, freebsd-current@freebsd.org, joerg_wunsch@uriah.heep.sax.de, terry@lambert.org
Subject:   Re: execve
Message-ID:  <199605020702.RAA00668@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>> 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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199605020702.RAA00668>