Home | History | Annotate | Line # | Download | only in config
TODO revision 1.3
      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