History log of /freebsd-current/usr.sbin/config/lang.l
Revision Date Author Comments
# 8a7b6120 23-Nov-2023 Warner Losh <imp@FreeBSD.org>

usr.sbin: Remove ancient SCCS tags.

Remove ancient SCCS tags from the tree, automated scripting, with two
minor fixup to keep things compiling. All the common forms in the tree
were removed with a perl script.

Sponsored by: Netflix


# 42b38843 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line .h pattern

Remove /^\s*\*+\s*\$FreeBSD\$.*$\n/


# c04ad15c 16-Feb-2023 Kyle Evans <kevans@FreeBSD.org>

config: address a number of Coverity issues

Highlights:
- Various memory leaks
- FILE* leaks
- `tsize` in moveifchanged() is only needed if !changed, and `from_sb`
is only valid if !changed.
- Simplify trivially true expression
- Sanity check elfdump size output (+ fix variable sizes) (des@)

CID: 1471167, 1006391, 1505333, 1505275, 1505349, 1505306, 1505232
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D38643


# 6a836ea7 17-Jun-2021 Warner Losh <imp@FreeBSD.org>

config(8): Remove obsolete 'config' directive.

The "config" line in config files has been obsolete since FreeBSD 4.x
when we moved to having the boot loader pass in the root device. Remove
it.

MFC After: 1 week
Sponsored by: Netflix


# 69efe369 31-Mar-2021 Konstantin Belousov <kib@FreeBSD.org>

config(8): remove support for -p

and other equivalent ways to request mcount-based profiling, like
'profile N' in kernel config.

Reviewed by: jhb
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D29529


# 4b09be03 20-Aug-2018 Kyle Evans <kevans@FreeBSD.org>

config(8): Allow escape-quoted empty strings

For use with things like BOOT_TAG=\"\" -- there are valid reasons to allow
empty strings, especially as these are usually being passed through as
options. The same argument could perhaps be made for the unquoted
variant in things like MODULES_OVERRIDE="", but it's not immediately clear
that this is an issue so I've left it untouched.

MFC after: 3 days


# 3b31596d 25-Jun-2018 Kyle Evans <kevans@FreeBSD.org>

config(8): Add `envvar` support

envvar allows adding individual environment variables to the kernel's static
environment without the overhead of pulling in a full file. envvar in a
config looks like:

envvar some_var=5

All envvar-provided variables will be added after the env file is processed,
so envvar keys that exist in the previous env will be overwritten by
whatever value is set here in the kernel configuration directly.

As an aside, envvar lines are intentionally tokenized differently from
basically every other line. We used a named state when ENVVAR is encountered
to gobble up the rest of the line, which will later be cleaned and validated
in post-processing by sanitize_envline. This turns out to be the simplest
and cleanest way to allow the flexibility that kenv does while not
compromising on silly hacks.

Reviewed by: ian (also contributor of sanitize_envline rewrite)
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D15962


# 8a16b7a1 20-Nov-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

General further adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 3-Clause license.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.

Special thanks to Wind River for providing access to "The Duke of
Highlander" tool: an older (2014) run over FreeBSD tree was useful as a
starting point.


# fbbd9655 28-Feb-2017 Warner Losh <imp@FreeBSD.org>

Renumber copyright clause 4

Renumber cluase 4 to 3, per what everybody else did when BSD granted
them permission to remove clause 3. My insistance on keeping the same
numbering for legal reasons is too pedantic, so give up on that point.

Submitted by: Jan Schaumann <jschauma@stevens.edu>
Pull Request: https://github.com/freebsd/freebsd/pull/96


# 8f2c79ef 15-May-2016 Don Lewis <truckman@FreeBSD.org>

Don't free fnamebuf before we calling cfgfile_add(). This changes a
use-after-free error into a minor memory leak.

Reported by: Coverity
CID: 1006084


# ae094461 20-Mar-2014 Alan Somers <asomers@FreeBSD.org>

Fix kern/187712: config(8) does not respect KERNCONFDIR.
The impact of this bug is that you cannot build a kernel if both of the
following are true:
1) The kernel config file is in a non-default location
2) The kernel config file uses the "include" statement from config(5).

usr.sbin/config/main.c
usr.sbin/config/config.8
usr.sbin/config/config.h
usr.sbin/config/lang.l
Added a "-I path" option to config(8). By analogy to cc(1), it adds
an extra path in which the "include" statement will search for
files.

Makefile.inc1
Pass "-I ${KERNCONFDIR}" to config(8).

PR: kern/187712
Reviewed by: will, imp (previous version)
MFC after: 3 weeks
Sponsored by: Spectra Logic Corporation


