Re: sys/conf/DEFAULT[S]

From: Bruce Evans (bde_at_zeta.org.au)
Date: 10/08/03

  • Next message: Adam C. Migus: "Re: sys/conf/DEFAULT[S]"
    Date: Thu, 9 Oct 2003 03:36:35 +1000 (EST)
    To: "Adam C. Migus" <adam@migus.org>
    
    

    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@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@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@caster:ttyp4:config# cp config /tmp
    > root@caster:ttyp4:config# cd ../../sys/i386/conf
    > root@caster:ttyp4:conf# export YYDEBUG=1
    > root@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@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
    _______________________________________________
    freebsd-arch@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-arch
    To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org"


  • Next message: Adam C. Migus: "Re: sys/conf/DEFAULT[S]"