Commit Graph

406 Commits

Author SHA1 Message Date
uebayasi
95712061f0 Revert MAXUSERS. CVS is hard. 2015-08-29 13:34:21 +00:00
uebayasi
9d7c5e580c Revert MAXUSERS changes. Need fresh air. 2015-08-29 07:33:18 +00:00
uebayasi
8b68b0de02 Fix previous. 2015-08-29 07:24:49 +00:00
uebayasi
4401376950 Define MAXUXERS in opt_param.h. Bump config(1) version. 2015-08-29 07:08:38 +00:00
uebayasi
ca847f032e Revert "Retire optional rule' argument of file' command". It is still used
in m68k ports.
2015-08-29 02:54:07 +00:00
uebayasi
b5595827d0 Simplify. 2015-08-28 09:16:29 +00:00
uebayasi
54e231918a 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
2015-08-28 09:04:02 +00:00
uebayasi
36644ae2ff Error out if a given path is absolute. 2015-08-28 08:56:39 +00:00
uebayasi
47065f5afc Accept only relative paths (from $S) for file' and object'. Simplify code.
config(1) does not need to be super-smart about path handling, because it is
usually used with make(1), that is much smarter.

Pre-compiled object files, specified using `object', are regarded as read-only
input, thus they should be put under $S (or $S/..), as part of a source tree.
2015-08-28 08:31:28 +00:00
uebayasi
50408f97eb Global paths looked up at output stage (mk*()) are relative to `srcdir'.
Ignore "prefix" by not calling sourcepath().
2015-08-28 03:55:15 +00:00
uebayasi
0b9ddf3cc0 Paths given to "file" and "object" are relative from "prefix" if defined. 2015-08-28 02:59:09 +00:00
uebayasi
a72d45f1a5 + suffix rules 2015-08-28 01:01:57 +00:00
uebayasi
5e9af25b8a + copy symtab 2015-08-27 10:22:12 +00:00
uebayasi
1e1f20e153 One more about linker script, another about genassym. 2015-08-26 06:38:57 +00:00
uebayasi
14880f9a49 I don't like -Ttext . 2015-08-25 13:13:54 +00:00
uebayasi
39d2263741 + kill makeoptions 2015-08-25 09:01:28 +00:00
uebayasi
7722a65218 TODOs about kernel options. 2015-08-23 01:30:21 +00:00
uebayasi
9c743328e7 Linker script TODO items. 2015-08-22 14:47:05 +00:00
christos
92a97b467e move driver attach declarations to ioconf.h 2015-08-20 09:44:24 +00:00
pgoyette
b0e637a9da Insert comment regarding PR/48571 so it doesn't get lost.
config(1) ioconf is insufficient for pseudo-devices

config_{init,fini}_component
2015-08-19 03:39:45 +00:00
uebayasi
3dbb19470d + pseudo(dev) attach 2015-08-19 03:23:34 +00:00
shm
13fc423c66 Add missed munmap(2) in extract_config 2015-08-08 15:52:41 +00:00
dholland
7fee31e593 Document previously secret -d debug option. Bump date. 2015-07-16 08:42:53 +00:00
christos
b921b70209 remove stray newlines from errors/warnings 2015-06-16 21:12:19 +00:00
uebayasi
c59f84ea6d Typo in previous. 2015-04-10 03:51:44 +00:00
uebayasi
e29416eeae More about attribute -> bus, and child configuration. 2015-04-10 03:30:09 +00:00
christos
93da4522d3 appease gcc-4.5.4 2015-01-22 20:01:22 +00:00
uebayasi
d8aa702d35 Revert debug code. Simplify. 2014-12-15 15:49:25 +00:00
uebayasi
fc1f7728b8 config(1): Fix build of old trees (bin/49389) (take 2)
Look into sys/conf/Makefile.kern.inc to check if "build_kernel" .USE target
is defined.  If not (== old source trees), generate one on the fly.
2014-12-15 15:41:18 +00:00
uebayasi
10b064f35c config(1): Fix build of old tree (bin/49389)
Define the default, empty "build_kernel" target, so that old source trees,
whose sys/conf/Makefile.kern.inc don't have "build_kernel" .USE target, can
be built.

