Home | History | Annotate | Download | only in config
History log of /src/usr.bin/config/files.c
RevisionDateAuthorComments
 1.38  05-Apr-2024  riastradh config(1): Make sort order deterministic.

Ensure we break ties in every case. This way, even though we use the
unstable qsort(3) library routine, the output is reproducible, no
matter what algorithm is behind qsort(3).

It would be nice if we could just use a stable sort function here,
but mergesort(3) is nonstandard, so we'd have to add it to
tools/compat, which is a big pain.

Instead, put a tie-breaking rule in every comparison function we use
with qsort, and abort() in the event of ties -- that way, we noisily
refuse to rely on unstable sort order.

While here, dispense with any question of integer overflow, and
sprinkle comments.

PR bin/58115
 1.37  07-Mar-2020  christos branches: 1.37.6;
Keep track where more objects are declared so that we can print where things
have been redefined.
 1.36  09-Sep-2016  christos branches: 1.36.14; 1.36.16;
Make attribute deselection work:
- when deselecting attributes, remove files that depend on them
- when deselecting attributes, remove devices that depend on them
 1.35  04-Sep-2015  uebayasi Fix previous.
 1.34  04-Sep-2015  uebayasi Fix segmentation fault.
 1.33  04-Sep-2015  uebayasi Sort files in ${ALLFILES} in the order of parsing of `files.*'.

config(1) reads the first `files.${MACHINE}' when it encounters `machine'.
Then it includes common `files.${MACHINE_SUBARCH}', `files.${MACHINE_ARCH}',
and MI `sys/conf/files' at last. This change makes the first "file" in
`files.${MACHINE}' appear first in ${ALLFILES}.
 1.32  04-Sep-2015  uebayasi *.o files don't need special handling at all now. Makefile.kern.inc knows
*.o input files don't need to get compiled, but need to get linked.
 1.31  04-Sep-2015  uebayasi Now Makefile.kern.inc handles swap<kernel>.c compiling/linking nicely,
config(1) can become less hackish.
 1.30  04-Sep-2015  uebayasi Share more code by making *.o handling less special.
 1.29  03-Sep-2015  uebayasi Add generated *.c files (devsw.c and ioconf.c) to ${CFILES} by config(1)
internally. ${MI_CFILES} in Makefile.kern.inc is no longer needed.
 1.28  03-Sep-2015  uebayasi After thought, revert "Generate *.c files under conf/". Generate *.c files
under top build directory. *.c files are never placed just under $S/. Keep
this exclusiveness.
 1.27  02-Sep-2015  uebayasi In `-S' mode, generate *.c files under conf/ subdirectory. Register generated
.c files to the `files' list internally.
 1.26  01-Sep-2015  uebayasi Experimental ``suffix rules + subdirectories'' build support (-S).
 1.25  01-Sep-2015  uebayasi Introduce a new syntax, "buildprefix", to specify prefix of files under kernel
build subdirectory. This is not used now that everything is built at the
top of kernel build directory. It will become mandatory for source/object
files put out of kernel source tree to specify corresponding build subdirectory.
Only ``no dots'' relative path is accepted as "buildprefix".
 1.24  01-Sep-2015  uebayasi Keep track of directory of files internally.
 1.23  01-Sep-2015  uebayasi Use per-suffix lists where appropriate.
 1.22  01-Sep-2015  uebayasi Merge struct objects into struct files. Keep per-suffix file lists.
 1.21  29-Aug-2015  uebayasi Revert "Retire optional `rule' argument of `file' command". It is still used
in m68k ports.
 1.20  28-Aug-2015  uebayasi Retire optional `rule' argument of `file' command.

This has existed since Rev. 1.1 of Torek's config(8) [1], but probably has
never been used by anyone.

