sys/conf/DEFAULT[S]
Adam C. Migus
adam at migus.org
Fri Oct 10 18:10:19 PDT 2003
Bruce Evans said:
> 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
> _______________________________________________
> freebsd-arch at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arch
> To unsubscribe, send any mail to
> "freebsd-arch-unsubscribe at freebsd.org"
>
Bruce,
After all the confusion here's a patch that will address and fix the
the SEMICOLON and nesting issues and in addition fix the problem you
had with file names. It does so by introducing a PATH type. So
'include' can now be used for things like "DEFAULTS.i386" (with or
without quotes).
--
Adam - (http://people.migus.org/~amigus/)
Migus Dot Org - (http://www.migus.org/)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: config.diff
Type: application/octet-stream
Size: 1590 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-arch/attachments/20031010/b34d08c8/config.obj
More information about the freebsd-arch
mailing list