(When "build_kernel" is defined, the target is overriden, as far as
sys/conf/Makefile.kern.inc is included later than the "netbsd: ..." definition
in sys/arch/*/conf/Makefile.*.)

This should address PR bin/49389.
2014-12-15 10:10:24 +00:00
christos
c8da6eb49b Use proper index types, delete casts, use correct sizeof() in allocations. 2014-11-21 20:46:56 +00:00
uebayasi
57751c8485 Pre-calc file path len/suffix. Misc. clean up. 2014-11-17 00:53:15 +00:00
uebayasi
9eb1865390 Fix oops in r1.30. 2014-11-16 15:10:54 +00:00
uebayasi
d2824e0952 Simpfily code by assuming suffix is a single character. 2014-11-16 14:57:59 +00:00
uebayasi
8a0d672c53 Refactor. 2014-11-16 14:49:12 +00:00
uebayasi
20fd8a9d0f Consistently wrap long lines in ioconf.c. 2014-11-16 14:26:14 +00:00
uebayasi
73810e5d00 config(1): TODO about namespace (esp. options vs. module) 2014-11-16 07:12:34 +00:00
uebayasi
79fcd6c2d2 config(1): TODO item about swapnetbsd.c 2014-11-16 04:28:09 +00:00
uebayasi
dfd51da465 config(1): Avoid buffer overrun (modular build) 2014-11-15 12:18:55 +00:00
uebayasi
70dd8e7d2a config(1): Sort objects by weight in modular build
Sort per-module kernel objects (*.ko) by dependency weight.  Important modules
are placed in lower addresses.  The ``machdep'' module will be always placed
in the lowest.

(At this moment, the order is not exact because dependency information is
incomplete in config files (files.*).  Thus ``sysmon_power.ko'' comes lower
than ``machdep.ko'' and/or ``uvm.ko''; but still much better than alphabetical
sort.)
2014-11-15 08:21:38 +00:00
uebayasi
2f06dcafd4 Revise a plan about link-set.
(I was ignorant 2 weeks ago.)
2014-11-13 15:25:48 +00:00
christos
b552d112cd merge a bit of duplicated code. 2014-11-10 21:13:04 +00:00
uebayasi
28fcb3ecde config(1): Note a little more about linkage 2014-11-08 05:57:41 +00:00
christos
727f236228 - simplify string parsing
- emalloc + sprintf = easprintf
2014-11-07 17:50:14 +00:00
uebayasi
701e371cb2 config(1): TODO about kernel linkage 2014-11-07 16:41:17 +00:00
uebayasi
7710d317bc config(1): Rename internal flag to enable modular build 2014-11-06 11:40:32 +00:00
joerg
4e288682c2 nv_num is not a dev_t, so add explicit cast for the sake of
-Wconversion.
2014-11-04 23:02:14 +00:00
joerg
fdcb5b3398 makedev returns ~uint64_t, but val is int64_t. Cast for -Wconversion. 2014-11-04 23:01:23 +00:00
joerg
e7051a1953 To make -Wconversion happy, cast return value of tolower/toupper to
char.
2014-11-04 23:00:35 +00:00
uebayasi
e8a6d4b70c config(1): Start calling module as module 2014-11-01 14:24:45 +00:00
uebayasi
6c852b2895 config(1): More TODO description. 2014-11-01 14:15:31 +00:00
uebayasi
fe2a50734b config(1): Don't emit unused empty loc[] 2014-11-01 11:02:41 +00:00
uebayasi
c62ce2631a config(1): One more TODO about retiring direct attachment 2014-11-01 08:13:11 +00:00
uebayasi
6c283bdad1 config(1): Emit pdevinit[] into .rodata 2014-11-01 07:26:11 +00:00
uebayasi
def3cecb48 config(1): Set NULL to unused cfdata::cf_loc 2014-11-01 06:20:24 +00:00
uebayasi
e1a6328057 config(1): KNF 2014-11-01 04:34:27 +00:00
uebayasi
304be40991 config(1): Better indent of cfdata in ioconf.c 2014-10-31 18:26:06 +00:00
uebayasi
084f527f2d config(1): KNF generated ioconf.c 2014-10-31 17:58:02 +00:00
uebayasi
374e86cbe4 config(1): Emit only referenced interface attributes in ioconf.c 2014-10-31 17:43:55 +00:00
uebayasi
c42523f496 config(1), config(5): Introduce "select"
o Introduce a new selection directive "select" to select an attribute (as a
  module) and its dependencies.
o Support "no select" too.
o Stop abusing "options" to select an attribute.
o Bump config(1) version.
2014-10-31 07:38:36 +00:00
wiz
75f5ef0d24 Spelling fixes. 2014-10-30 23:18:02 +00:00
christos
b89e3b087d remove overflow test that triggered for negative values; we only care
about the hash here.
2014-10-30 15:13:11 +00:00
uebayasi
bd3d598f54 config(1): More TODO 2014-10-30 08:20:15 +00:00
christos
5dcabc490b print more info about the overflow 2014-10-30 01:36:13 +00:00
uebayasi
c5c18c905b config(1): More TODO items 2014-10-30 01:26:20 +00:00
christos
584127132b put back scanner warnings now that flex produces clean code. 2014-10-29 19:10:49 +00:00
christos
1ed33bc5b9 cast to signed, since that's all we have. 2014-10-29 19:10:18 +00:00
christos
d12b0036c5 - add RCSID's
- fix -Wconversion (except scanner)
2014-10-29 17:14:50 +00:00
uebayasi
023c161bb6 Keep track of attribute (module) dependency using hash2. 2014-10-18 06:36:40 +00:00
uebayasi
1af1e581aa Revert implicit attribute (module) declaration for options (flag/param).
Flag and param are to change contents of attributes (modules).  These don't
have code (*.[coS]).

Filesystem definition still defines an attribute (module) implicitly.
2014-10-14 08:00:27 +00:00
apb
e010c72036 Allow easier adding/removing of options without regard to
whether or not they were already defined.
2014-10-12 15:54:19 +00:00
uebayasi
6e01290960 Don't shadow global 'devname' on macppc. 2014-10-12 15:35:40 +00:00
wiz
891aaa4d83 Spelling. 2014-10-12 08:04:30 +00:00
uebayasi
ab6c1d8a5a Fix typos in previous. 2014-10-12 05:25:21 +00:00
uebayasi
a38ec9b5de Make hash capable of taking two key strings. 2014-10-12 05:20:54 +00:00
uebayasi
0819fb14f9 More TODOs. 2014-10-12 04:23:46 +00:00
martin
db3a752aed Remove a set but not used variable 2014-10-11 17:27:42 +00:00
uebayasi
6d52c530bb More debug messages. 2014-10-11 15:47:38 +00:00
uebayasi
77259bf204 On second thought, resolving "device" dependency in enddefs() is correct.
The problem was to select things.  So put back the code to record dependency
as attributes.

While here, sprinkle more debug messages.
2014-10-11 15:20:36 +00:00
uebayasi
d1bb5c1f69 Don't conplain devclass redifition to the same value; it can happen while
resolving dependency.
2014-10-11 09:27:51 +00:00
uebayasi
0e6a39b020 After yyparse() is done, print not file but stage for debug. 2014-10-11 09:09:19 +00:00
uebayasi
984251350e Redo "device" dependency. It was completely wrong to select things just
after definitions at enddefs().  Resolve dependency in selectbase().
2014-10-11 09:06:29 +00:00
uebayasi
1140e58262 Pass stricter build. 2014-10-11 06:18:29 +00:00
uebayasi
84fb961fd3 Resolve "device" definition dependency lazily. 2014-10-11 06:07:20 +00:00
uebayasi
93405beec9 Enable debug for tools. 2014-10-11 03:17:40 +00:00
uebayasi
bb4851f85c Remove an unsed var. 2014-10-10 16:17:27 +00:00
uebayasi
9a2063bca6 Revert a mistakenly added, superflous attribute match test that caused some
valid options to get lost.
2014-10-10 15:35:08 +00:00
uebayasi
92b86764e1 Bump config(1) version.
config(1) still keeps backward-compatibility; it is more permissive than
before.  The tree, however, needs the updated config(1), mainly to strictly
define attribute ("module") ownership and dependencies.
2014-10-10 12:10:02 +00:00
wiz
c8fb5a2e0f Fix two typos. 2014-10-10 11:58:59 +00:00
uebayasi
b0d108d368 Document -M. 2014-10-10 11:49:15 +00:00
uebayasi
eac891b935 Put TODO ideas (to keep your fun). 2014-10-10 11:38:42 +00:00
uebayasi
d23bf64337 Allow dependency on undefined attributes, so that attribute definitions can
be written out-of-order, like:

	# b is not defined yet
	define	a: b
	file	a.c	a

	# b is defined here
	define	b
	fine	b.c
2014-10-10 11:09:50 +00:00
uebayasi
680ed4abc8 Select attributes for filesystem options too. 2014-10-10 10:46:05 +00:00
uebayasi
861847ab35 If an option is selected, select the matching (lowercased) attribute. Handle
dependencies too.
2014-10-10 10:22:49 +00:00
uebayasi
7a01ec4b08 If an attribute is selected, select its dependencies too. 2014-10-10 10:16:19 +00:00
uebayasi
c24abed7e6 Implicitly define attribute for device. 2014-10-10 08:14:47 +00:00
uebayasi
6903e7639b Implicitly define attribute for options. 2014-10-10 07:48:50 +00:00
uebayasi
d88f6cad14 Implicitly define attribute for filesystem. 2014-10-10 07:08:26 +00:00
uebayasi
82e22e6766 Implicitly define empty "attribute" for "device attachment". Much less
troublesome than "device" and "interface attribute".
2014-10-10 06:59:38 +00:00
uebayasi
bd3d511493 Split plain/interface/devclass attribute initializers. 2014-10-10 06:13:30 +00:00
uebayasi
b4d3dfc64a Refactor attr definition and initialization a little. 2014-10-10 05:27:28 +00:00
uebayasi
1c89d26524 Style. 2014-10-09 19:33:43 +00:00
uebayasi
b35679c08e FIT_FORCESELECT is never set anywhere. 2014-10-09 19:27:04 +00:00
uebayasi
9a04781594 FIT_NOPROLOGUE is never set anywhere. 2014-10-09 19:24:36 +00:00
uebayasi
eb981efe66 Kill more unused indent code in emitfiles(). 2014-10-09 19:22:31 +00:00
uebayasi
7603d666f0 Steal -M to enable "modular" build. 2014-10-09 19:20:56 +00:00
uebayasi
aeeeb994e8 Print one file per line. Simplify code. 2014-10-09 17:36:10 +00:00
uebayasi
745a9de44a Correct inverted logic. 2014-10-09 17:22:55 +00:00
uebayasi
ae77717cc7 Implement code to generate Makefile to build netbsd via intermediate relocatable
object files.  Disabled for now.  Commit this for further experiments.

Kernel (netbsd) has been built as:

	netbsd: *.o
		ld -o netbsd *.o

Change this to:

	netbsd: *.ko
		ld -o netbsd *.ko
	acpica.ko: ${OBJS.acpica}
		ld -r acpica.ko ${OBJS.acpica}
	:

You can call *.ko as a module, but this is not only beneficial for loadable
module, but also localize related text/data.  Various options/flags/params
will be able to be per-ko.  Unnecessary symbols can be hidden.  Many ideas
will follow.
2014-10-09 17:00:15 +00:00
uebayasi
3586467df2 Always select the fallback allattr. 2014-10-09 16:08:36 +00:00
uebayasi
adf6a4556b 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)".
2014-10-09 15:25:26 +00:00
uebayasi
fa3d850434 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.
2014-10-09 10:29:36 +00:00
uebayasi
567430ccec Sort definition/selection rules to clarify which is which. 2014-10-09 09:39:24 +00:00
martin
012985802d Provide a CFGDBG version for the tools build. 2014-10-09 07:43:55 +00:00
uebayasi
fc2a41ac40 The word "configuration" is too ambiguous; use "selection" meaning that
user selects some of provided "definitions".
2014-10-09 07:05:01 +00:00
uebayasi
2820acceff Debug print where things are selected (by user). 2014-10-09 06:49:53 +00:00
uebayasi
99af41ba8d Add debug print function. 2014-10-09 06:45:31 +00:00
joerg
aa44bc3b18 Bump CONFIG_VERSION. 2014-08-24 20:22:18 +00:00
joerg
6616828fd2 Restore explicit rule for swap*.o. 2014-08-18 08:07:02 +00:00
joerg
a26164117a Reorganize symbol table embedding. The existing option SYMTAB_SPACE is
replaced by the make option COPY_SYMTAB set to any value. The copy of
the symbol table is no longer put into a buffer in kern_ksyms.o, but a
small helper object. This object is build first with a dummy size, then
the kernel is linked to compute the real dimension of the symbol table
buffer. After that, the helper object is rebuild and the kernel linked
again.
2014-08-17 21:17:43 +00:00
bad
2a950d2831 Treat an undefined option as a warning instead of an error when undoing an
option.

Allows one to win with declarations like:
no options 	MSGBUFSIZE
options 	MSGBUFSIZE="128*1024"

Briefly discussed with cube@, lukem@ and martin@.
2014-08-09 12:40:14 +00:00
wiz
910ba5f05b Bump date for previous. 2014-05-29 08:13:17 +00:00
mrg
ebf7669ed7 implement "no ident". 2014-05-29 07:47:45 +00:00
dholland
d8da1d6013 avoid error path SIGSEGV 2014-05-21 05:25:34 +00:00
wiz
9237f38b59 Sort options in usage. 2014-05-05 21:04:09 +00:00
wiz
5f345558c9 Sort SYNOPSIS. Bump date for previous. 2014-05-05 20:52:45 +00:00
martin
1957b5eaba Add two new options, -U and -D, that can be used to define "makeoptions"
on the config command line. While there, rename the undocumented (internal)
parser debug option from -D to -d.
Discussed on tech-toolchain.
2014-05-05 19:08:13 +00:00
riastradh
da030fc8bd `Controller' takes two l's. 2014-03-06 15:00:21 +00:00
wiz
26dba06cb7 Fix some typos found by Rich Neswold and reported in PR 48597. 2014-02-13 22:36:28 +00:00
christos
6fce9f6ad7 go back to using file:line: from uwe. 2013-11-01 21:39:13 +00:00
christos
8ae3ff1668 make config errors look more like other programs: <file>,<line>:
instead of <file>:<line>:
2013-11-01 17:09:59 +00:00
pooka
26b4d3d169 ioconf/pseudo-root have been in here unchanged for 3+ years and their use
has spread from rump kernels into dozens of kernel modules.  Let's pretend
we don't want to see config yell about them being experimental every time.
2013-08-11 10:37:08 +00:00
christos
fbb3db86f7 Don't support sysctl for the tools version of config. It is too complicated
to do so, and config -x is not used during the build.
2012-08-31 01:23:49 +00:00
wiz
686e48a4a3 Use more markup. Wording. 2012-08-30 12:42:41 +00:00
christos
c9ffe47f54 bump date. 2012-08-30 12:32:07 +00:00
christos
8aaed51273 make config -x look at the booted kernel first. 2012-08-30 12:31:25 +00:00
martin
fcbf6c86a2 If we build several kernel (variants) within the same build directory, bad
things may happen in a parallel build - especially with rules like the
automatic size adjustment for SYMTAB_SPACE, see long standing failure of
evbarm on the build cluster.
Easy fix: .WAIT for each config to complete, before going on with the
next. Low impact, only minor loss of paralellism, and only in cases where
needed.
2012-06-08 08:56:45 +00:00
matt
d34c2845b8 Use C89 function definitions 2012-03-20 20:34:57 +00:00
dholland
471d829aae Remove the NV_OBSOLETE flag, which is no longer needed. While here,
update an outdated comment about condition expressions.
2012-03-12 03:04:56 +00:00
dholland
cb79ede2d1 Give option definitions their own data structure instead of using nvlists.
(and using messy hacks to make up for nvlists not holding quite the right
things)
2012-03-12 02:58:55 +00:00
dholland
a883398ef5 Introduce type-safe wrappers around the hash tables. Use them for a
selected set of tables affected by the next nvlist cleanup in the
works.
2012-03-12 00:20:30 +00:00
dholland
f5d4142b2d Move locator lists to their own data structure. This can use more tidying;
it is not clear to me at the moment what the "string" and "num" values
pushed around in locator lists are supposed to actually mean.
2012-03-11 21:16:07 +00:00
dholland
25c56bd707 Add some organizational comments 2012-03-11 20:02:55 +00:00
dholland
237116305d More naming improvements. 2012-03-11 19:27:26 +00:00
dholland
a551c5e8b7 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.)
2012-03-11 08:21:53 +00:00
dholland
4fbb702df0 Rename a few more things; try to use the same terminology as config(5). 2012-03-11 07:46:47 +00:00
dholland
bbe96a5ad8 Create a new type struct attrlist to manage lists of attributes,
instead of using struct nvlist.

(struct nvlist holds lists (or trees!) of semi-arbitrary stuff with no
structure and almost no type safety; it should go away.)
2012-03-11 07:32:41 +00:00
dholland
720c7fbc2a Strengthen the logic that wraps allocations going on the parser stack.
(This allows cleaning up when a syntax error occurs, because yacc just
dumps the parser stack on the floor.)

The new logic can handle arbitrary data types instead of being limited
to struct nvlist.
2012-03-11 07:27:02 +00:00
dholland
285c15fc92 Remove cf_swap, which hasn't been used in a long time. 2012-03-11 05:31:37 +00:00
dholland
cfffb8a2c1 Write out the expression grammar for dependency constraints instead of
using precedence rules. Precedence rules (besides being a hack) often
lead to unexpected/unwanted behavior in corner cases.
2012-03-11 02:56:25 +00:00