# 9c5a52cf 22-May-2013 Jung-uk Kim <jkim@FreeBSD.org>

Work around build breakages with GCC 4.2.

Reported by: tinderbox


# a7880d59 03-May-2013 Jung-uk Kim <jkim@FreeBSD.org>

Improve compatibility with recent flex from flex.sourceforge.net.


# e267ef95 22-Nov-2010 Rebecca Cran <brucec@FreeBSD.org>

Don't generate input() since it's not used.


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# e7edb3e3 13-Apr-2010 Ed Maste <emaste@FreeBSD.org>

MFC r205880 by ru:

- Handle calloc() allocation failures.
- Fixed a comment.
- 2 -> EXIT_FAILURE in some places.
- errx() -> err() where appropriate.

PR: 144644
Submitted by: Garrett Cooper

Also fix endinclude() prototype to avoid compiler warning.


# 53d55e97 30-Mar-2010 Ruslan Ermilov <ru@FreeBSD.org>

- Handle calloc() allocation failures.
- Fixed a comment.
- 2 -> EXIT_FAILURE in some places.
- errx() -> err() where appropriate.

PR: 144644
Submitted by: Garrett Cooper


# fe0506d7 09-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Create the altix project branch. The altix project will add support
for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting
is a two-module system, consisting of a base compute module and a
CPU expansion module. SGI's NUMAFlex architecture can be an excellent
platform to test CPU affinity and NUMA-aware features in FreeBSD.


# 10bc3a7f 29-Dec-2009 Ed Schouten <ed@FreeBSD.org>

ANSIfy almost all applications that use WARNS=6.

I was considering committing all these patches one by one, but as
discussed with brooks@, there is no need to do this. If we ever
need/want to merge these changes back, it is still possible to do this
per application.


# 2880daeb 22-Nov-2008 Andrew Thompson <thompsa@FreeBSD.org>

Allow multiple makeoption lines to be used with the += operator, this permits
the following syntax in the kernel config.

makeoptions MODULES_OVERRIDE=foo
makeoptions MODULES_OVERRIDE+=bar
makeoptions MODULES_OVERRIDE+=baz

Bump config minor version to 600007.


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# eb432404 28-Jul-2008 David E. O'Brien <obrien@FreeBSD.org>

Allow kernel config files to include files other than those in the CWD,
using unquoted paths.


# 744b947e 12-May-2007 Wojciech A. Koszek <wkoszek@FreeBSD.org>

Improve INCLUDE_CONFIG_FILE support.

This change will let us to have full configuration of a running kernel
available in sysctl:

sysctl -b kern.conftxt

The same configuration is also contained within the kernel image. It can be
obtained with:

config -x <kernelfile>

Current functionality lets you to quickly recover kernel configuration, by
simply redirecting output from commands presented above and starting kernel
build procedure. "include" statements are also honored, which means options
and devices from included files are also included.

Please note that comments from configuration files are not preserved by
default. In order to preserve them, you can use -C flag for config(8). This
will bring configuration file and included files literally; however,
redirection to a file no longer works directly.

This commit was followed by discussion, that took place on freebsd-current@.
For more details, look here:

http://lists.freebsd.org/pipermail/freebsd-current/2007-March/069994.html
http://lists.freebsd.org/pipermail/freebsd-current/2007-May/071844.html

Development of this patch took place in Perforce, hierarchy:

//depot/user/wkoszek/wkoszek_kconftxt/

Support from: freebsd-current@ (links above)
Reviewed by: imp@
Approved by: imp@


# 23394583 03-Dec-2005 Ruslan Ermilov <ru@FreeBSD.org>

Add "makeoption" as an alias to "makeoptions", for symmetry.


# a15aafd5 03-Nov-2005 Ruslan Ermilov <ru@FreeBSD.org>

By a popular demand, add "nomakeoptions" as an alias to "nomakeoption".


# acd58322 03-Nov-2005 Ruslan Ermilov <ru@FreeBSD.org>

Implement the "nocpu" directive.

Requested by: rwatson


# d67c43b3 10-Feb-2005 Dag-Erling Smørgrav <des@FreeBSD.org>

"device" and "nodevice" lines can actually specify more than one device
(separated by commas), so add "devices" and "nodevices" as aliases.

MFC after: 2 weeks


# 9b736ef9 24-Oct-2004 Dag-Erling Smørgrav <des@FreeBSD.org>

If the file specified in an "include" line does not exist in the current
directory, and its name does not begin with a period or a forward slash,
go look for it in ../../conf.

Wished for by: scottl
MFC after: 2 weeks