(I can not imagine how a `file' like look like if `rule' is specified.)

[1] http://cvsweb.netbsd.org/bsdweb.cgi/src/usr.sbin/config.new/Attic/files.c?rev=1.1
 1.19  28-Aug-2015  uebayasi Error out if a given path is absolute.
 1.18  17-Nov-2014  uebayasi Pre-calc file path len/suffix. Misc. clean up.
 1.17  29-Oct-2014  christos - add RCSID's
- fix -Wconversion (except scanner)
 1.16  09-Oct-2014  uebayasi FIT_FORCESELECT is never set anywhere.
 1.15  09-Oct-2014  uebayasi Define an implicit attribute "netbsd" internally to collect files that don't
belong to any specific attribute.

Eventually, all operations doing "foreach (files)" can be rewritten as "foreach
(attributes) foreach (files)".
 1.14  09-Oct-2014  uebayasi If a file is marked by an atom expression, like "file a.c foo", and if the
specified expression is an attribute, mark the file as belonging to the
attribute.

At this moment this information is not used for any purpose, but can be
traced by config -ddd.
 1.13  09-Oct-2014  uebayasi Debug print where things are selected (by user).
 1.12  21-May-2014  dholland branches: 1.12.2;
avoid error path SIGSEGV
 1.11  11-Mar-2012  dholland branches: 1.11.2; 1.11.8;
Create a struct condexpr type to hold condition expressions, instead
of abusing struct nvlist to make trees.

(These are the a|b and a&b constructs.)
 1.10  13-Mar-2009  cube branches: 1.10.6;
Actually allow a full expression for the condition for "makeoptions" in
files.*

Patch from Yorick Hardy.
 1.9  20-Jan-2009  drochner branches: 1.9.2;
Change major()/minor() to return 32-bit types again, called
devmajor_t/devminor_t, as proposed on tech-kern.
This avoids 64-bit arithmetics and 64-bit printf formats in parts
of the kernel where it is not really useful, and helps clarity.
 1.8  28-Dec-2008  christos rename nv_int -> nv_num and make it long long, so that dev_t will fit when
we change it.
 1.7  30-Nov-2007  dsl Be more informative about duplicated device names.
 1.6  13-Jan-2007  christos branches: 1.6.4;
- rename {x,}error -> cfg{x,}error and {x,}warn -> cfg{x,}warn so that we
can use err(3) and warn(3) to display errors instead of using inconsistent
fprintf's.
- remove emalloc/estrdup etc. We have them in libutil.
 1.5  26-Dec-2006  alc CID-4275: don't leak `fixdevmtab'
 1.4  27-Sep-2006  christos Coverity CID 175: Avoid memory leak; add new function to destroy a hash table.
 1.3  26-Aug-2006  christos Now that this is part of tools, we don't need the extra build glue.
 1.2  07-Nov-2005  erh Remove special hack for swapnetbsd.c when generating the makefile.
Instead, just add it to the list of files.
Make "prefix foo" lines actually work right when foo is an absolute path,
and make sure the length calculations correspond to the output.
Provide a way to specify a file that will always be included, and a way
to omit the prologue ("$S/") on that file.
 1.1  05-Jun-2005  thorpej config and genassym are not sysadmin tools, they are development tools.
As such, they don't belong in /usr/sbin, but rather /usr/bin. Move them
there.
 1.6.4.1  09-Jan-2008  matt sync with HEAD
 1.9.2.1  13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.10.6.1  17-Apr-2012  yamt sync with head
 1.11.8.1  10-Aug-2014  tls Rebase.
 1.11.2.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.12.2.1  06-Mar-2015  snj Pull up following revision(s) (requested by mrg in ticket #572):
usr.bin/config/Makefile: up to 1.10
usr.bin/config/TODO: up to 1.14
usr.bin/config/config.1: up to 1.17
usr.bin/config/config.5: up to 1.25
usr.bin/config/defs.h: up to 1.64
usr.bin/config/files.c: up to 1.18
usr.bin/config/gram.y: up to 1.46
usr.bin/config/hash.c: up to 1.11
usr.bin/config/lint.c: up to 1.15
usr.bin/config/main.c: up to 1.74
usr.bin/config/mkdevsw.c: up to 1.12
usr.bin/config/mkheaders.c: up to 1.26
usr.bin/config/mkioconf.c: up to 1.28
usr.bin/config/mkmakefile.c: up to 1.37
usr.bin/config/mkswap.c: up to 1.8
usr.bin/config/pack.c: up to 1.9
usr.bin/config/scan.l: up to 1.22
usr.bin/config/sem.c: up to 1.71
usr.bin/config/sem.h: up to 1.19
usr.bin/config/util.c: up to 1.19
sync config(1) with HEAD.
 1.36.16.2  23-Aug-2024  martin Pull up following revision(s) (requested by riastradh in ticket #1875):

usr.bin/config/defs.h: revision 1.109
usr.bin/config/files.c: revision 1.38
usr.bin/config/mkmakefile.c: revision 1.73
usr.bin/config/pack.c: revision 1.11
usr.bin/config/mkioconf.c: revision 1.36

config(1): Make sort order deterministic.

Ensure we break ties in every case. This way, even though we use the
unstable qsort(3) library routine, the output is reproducible, no
matter what algorithm is behind qsort(3).

It would be nice if we could just use a stable sort function here,
but mergesort(3) is nonstandard, so we'd have to add it to
tools/compat, which is a big pain.

Instead, put a tie-breaking rule in every comparison function we use
with qsort, and abort() in the event of ties -- that way, we noisily
refuse to rely on unstable sort order.

While here, dispense with any question of integer overflow, and
sprinkle comments.

PR bin/58115
 1.36.16.1  09-Mar-2020  martin Pull up the following, requested by christos in ticket #776:

usr.bin/config/TODO up to 1.32
usr.bin/config/defs.h up to 1.105
usr.bin/config/files.c up to 1.37
usr.bin/config/gram.y up to 1.55
usr.bin/config/main.c up to 1.99
usr.bin/config/scan.l up to 1.30
usr.bin/config/sem.c up to 1.84
usr.bin/config/util.c up to 1.21

config(1): fix issue with incorrect handling of elifdef statements.
 1.36.14.1  08-Apr-2020  martin Merge changes from current as of 20200406
 1.37.6.1  23-Aug-2024  martin Pull up following revision(s) (requested by riastradh in ticket #798):

usr.bin/config/defs.h: revision 1.109
usr.bin/config/files.c: revision 1.38
usr.bin/config/mkmakefile.c: revision 1.73
usr.bin/config/pack.c: revision 1.11
usr.bin/config/mkioconf.c: revision 1.36

config(1): Make sort order deterministic.

Ensure we break ties in every case. This way, even though we use the
unstable qsort(3) library routine, the output is reproducible, no
matter what algorithm is behind qsort(3).

It would be nice if we could just use a stable sort function here,
but mergesort(3) is nonstandard, so we'd have to add it to
tools/compat, which is a big pain.

Instead, put a tie-breaking rule in every comparison function we use
with qsort, and abort() in the event of ties -- that way, we noisily
refuse to rely on unstable sort order.

While here, dispense with any question of integer overflow, and
sprinkle comments.

PR bin/58115

RSS XML Feed