Commit Graph

73 Commits

Author SHA1 Message Date
Peter Wemm
463fb43b0a Recognize a %VERSREQ=nnnnn string in the system Makefile. Both config(8)
and the kernel will have a 'config interface version number'.  If an
incompatable change is made to the kernel that requires a rebuild of
config(8) (such as the cam devtab stuff), then the version number would be
bumped in both places.  If a user neglects to rebuild config, then they
will get a nagging (but non-fatal) warning that they need to rebuild
config.
1997-10-22 00:38:48 +00:00
Philippe Charnier
d58316915f Use err(3), add usage(). -Wall clean. 1997-09-15 06:37:10 +00:00
Joerg Wunsch
5bd7b80934 Part #2 of the config cleanup. More aggressive, replaced an NIH
version of strdup() by a macro, killed many calls to strdup(), thus
potentially wasting less malloc'ed space (their args were never be
free()ed desptie despite of being malloc'ed).  Probably still a huge
memory leak at all...  Also killed two totally useless variables.

I've tested it as i could, but wouldn't be surprised if unexpected
problems showed up.  So watch out this space!
1996-12-14 19:53:49 +00:00
Joerg Wunsch
f0b48d9876 Round #1 of cleaning up the config(8) mess. This is only the more
conservative part of the tidyup, like fixing potential buffer overflow
conditions.  It is believed to be safe to go into 2.2.

Pointed out by:	lozenko@cc.acnit.ac.ru (Evgeny A. Lozenko)
1996-12-14 19:44:13 +00:00
Bruce Evans
c08d58eade Moved nonstandard compiler profiling options out of config. Just print
the profiling level in config and decide what to do in makefiles.

Makefile.i386:
Align functions to 16-byte boundaries if profiling is enabled.  This
will allow a fourfold reduction in the size of the profiling buffers.
1996-12-13 12:46:28 +00:00
Poul-Henning Kamp
1d95dc910b Backout yacc changes. 1996-06-02 17:22:01 +00:00
Poul-Henning Kamp
829bde8e5b yacc rule changes. 1996-05-30 23:16:31 +00:00
Peter Wemm
d8f19d9417 Make a little more effort to avoid touching certain generated files if
they were not changed.  This makes 'make depend' more useful.
1996-01-12 08:57:10 +00:00
David Greenman
c418fae48f Changed the default/min/max number of users to 8/2/512 for all machine
types. This is closer to the reality of reasonable values.
1995-12-29 18:24:43 +00:00
Bruce Evans
912e603778 Implemented non-statistical kernel profiling. This is based on
looking at a high resolution clock for each of the following events:
function call, function return, interrupt entry, interrupt exit,
and interesting branches.  The differences between the times of
these events are added at appropriate places in a ordinary histogram
(as if very fast statistical profiling sampled the pc at those
places) so that ordinary gprof can be used to analyze the times.

gmon.h:
Histogram counters need to be 4 bytes for microsecond resolutions.
They will need to be larger for the 586 clock.
The comments were vax-centric and wrong even on vaxes.  Does anyone
disagree?

gprof4.c:
The standard gprof should support counters of all integral sizes
and the size of the counter should be in the gmon header.  This
hack will do until then.  (Use gprof4 -u to examine the results
of non-statistical profiling.)