# 44c428d2 12-Oct-2004 Poul-Henning Kamp <phk@FreeBSD.org>

We accept both "option" and "options" so also accept both "nooption"
and "nooptions".


# f37a929c 30-Aug-2004 Peter Wemm <peter@FreeBSD.org>

Kill count device support from config. I've changed the last few
remaining consumers to have the count passed as an option. This is
i4b, pc98/wdc, and coda.

Bump configvers.h from 500013 to 600000.

Remove heuristics that tried to parse "device ed5" as 5 units of the ed
device. This broke things like the snd_emu10k1 device, which required
quotes to make it parse right. The no-longer-needed quotes have been
removed from NOTES, GENERIC etc. eg, I've removed the quotes from:
device snd_maestro
device "snd_maestro3"
device snd_mss

I believe everything will still compile and work after this.


# 23717fc4 06-Aug-2004 Warner Losh <imp@FreeBSD.org>

Per letter dated July 22, 1999, delete clause 3 from code directly
from Berkeley.


# 43a903c0 09-May-2004 Olivier Houchard <cognet@FreeBSD.org>

Add a new "files" directive, which allows to include a files.foo file directly
from a kernel config file.
Bump config version to reflect this change.


# 82401849 26-Feb-2003 Ruslan Ermilov <ru@FreeBSD.org>

Implemented "nooption" and "nomakeoption" config(8) tokens.
Fixed memory leak in the "nodevice" option implementation.

Use these instead of sed(1) in MD NOTES.

Use a single makefile (sys/conf/makeLINT.mk) to generate
LINT for all architectures. (Previous versions missed
the LINT dependency on Makefile, and i386 version also
missed the dependency on ${NOTES}.)

Fixed bugs in the previous NOTES conversion using the
"nodevice" token and sed(1):

- i386 LINT lost "device pst".

- pc98 LINT lost SC_*, MAXCONS and KBD_DISABLE_KEYMAP_LOAD
options, and got needless DPT_* options.

- Added nooptions PPC_DEBUG, PPC_PROBE_CHIPSET, KBD_INSTALL_CDEV
to sparc64 LINT so that it has a chance to config(8).

This basically returns us to where we were before.


# 0b56eafd 14-Feb-2003 Ruslan Ermilov <ru@FreeBSD.org>

Implemented a simple "nodevice" config(8) command that cancels
the effect of the "device" command, and use it to generate the
OLDCARD from GENERIC.

Suggested by: bde


# e872716d 21-Jun-2002 Juli Mallett <jmallett@FreeBSD.org>

Clean up hex() and octal() to return and work with unsigned integers since
they scan values of unsigned types, and since they do not need otherwise,
have them take const char * arguments.


# 76cb0cad 26-Aug-2001 Peter Wemm <peter@FreeBSD.org>

Enable hardwiring of things like tunables from embedded enironments
that do not start from loader(8).


# 5e06480c 11-Jul-2001 Dima Dorfman <dd@FreeBSD.org>

Introduce an "include" directive. It takes one argument, a filename
to be included into this one. This works the same way as #include
does in C; as far as the user is concerned, the included file is
inlined into the current one.

Since config(8) is no longer limited to working on one user-supplied
file, printing just a line number in an error message is not
sufficient. The new global variable yyfile represents the file
currently being parsed, and must be printed as well.

Reviewed by: imp
Obtained from: OpenBSD


# 68f4fced 18-Feb-2001 Peter Wemm <peter@FreeBSD.org>

${BDECFLAGS} work. And fix a real error in the process. A "MAXUSERS"
string could have been passed to free(); There are some warnings here
I am not sure how to fix as they are in the lex scanner code, etc.


# 41291607 14-Oct-2000 Poul-Henning Kamp <phk@FreeBSD.org>

Make it possible to specify profiling in the kernel config file.

Do so for LINT.


# f71c01cc 13-Jun-2000 Peter Wemm <peter@FreeBSD.org>

Borrow phk's axe and apply the next stage of config(8)'s evolution.

Use Warner Losh's "hint" driver to decode ascii strings to fill the
resource table at boot time.

config(8) no longer generates an ioconf.c table - ie: the configuration
no longer has to be compiled into the kernel. You can reconfigure your
isa devices with the likes of this at loader(8) time:
set hint.ed.0.port=0x320

userconfig will be rewritten to use this style interface one day and will
move to /boot/userconfig.4th or something like that.

It is still possible to statically compile in a set of hints into a kernel
if you do not wish to use loader(8). See the "hints" directive in GENERIC
as an example.

