sys/conf/DEFAULT[S]

Bruce Evans bde at zeta.org.au
Wed Oct 8 10:38:09 PDT 2003


On Wed, 8 Oct 2003, Adam C. Migus wrote:

> Bruce Evans said:
> > On Wed, 8 Oct 2003, Adam C. Migus wrote:
> >> ...
> >> WRT Stefan's solution, simply nest two includes on the first line,
> >> like so:
> >>
> >> head -1 KERNEL
> >> include SUB1
> >>
> >> head -1 SUB1
> >> include SUB2
> >>
> >> This will cause config to fail in the same manner it did before,
> >> with his patch.
> >
> > Er, but this works for me.  I test with SUB2 having the following:
> > 1) include GENERIC
> > 2) same contents as GENERIC
> > 3) same contents as GENERIC except for no comment lines at
> > beginning.

> Here's my broken config (with Stefan's patch) compile, run, error,
> output and config exerpts:

This still works for me :-).

> root at caster:ttyp4:config# make clean
> rm -f config config.o main.o lang.o mkmakefile.o mkheaders.o
> mkoptions.o config.8.gz config.8.cat.gz lang.c config.c y.tab.c
> y.tab.h
> root at caster:ttyp4:config# make CFLAGS="`make -V CFLAGS` -DYYDEBUG=1"
> Warning: Object directory not changed from original
> /src/freebsd/CURRENT/src/usr.sbin/config
> yacc -d config.y
> cp y.tab.c config.c
> cc -O -pipe -mcpu=pentiumpro -I.
> -I/src/freebsd/CURRENT/src/usr.sbin/config   -Wsystem-headers
> -Werror  -DYYDEBUG=1 -c config.c
> cc -O -pipe -mcpu=pentiumpro -I.
> -I/src/freebsd/CURRENT/src/usr.sbin/config   -Wsystem-headers
> -Werror  -DYYDEBUG=1 -c main.c
> lex -t  lang.l > lang.c
> cc -O -pipe -mcpu=pentiumpro -I.
> -I/src/freebsd/CURRENT/src/usr.sbin/config   -Wsystem-headers
> -Werror  -DYYDEBUG=1 -c lang.c
> cc -O -pipe -mcpu=pentiumpro -I.
> -I/src/freebsd/CURRENT/src/usr.sbin/config   -Wsystem-headers
> -Werror  -DYYDEBUG=1 -c mkmakefile.c
> cc -O -pipe -mcpu=pentiumpro -I.
> -I/src/freebsd/CURRENT/src/usr.sbin/config   -Wsystem-headers
> -Werror  -DYYDEBUG=1 -c mkheaders.c
> cc -O -pipe -mcpu=pentiumpro -I.
> -I/src/freebsd/CURRENT/src/usr.sbin/config   -Wsystem-headers
> -Werror  -DYYDEBUG=1 -c mkoptions.c
> cc -O -pipe -mcpu=pentiumpro -I.
> -I/src/freebsd/CURRENT/src/usr.sbin/config   -Wsystem-headers
> -Werror  -DYYDEBUG=1  -o config config.o main.o lang.o mkmakefile.o
> mkheaders.o mkoptions.o -ll
> gzip -cn config.8 > config.8.gz
> root at caster:ttyp4:config# cp config /tmp
> root at caster:ttyp4:config# cd ../../sys/i386/conf
> root at caster:ttyp4:conf# export YYDEBUG=1
> root at caster:ttyp4:conf# /tmp/config DISKLESS_SMP_MAC
> yydebug: state 0, reducing by rule 3 (Many_specs :)
> yydebug: after reduction, shifting from state 0 to state 2
> yydebug: state 2, reading 274 (INCLUDE)
> yydebug: state 2, shifting to state 19
> yydebug: state 19, reading 275 (ID)
> yydebug: state 19, shifting to state 46
> yydebug: state 46, reading 273 (SEMICOLON)
> yydebug: state 46, shifting to state 56
> yydebug: state 56, reducing by rule 20 (Config_spec : INCLUDE ID
> SEMICOLON)

This seems to be from a patching error.  Stefan's patch moved
"INCLUDE ID SEMICOLON" from Config_spec to Spec.

> yydebug: after reduction, shifting from state 2 to state 22
> yydebug: state 22, reading 274 (INCLUDE)
> config: SMP_MAC:1: syntax error
> root at caster:ttyp4:conf# head -3 DISKLESS_SMP_MAC SMP_MAC MAC
> ==> DISKLESS_SMP_MAC <==
> include SMP_MAC
>
> ident           DISKLESS_SMP_MAC
>
> ==> SMP_MAC <==
> include MAC
>
> #ident          SMP_MAC
>
> ==> MAC <==
> #
> # MAC -- Generic kernel configuration file for FreeBSD/i386 w/MAC
> #