config/*:
Non-statistical profiling is configured with `config -pp'.
`config -p' still gives ordinary profiling.

kgmon/*:
Non-statistical profiling is enabled with `kgmon -B'.  `kgmon -b'
still enables ordinary profiling (and distables non-statistical
profiling) if non-statistical profiling is configured.
1995-12-29 15:30:05 +00:00
Peter Wemm
6d41b96fd7 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.
1995-12-11 10:52:34 +00:00
David Greenman
4ceefc48d5 Added support for a %SFILES token to auto-generate a SFILES= file list in
the same way that is done for CFILES. Files ending in .s or .S that match
the option criteria will be included in this list.
1995-10-29 11:07:17 +00:00
David Greenman
b497f11592 Don't pre-processor define 'ident'. This has subtle consequences for people
who don't carefully consider their choice for the machine name. The same
functionality can still be had with an "option", so nothing is lost.
1995-10-23 10:29:11 +00:00
David Greenman
975f4abc69 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).
1995-06-29 07:19:19 +00:00
Rodney W. Grimes
709e8f9ae1 Remove trailing whitespace. 1995-05-30 03:57:47 +00:00
Rodney W. Grimes
e602d31e02 Fix 3 printf's that had the wrong number of arguments.
Submitted by:	gibbs
1995-05-14 19:19:55 +00:00
Justin T. Gibbs
ce584e16e7 Implement "clean" entries for device config entries.
Submitted by: Pointed out by Bruce Evans <bde@zeta.org.au>
1995-03-01 10:09:03 +00:00
Justin T. Gibbs
528486881b Allow config to fully handle the aic7770 driver dependancies. 1994-12-31 19:23:10 +00:00
Justin T. Gibbs
80785c507b Add new keywords to config. The options availible in file.i386 are now:
/*
         * filename     [ standard | optional ] [ config-dependent ]
         *      [ dev* | profiling-routine ] [ device-driver] [ no-obj ]
         *      [ compile-with "compile rule" [no-implicit-rule] ]
         *                     [ dependancy "dependancy-list"]
         */

I added

no-obj -  This entry does not create anything linkable to the kernel.
dependancy - Add additional dependancy rules to a target.
no-implicit-rule - Don't assume .c -> .o type rules.  Config is really
             dumb in this area and assumes that everything is a .c file
	     irregarless of extention.  This was the best choice really
	     since there may even be .c file that you don't want to follow
	     the standard rules.

This was all done so that the building to the aic7770 assembler and using
the aic7770 assembler in the building of the aic7770 driver could be config
dependant.  I can now have an entry like this for the driver:

aic7770                         optional        ahc     device-driver   \
        compile-with    "${CC} $> -o $@"                                \
        dependancy      "$S/gnu/misc/aic7770/aic7770.c"                 \
        no-obj no-implicit-rule
aic7770_seq.h                   optional        ahc     device-driver          \
        compile-with "${.CURDIR}/aic7770 -o $@ $S/gnu/misc/aic7770/aic7770.seq"\
        dependancy "$S/gnu/misc/aic7770/aic7770.seq aic7770"                   \
        no-obj no-implicit-rule
i386/isa/aic7770.c              optional        ahc     device-driver   \
        dependancy "aic7770_seq.h"

I also added '\' escaping to newlines so that this doesn't look as gross as
it could have.

Reviewed by: jkh
1994-11-17 20:30:01 +00:00
David Greenman
c62cd43c2b Oops...forgot to list the changes....
/usr/src/usr.sbin.config:
	o -DSTATCLOCK gives kludges to support the rtc non-device as well as
	  old kludges to support the clk non-device.

/usr/src/usr.sbin/config.8:
	o Document the trivialness of the new vector.h.

/usr/src/usr.sbin/mkglue.c:
	o Only print DEVICE_NAMES and NR_DEVICES in vector.h.  These are
	  only required to support vmstat.  The vmstat interface will need
	  to be improved for dynamic loading.

/usr/src/usr.sbin/mkioconf.c:
	o Print device ids to be used as indexes into DEVICE_NAMES.
	o Print secondary interrupt handler entry points (xxxintr()) instead
	  of primary ones (VdevU()).  Primary ones are now XintrI() and
	  XfastintrI() and are independent of the config so they are not
	  handled here.
	o Minor cleanups.

Submitted by:	Bruce Evans
1994-08-18 05:15:26 +00:00
David Greenman
ce7ece3713 Now that the timezone specification is no longer allowed, don't issue a
warning that it is missing.
1994-08-09 08:52:53 +00:00
Rodney W. Grimes
4eaaddb7ff Upgrade config to be compatible with our i386 port, pull in 95% of the
changes that have been made in FreeBSD 1.x, except for possibly the nfs
diskless support this is a completed config.
1994-05-26 13:24:02 +00:00
Rodney W. Grimes
dea673e932 BSD 4.4 Lite usr.sbin Sources 1994-05-26 05:23:31 +00:00