Home | History | Annotate | Line # | Download | only in config
TODO revision 1.4
      1  1.1  uebayasi o Emit everything (ioconf.*, Makefile, ...) per-attribute.
      2  1.1  uebayasi 
      3  1.1  uebayasi o Generate modular(9) related information.  Especially module dependency.
      4  1.1  uebayasi 
      5  1.1  uebayasi o Rename "interface attribute" to "bus".
      6  1.1  uebayasi 
      7  1.1  uebayasi   Instead of
      8  1.1  uebayasi 
      9  1.1  uebayasi 	define	audiobus {}
     10  1.1  uebayasi 	attach	audio at audiobus
     11  1.1  uebayasi 
     12  1.1  uebayasi   Do like this
     13  1.1  uebayasi 
     14  1.1  uebayasi 	defbus	audiobus {}
     15  1.1  uebayasi 	attach	audio at audiobus
     16  1.1  uebayasi 
     17  1.1  uebayasi o Sort objects in more reasonable order.
     18  1.1  uebayasi 
     19  1.1  uebayasi   Put machdep.ko in the lowest address.  uvm.ko and kern.ko follow.
     20  1.1  uebayasi 
     21  1.1  uebayasi   Kill alphabetical sort (${OBJS:O} in sys/conf/Makefile.inc.kern.
     22  1.1  uebayasi 
     23  1.1  uebayasi   Use ldscript.  Do like this
     24  1.1  uebayasi 
     25  1.1  uebayasi 	.text :
     26  1.1  uebayasi 	AT (ADDR(.text) & 0x0fffffff)
     27  1.1  uebayasi 	{
     28  1.1  uebayasi 	  *(.text.machdep.locore.entry)
     29  1.1  uebayasi 	  *(.text.machdep.locore)
     30  1.1  uebayasi 	  *(.text.machdep)
     31  1.1  uebayasi 	  *(.text)
     32  1.1  uebayasi 	  *(.text.*)
     33  1.1  uebayasi 	  :
     34  1.1  uebayasi 
     35  1.1  uebayasi   Kill linker definitions in sys/conf/Makefile.inc.kern.
     36  1.2  uebayasi 
     37  1.3       wiz o Differentiate "options" and "flags"/"params".
     38  1.2  uebayasi 
     39  1.3       wiz   "options" enables features by adding *.c files (via attributes).
     40  1.2  uebayasi 
     41  1.2  uebayasi   "flags" and "params" are to change contents of *.c files.  These don't add
     42  1.3       wiz   *.c files to the result kernel, or don't build attributes (modules).
     43  1.2  uebayasi 
     44  1.2  uebayasi o Make flags/params per attributes (modules).
     45  1.2  uebayasi 
     46  1.2  uebayasi   Basically flags and params are cpp(1) #define's generated in opt_*.h.  Make
     47  1.2  uebayasi   them local to one attributes (modules).  Flags/params which affects files
     48  1.2  uebayasi   across attributes (modules) are possible, but should be discouraged.
     49  1.2  uebayasi 
     50  1.2  uebayasi o Generate things only by definitions.
     51  1.2  uebayasi 
     52  1.2  uebayasi   In the ideal dynamically modular world, "selection" will be done not at
     53  1.2  uebayasi   compile time but at runtime.  Users select their wanted modules, by
     54  1.2  uebayasi   dynamically loading them.
     55  1.2  uebayasi 
     56  1.2  uebayasi   This means that the system provides all choices; that is, build all modules
     57  1.2  uebayasi   in the source tree.  Necessary information is defined in the "definition"
     58  1.2  uebayasi   part.
     59  1.2  uebayasi 
     60  1.2  uebayasi o Split cfdata.
     61  1.2  uebayasi 
     62  1.2  uebayasi   cfdata is pattern matching rules to enable devices at runtime device
     63  1.3       wiz   auto-configuration.  It is pure data and can (should) be generated separately
     64  1.2  uebayasi   from the code.
     65  1.4       apb 
     66  1.4       apb o Allow easier adding and removing of options.
     67  1.4       apb 
     68  1.4       apb   It should be possible to add or remove options, flags, etc.,
     69  1.4       apb   without regard to whether or not they are already defined.
     70  1.4       apb   For example, a configuration like this:
     71  1.4       apb 
     72  1.4       apb 	include GENERIC
     73  1.4       apb 	options FOO
     74  1.4       apb 	no options BAR
     75  1.4       apb 
     76  1.4       apb   should work regardless of whether or not options FOO and/or
     77  1.4       apb   options BAR were defined in GENERIC.  It should not give
     78  1.4       apb   errors like "options BAR was already defined" or "options FOO
     79  1.4       apb   was not defined".
     80  1.4       apb 
     81