My debugging output shows the move:

%%%
yydebug: state 0, reducing by rule 3 (Many_specs :)
yydebug: after reduction, shifting from state 0 to state 2
yydebug: state 2, reading 274 (INCLUDE)
yydebug: state 2, shifting to state 19
yydebug: state 19, reading 275 (ID)
yydebug: state 19, shifting to state 46
yydebug: state 46, reading 273 (SEMICOLON)
yydebug: state 46, shifting to state 56
yydebug: state 56, reducing by rule 6 (Spec : INCLUDE ID SEMICOLON)
                               ^^^^^^  ^^^^

[The first difference is here]

yydebug: after reduction, shifting from state 2 to state 20
yydebug: state 20, reducing by rule 2 (Many_specs : Many_specs Spec)
yydebug: after reduction, shifting from state 0 to state 2
yydebug: state 2, reading 274 (INCLUDE)
yydebug: state 2, shifting to state 19
yydebug: state 19, reading 275 (ID)
yydebug: state 19, shifting to state 46
yydebug: state 46, reading 273 (SEMICOLON)
yydebug: state 46, shifting to state 56
yydebug: state 56, reducing by rule 6 (Spec : INCLUDE ID SEMICOLON)
yydebug: after reduction, shifting from state 2 to state 20
yydebug: state 20, reducing by rule 2 (Many_specs : Many_specs Spec)
yydebug: after reduction, shifting from state 0 to state 2
yydebug: state 2, reading 273 (SEMICOLON)
yydebug: state 2, shifting to state 18
yydebug: state 18, reducing by rule 7 (Spec : SEMICOLON)
yydebug: after reduction, shifting from state 2 to state 20
yydebug: state 20, reducing by rule 2 (Many_specs : Many_specs Spec)
yydebug: after reduction, shifting from state 0 to state 2
yydebug: state 2, reading 273 (SEMICOLON)
yydebug: state 2, shifting to state 18
yydebug: state 18, reducing by rule 7 (Spec : SEMICOLON)
yydebug: after reduction, shifting from state 2 to state 20
yydebug: state 20, reducing by rule 2 (Many_specs : Many_specs Spec)
yydebug: after reduction, shifting from state 0 to state 2
yydebug: state 2, reading 273 (SEMICOLON)
yydebug: state 2, shifting to state 18
yydebug: state 18, reducing by rule 7 (Spec : SEMICOLON)
yydebug: after reduction, shifting from state 2 to state 20
yydebug: state 20, reducing by rule 2 (Many_specs : Many_specs Spec)
yydebug: after reduction, shifting from state 0 to state 2
yydebug: state 2, reading 273 (SEMICOLON)
yydebug: state 2, shifting to state 18
yydebug: state 18, reducing by rule 7 (Spec : SEMICOLON)
yydebug: after reduction, shifting from state 2 to state 20
yydebug: state 20, reducing by rule 2 (Many_specs : Many_specs Spec)
yydebug: after reduction, shifting from state 0 to state 2
yydebug: state 2, reading 273 (SEMICOLON)
yydebug: state 2, shifting to state 18
yydebug: state 18, reducing by rule 7 (Spec : SEMICOLON)
yydebug: after reduction, shifting from state 2 to state 20
yydebug: state 20, reducing by rule 2 (Many_specs : Many_specs Spec)
yydebug: after reduction, shifting from state 0 to state 2
yydebug: state 2, reading 273 (SEMICOLON)
yydebug: state 2, shifting to state 18
yydebug: state 18, reducing by rule 7 (Spec : SEMICOLON)
yydebug: after reduction, shifting from state 2 to state 20
yydebug: state 20, reducing by rule 2 (Many_specs : Many_specs Spec)
yydebug: after reduction, shifting from state 0 to state 2
yydebug: state 2, reading 266 (IDENT)
yydebug: state 2, shifting to state 11
yydebug: state 11, reading 275 (ID)
yydebug: state 11, shifting to state 35
yydebug: state 35, reducing by rule 15 (Config_spec : IDENT ID)
yydebug: after reduction, shifting from state 2 to state 22
yydebug: state 22, reading 273 (SEMICOLON)
yydebug: state 22, shifting to state 48
yydebug: state 48, reducing by rule 5 (Spec : Config_spec SEMICOLON)
yydebug: after reduction, shifting from state 2 to state 20
yydebug: state 20, reducing by rule 2 (Many_specs : Many_specs Spec)
yydebug: after reduction, shifting from state 0 to state 2
yydebug: state 2, reading 0 (end-of-file)
yydebug: state 2, reducing by rule 1 (Configuration : Many_specs)
yydebug: after reduction, shifting from state 0 to state 1
Specify machine type, e.g. ``machine i386''
%%%

Bruce


More information about the freebsd-arch mailing list