bison problem building inn-2.4.1

T Nefzger tnefzger at earthlink.net
Wed Jun 30 19:57:49 UTC 2004


I found that installing GNU m4-1.4.1 fixed the bison problem.  Also,
/usr/ccs/bin/yacc produced a y.tab.c but it is different from the one made
by bison.

-----Original Message-----
From: T Nefzger [mailto:tnefzger at earthlink.net]
Sent: Wednesday, June 30, 2004 3:13 PM
To: inn-bugs at isc.org
Subject: bison problem building inn-2.4.1


Hi,

I'm trying to build inn-2.4.1 on solaris 8 running on a sun sparc system.
Solaris 8 is patched with Maintenance Update 7 and the Recommended Patch
Cluster of 3/10/2004.  I am using gcc v2.95.3, bison v1.875d and perl
v5.8.3.

I configured inn with:  ./configure --prefix=/opt/news --with-perl

Make proceed fine until parsedate.y:

...
gcc -g -O2 -I../include   -c md5.c
gcc -g -O2 -I../include   -c messages.c
gcc -g -O2 -I../include   -c mmap.c
Expect 6 shift/reduce conflicts
bison -y parsedate.y
conflicts: 6 shift/reduce
make[1]: *** [parsedate.c] Broken Pipe
make[1]: Leaving directory `/sw/inn-2.4.1/lib'
make: *** [all-lib] Error 2

Running bison from the command line produced:
root at ef-3:22 bison -y parsedate.y
conflicts: 6 shift/reduce
root at ef-3:23: echo $?
141

man -s2 intro skips error number 141 as does /usr/include/errno.h.

Running bison -v -y produced the following y.output:

State 6 conflicts: 1 shift/reduce
State 8 conflicts: 1 shift/reduce
State 16 conflicts: 1 shift/reduce
State 24 conflicts: 1 shift/reduce
State 30 conflicts: 1 shift/reduce
State 40 conflicts: 1 shift/reduce


Grammar

    0 $accept: spec $end

    1 spec: /* empty */
    2     | spec item

    3 item: time
    4     | time zone
    5     | date
    6     | rel

    7 time: tUNUMBER o_merid
    8     | tUNUMBER ':' tUNUMBER o_merid
    9     | tUNUMBER ':' tUNUMBER numzone
   10     | tUNUMBER ':' tUNUMBER ':' tUNUMBER o_merid
   11     | tUNUMBER ':' tUNUMBER ':' tUNUMBER numzone

   12 zone: tZONE
   13     | tDAYZONE
   14     | tZONE numzone
   15     | numzone

   16 numzone: tSNUMBER

   17 date: tUNUMBER '/' tUNUMBER
   18     | tUNUMBER '/' tUNUMBER '/' tUNUMBER
   19     | tMONTH tUNUMBER
   20     | tMONTH tUNUMBER ',' tUNUMBER
   21     | tUNUMBER tMONTH
   22     | tUNUMBER tMONTH tUNUMBER
   23     | tDAY ',' tUNUMBER tMONTH tUNUMBER

   24 rel: tSNUMBER tSEC_UNIT
   25    | tUNUMBER tSEC_UNIT
   26    | tSNUMBER tMONTH_UNIT
   27    | tUNUMBER tMONTH_UNIT

   28 o_merid: /* empty */
   29        | tMERIDIAN


Terminals, with rules where they appear

$end (0) 0
',' (44) 20 23
'/' (47) 17 18
':' (58) 8 9 10 11
error (256)
tDAY (258) 23
tDAYZONE (259) 13
tMERIDIAN (260) 29
tMONTH (261) 19 20 21 22 23
tMONTH_UNIT (262) 26 27
tSEC_UNIT (263) 24 25
tSNUMBER (264) 16 24 26
tUNUMBER (265) 7 8 9 10 11 17 18 19 20 21 22 23 25 27
tZONE (266) 12 14


Nonterminals, with rules where they appear

$accept (15)
    on left: 0
spec (16)
    on left: 1 2, on right: 0 2
item (17)
    on left: 3 4 5 6, on right: 2
time (18)
    on left: 7 8 9 10 11, on right: 3 4
zone (19)
    on left: 12 13 14 15, on right: 4
numzone (20)
    on left: 16, on right: 9 11 14 15
date (21)
    on left: 17 18 19 20 21 22 23, on right: 5
rel (22)
    on left: 24 25 26 27, on right: 6
o_merid (23)
    on left: 28 29, on right: 7 8 10


state 0

    0 $accept: . spec $end

    $default  reduce using rule 1 (spec)

    spec  go to state 1


state 1

    0 $accept: spec . $end
    2 spec: spec . item

    $end      shift, and go to state 2
    tDAY      shift, and go to state 3
    tMONTH    shift, and go to state 4
    tSNUMBER  shift, and go to state 5
    tUNUMBER  shift, and go to state 6

    item  go to state 7
    time  go to state 8
    date  go to state 9
    rel   go to state 10


state 2

    0 $accept: spec $end .

    $default  accept


state 3

   23 date: tDAY . ',' tUNUMBER tMONTH tUNUMBER

    ','  shift, and go to state 11


state 4

   19 date: tMONTH . tUNUMBER
   20     | tMONTH . tUNUMBER ',' tUNUMBER

    tUNUMBER  shift, and go to state 12


state 5

   24 rel: tSNUMBER . tSEC_UNIT
   26    | tSNUMBER . tMONTH_UNIT

    tMONTH_UNIT  shift, and go to state 13
    tSEC_UNIT    shift, and go to state 14


state 6

    7 time: tUNUMBER . o_merid
    8     | tUNUMBER . ':' tUNUMBER o_merid
    9     | tUNUMBER . ':' tUNUMBER numzone
   10     | tUNUMBER . ':' tUNUMBER ':' tUNUMBER o_merid
   11     | tUNUMBER . ':' tUNUMBER ':' tUNUMBER numzone
   17 date: tUNUMBER . '/' tUNUMBER
   18     | tUNUMBER . '/' tUNUMBER '/' tUNUMBER
   21     | tUNUMBER . tMONTH
   22     | tUNUMBER . tMONTH tUNUMBER
   25 rel: tUNUMBER . tSEC_UNIT
   27    | tUNUMBER . tMONTH_UNIT

    tMERIDIAN    shift, and go to state 15
    tMONTH       shift, and go to state 16
    tMONTH_UNIT  shift, and go to state 17
    tSEC_UNIT    shift, and go to state 18
    ':'          shift, and go to state 19
    '/'          shift, and go to state 20

    tMONTH    [reduce using rule 28 (o_merid)]
    $default  reduce using rule 28 (o_merid)

    o_merid  go to state 21


state 7

    2 spec: spec item .

    $default  reduce using rule 2 (spec)


state 8

    3 item: time .
    4     | time . zone

    tDAYZONE  shift, and go to state 22
    tSNUMBER  shift, and go to state 23
    tZONE     shift, and go to state 24

    tSNUMBER  [reduce using rule 3 (item)]
    $default  reduce using rule 3 (item)

    zone     go to state 25
    numzone  go to state 26


state 9

    5 item: date .

    $default  reduce using rule 5 (item)


state 10

    6 item: rel .

    $default  reduce using rule 6 (item)


state 11

   23 date: tDAY ',' . tUNUMBER tMONTH tUNUMBER

    tUNUMBER  shift, and go to state 27


state 12

   19 date: tMONTH tUNUMBER .
   20     | tMONTH tUNUMBER . ',' tUNUMBER

    ','  shift, and go to state 28

    $default  reduce using rule 19 (date)


state 13

   26 rel: tSNUMBER tMONTH_UNIT .

    $default  reduce using rule 26 (rel)


state 14

   24 rel: tSNUMBER tSEC_UNIT .

    $default  reduce using rule 24 (rel)


state 15

   29 o_merid: tMERIDIAN .

    $default  reduce using rule 29 (o_merid)


state 16

   21 date: tUNUMBER tMONTH .
   22     | tUNUMBER tMONTH . tUNUMBER

    tUNUMBER  shift, and go to state 29

    tUNUMBER  [reduce using rule 21 (date)]
    $default  reduce using rule 21 (date)


state 17

   27 rel: tUNUMBER tMONTH_UNIT .

    $default  reduce using rule 27 (rel)


state 18

   25 rel: tUNUMBER tSEC_UNIT .

    $default  reduce using rule 25 (rel)


state 19

    8 time: tUNUMBER ':' . tUNUMBER o_merid
    9     | tUNUMBER ':' . tUNUMBER numzone
   10     | tUNUMBER ':' . tUNUMBER ':' tUNUMBER o_merid
   11     | tUNUMBER ':' . tUNUMBER ':' tUNUMBER numzone

    tUNUMBER  shift, and go to state 30

state 20

   17 date: tUNUMBER '/' . tUNUMBER
   18     | tUNUMBER '/' . tUNUMBER '/' tUNUMBER

    tUNUMBER  shift, and go to state 31


state 21

    7 time: tUNUMBER o_merid .

    $default  reduce using rule 7 (time)


state 22

   13 zone: tDAYZONE .

    $default  reduce using rule 13 (zone)


state 23

   16 numzone: tSNUMBER .

    $default  reduce using rule 16 (numzone)


state 24

   12 zone: tZONE .
   14     | tZONE . numzone

    tSNUMBER  shift, and go to state 23

    tSNUMBER  [reduce using rule 12 (zone)]
    $default  reduce using rule 12 (zone)

    numzone  go to state 32


state 25

    4 item: time zone .

    $default  reduce using rule 4 (item)


state 26

   15 zone: numzone .

    $default  reduce using rule 15 (zone)


state 27

   23 date: tDAY ',' tUNUMBER . tMONTH tUNUMBER

    tMONTH  shift, and go to state 33


state 28

   20 date: tMONTH tUNUMBER ',' . tUNUMBER

    tUNUMBER  shift, and go to state 34


state 29

   22 date: tUNUMBER tMONTH tUNUMBER .

    $default  reduce using rule 22 (date)


state 30

    8 time: tUNUMBER ':' tUNUMBER . o_merid
    9     | tUNUMBER ':' tUNUMBER . numzone
   10     | tUNUMBER ':' tUNUMBER . ':' tUNUMBER o_merid
   11     | tUNUMBER ':' tUNUMBER . ':' tUNUMBER numzone

    tMERIDIAN  shift, and go to state 15
    tSNUMBER   shift, and go to state 23
    ':'        shift, and go to state 35

    tSNUMBER  [reduce using rule 28 (o_merid)]
    $default  reduce using rule 28 (o_merid)

    numzone  go to state 36
    o_merid  go to state 37


state 31

   17 date: tUNUMBER '/' tUNUMBER .
   18     | tUNUMBER '/' tUNUMBER . '/' tUNUMBER

    '/'  shift, and go to state 38

    $default  reduce using rule 17 (date)


state 32

   14 zone: tZONE numzone .

    $default  reduce using rule 14 (zone)


state 33

   23 date: tDAY ',' tUNUMBER tMONTH . tUNUMBER

    tUNUMBER  shift, and go to state 39


state 34

   20 date: tMONTH tUNUMBER ',' tUNUMBER .

    $default  reduce using rule 20 (date)


state 35

   10 time: tUNUMBER ':' tUNUMBER ':' . tUNUMBER o_merid
   11     | tUNUMBER ':' tUNUMBER ':' . tUNUMBER numzone

    tUNUMBER  shift, and go to state 40


state 36

    9 time: tUNUMBER ':' tUNUMBER numzone .

    $default  reduce using rule 9 (time)


state 37

    8 time: tUNUMBER ':' tUNUMBER o_merid .

    $default  reduce using rule 8 (time)


state 38

   18 date: tUNUMBER '/' tUNUMBER '/' . tUNUMBER

    tUNUMBER  shift, and go to state 41


state 39

   23 date: tDAY ',' tUNUMBER tMONTH tUNUMBER .

    $default  reduce using rule 23 (date)


state 40

   10 time: tUNUMBER ':' tUNUMBER ':' tUNUMBER . o_merid
   11     | tUNUMBER ':' tUNUMBER ':' tUNUMBER . numzone

    tMERIDIAN  shift, and go to state 15
    tSNUMBER   shift, and go to state 23

    tSNUMBER  [reduce using rule 28 (o_merid)]
    $default  reduce using rule 28 (o_merid)

    numzone  go to state 42
    o_merid  go to state 43


state 41

   18 date: tUNUMBER '/' tUNUMBER '/' tUNUMBER .

    $default  reduce using rule 18 (date)


state 42

   11 time: tUNUMBER ':' tUNUMBER ':' tUNUMBER numzone .

    $default  reduce using rule 11 (time)


state 43

   10 time: tUNUMBER ':' tUNUMBER ':' tUNUMBER o_merid .

    $default  reduce using rule 10 (time)

--
Thanks for looking into this.

Tris Nefzger
tnefzger at earthlink.net




More information about the inn-bugs mailing list