All device wiring has been moved out of config(8). There is a set of
helper scripts (see i386/conf/gethints.pl, and the same for alpha and pc98)
that extract the 'at isa? port foo irq bar' from the old files and produces
a hints file. If you install this file as /boot/device.hints (and update
/boot/defaults/loader.conf - You can do a build/install in sys/boot) then
loader will load it automatically for you. You can also compile in the
hints directly with: hints "device.hints" as well.

There are a few things that I'm not too happy with yet. Under this scheme,
things like LINT would no longer be useful as "documentation" of settings.
I have renamed this file to 'NOTES' and stored the example hints strings
in it. However... this is not something that config(8) understands, so
there is a script that extracts the build-specific data from the
documentation file (NOTES) to produce a LINT that can be config'ed and
built. A stack of man4 pages will need updating. :-/

Also, since there is no longer a difference between 'device' and
'pseudo-device' I collapsed the two together, and the resulting 'device'
takes a 'number of units' for devices that still have it statically
allocated. eg: 'device fe 4' will compile the fe driver with NFE set
to 4. You can then set hints for 4 units (0 - 3). Also note that
'device fe0' will be interpreted as "zero units of 'fe'" which would be
bad, so there is a config warning for this. This is only needed for
old drivers that still have static limits on numbers of units.
All the statically limited drivers that I could find were marked.

Please exercise EXTREME CAUTION when transitioning!

Moral support by: phk, msmith, dfr, asmodai, imp, and others


# 6c54a82e 09-Nov-1999 Peter Wemm <peter@FreeBSD.org>

Re-support "tape" as an alias for device and clean up a bit more cruft
left over from the original system (d_dk was for preassigned iostat unit
numbers for disks)


# c1454d67 30-Oct-1999 Marcel Moolenaar <marcel@FreeBSD.org>

Add option "-d destdir" which instructs config to use another output
directory than the default one. If the option is not given, then the
output of config is exactly as before. Only when an alternate output
directory has been specified will config modify its behavior.

Additional changed:
o Remove the now conflicting and unused NODEV define. It
conflicts with NODEV in sys/param.h.
o Rename the now conflicting MACHINE token to ARCH. It
conflicts with MACHINE in sys/param.h.
o Fix some easy style bugs.
o Fix some easy grammar bugs in the manpage.

Approved by: peter, archie


# 1c56dc36 10-Oct-1999 Peter Wemm <peter@FreeBSD.org>

Further cleanup. Also remove the following unused or defunct tokens:
and, bio, cam, master, minor, net, priority, sequential, size, slave, trace


# 1b00e6b5 08-Oct-1999 Peter Wemm <peter@FreeBSD.org>

Zap references to 'major' token, it's not used.
Zap references to devices.i386 - it's not used. (neither is devices.pc98
or devices.alpha)


# 2da5c22e 01-Jul-1999 Peter Wemm <peter@FreeBSD.org>

Don't include trailing whitespace in ID tokens before comments. ie:
options FOO=10 # comment
would give FOO the value of "10 " and that caused unwanted
touches on the opt_*.h files.

I hope I've got this right..


# ef354ff7 09-May-1999 Peter Wemm <peter@FreeBSD.org>

Understand 'config kernelname' and pretend it was a
'makeoptions KERNEL=kernelname'. Warn about any trailing stuff as it's
not handled here. This is a simple bandaid, hopefully to head off some
complaints from certain people.


# bb4d5614 09-May-1999 Poul-Henning Kamp <phk@FreeBSD.org>

config(8) lobotomy, please see commit msg in sys.

