History log of /netbsd-current/usr.bin/config/files.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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


Revision tags: netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base phil-wifi-20200421 phil-wifi-20200411 phil-wifi-20200406
# 1.37 07-Mar-2020 christos

Keep track where more objects are declared so that we can print where things
have been redefined.


Revision tags: is-mlppp-base netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914
# 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


Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 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).


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.12 21-May-2014 dholland

branches: 1.12.2;
avoid error path SIGSEGV


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 yamt-pagecache-base5 yamt-pagecache-base4
# 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.)


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 matt-premerge-20091211 jym-xensuspend-nbase jym-xensuspend-base
# 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.


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.7 30-Nov-2007 dsl

Be more informative about duplicated device names.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 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'


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 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.


Revision tags: abandoned-netbsd-4-base chap-midi-nbase chap-midi-base
# 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.37 07-Mar-2020 christos

Keep track where more objects are declared so that we can print where things
have been redefined.


Revision tags: netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914
# 1.36 09-Sep-2016 christos

Make attribute deselection work:
- when deselecting attributes, remove files that depend on them
- when deselecting attributes, remove devices that depend on them


Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 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).


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.12 21-May-2014 dholland

branches: 1.12.2;
avoid error path SIGSEGV


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 yamt-pagecache-base5 yamt-pagecache-base4
# 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.)


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 matt-premerge-20091211 jym-xensuspend-nbase jym-xensuspend-base
# 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.


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.7 30-Nov-2007 dsl

Be more informative about duplicated device names.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 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'


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 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.


Revision tags: abandoned-netbsd-4-base chap-midi-nbase chap-midi-base
# 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.


Revision tags: pgoyette-localcount-20161104 localcount-20160914
# 1.36 09-Sep-2016 christos

Make attribute deselection work:
- when deselecting attributes, remove files that depend on them
- when deselecting attributes, remove devices that depend on them


Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 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).


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.12 21-May-2014 dholland

branches: 1.12.2;
avoid error path SIGSEGV


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 yamt-pagecache-base5 yamt-pagecache-base4
# 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.)


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 matt-premerge-20091211 jym-xensuspend-nbase jym-xensuspend-base
# 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.


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.7 30-Nov-2007 dsl

Be more informative about duplicated device names.


Revision tags: matt-armv6-prevmlocking matt-mips64-base
# 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'


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 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.


Revision tags: abandoned-netbsd-4-base chap-midi-nbase chap-midi-base
# 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.