(I have no idea why cvs didn't take these changes before.)


# e07fcb3e 26-Apr-1999 Luoqi Chen <luoqi@FreeBSD.org>

Make options like NO_F00F_HACK work (with context sensitive lexical rules).


# 96217b0f 24-Apr-1999 Peter Wemm <peter@FreeBSD.org>

More cleanups, tweaks and features.
- make this work: options FOO123=456 *without quotes*
- grumble (but accept) vector xxxintr, and tty/net/bio/cam flags.
- complain if a device is specified twice (eg: 2 x psm0)
- don't require quotes around: port IO_COM2
- recognize negative numbers. (ie: options CAM_DEBUG_UNIT=-1)
- GC some more unused stuff (we don't have composite disks from config(8)).
- various other nits (snprintf paranoia etc)


# e6fbbbe4 18-Apr-1999 Peter Wemm <peter@FreeBSD.org>

Further cleanups. i386_ioconf.c and alpha_ioconf.c were essentially the
same and were merged into a single newbus_ioconf.c. CG'd some more unused
code.


# 188334f6 17-Apr-1999 Peter Wemm <peter@FreeBSD.org>

Get out the blow torch and hack away all the unused stuff. Note that
I zapped the MACHINE_MIPS stuff, it isn't likely to be useful apart from
recognition of the machine name. It would be reasonable to expect new
ports would look something like the alpha/i386 from a config perspective.


# 97ed3f88 16-Oct-1998 Bruce Evans <bde@FreeBSD.org>

Removed unused/unusable "ha" keyword. Device classes should never have
been visible here.

Fixed disordering of keyword table by "cam".


# a0eea1d6 01-Apr-1998 Eivind Eklund <eivind@FreeBSD.org>

Scaffolding for High Availability code. The actual code will probably
come tomorrow.

Submitted by: Simon Shapiro <shimon@simon-shapiro.org>


# 93384faa 21-Sep-1997 Justin T. Gibbs <gibbs@FreeBSD.org>

Add isa_devtab_cam.


# d5831691 15-Sep-1997 Philippe Charnier <charnier@FreeBSD.org>

Use err(3), add usage(). -Wall clean.


# 659d2a20 27-Mar-1997 Andrey A. Chernov <ache@FreeBSD.org>

Remove support for "port none" and "port auto", it gains nothing,
non-standard and not used. "port auto" is equal to "port?" or missing "port"
keyword now. "port none" is really probe routine task (return -1 for
no ports).


# 1d95dc91 02-Jun-1996 Poul-Henning Kamp <phk@FreeBSD.org>

Backout yacc changes.


# 829bde8e 30-May-1996 Poul-Henning Kamp <phk@FreeBSD.org>

yacc rule changes.


# 227941d5 13-Apr-1996 Bruce Evans <bde@FreeBSD.org>

Implemented a new keyword `disable'. This should be useful for controlling
dangerous drivers in GENERIC.

Removed non-comments on #endifs in config.y.

Improved output formatting in mkioconf.c.


# 6d41b96f 11-Dec-1995 Peter Wemm <peter@FreeBSD.org>

Implement support for conf/options and i386/conf/options.i386
Note that this code is dormant unless the options files exist.
Also, parsing of quoted options in the config files is improved.

What this allows, is all the options in LINT to be specified to be
configured as #defines in a file rather than on the CC command line at
kernel build time. This means that 'make depend' will catch dependencies
on actual *options*, meaning that you can run 'config' and 'make depend'
in complete safety WITHOUT removing the compile directory each time.

Unfortunately, this requires a pass over the source to get the individual
files to #include the new .h files that would be generated by config.
This has a small compile time penalty (appears up to about 2% slower)
from a "fresh" build. Of course, you should not be needing to do complete
rebuilds very often once this was completed, so it would be an overall
win for most people.

Since this code is dormant and we've got a lot of other things happening
on the kernel tree at the moment (prototypes, devfs, static declarations
etc) I am not planning on doing any changes to activate this feature just
yet.


# 31acd246 17-Jul-1995 Justin T. Gibbs <gibbs@FreeBSD.org>

Allow the specification of the controller bus when wiring down scsi buses.
This is performed by using a line similar to:

controller scbus0 at ahc0 bus 1

to wire scbus0 to the second bus on an adaptec 2742T controller.

Reviewed by: Peter Dufault(dufault@hda.com), Rod Grimes(rgrimes@FreeBSD.org)


# 975f4abc 29-Jun-1995 David Greenman <dg@FreeBSD.org>

Killed TIMEZONE, DST, and HZ keywords. They have generated a config error
for more than a year now. They've been replaced with userland methods for
changing (see adjkerntz).


# babb4e92 10-May-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Add a new `conflicts' flag for telling when a device is in conflict with
others. The flag can be put in descriptive locations, e.g.:

device sb0 at isa? port 0x220 irq 7 conflicts drq 1 vector sbintr
or
device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr

But is nonetheless boolean only. You can't turn conflict checking off for
only a given type of conflict. I didn't deem it worth the trouble at this
stage, and it's far better than the ALLOW_CONFLICT_* that preceeded it.


# c30c84ed 01-Mar-1995 Peter Dufault <dufault@FreeBSD.org>

Added configuration for SCSI devices wired in place. The documentation
is in "man 4 scsi".


# 5cea80f1 16-Feb-1995 Bruce Evans <bde@FreeBSD.org>

Always return null-terminated identifiers from yylex().


# e0a7da50 07-Nov-1994 Garrett Wollman <wollman@FreeBSD.org>

Treat formfeeds like any other whitespace.


# dea673e9 25-May-1994 Rodney W. Grimes <rgrimes@FreeBSD.org>

BSD 4.4 Lite usr.sbin Sources