This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by GNU Bison configure 2.3, which was
generated by GNU Autoconf 2.59.  Invocation command line was

  $ ./configure --prefix /home/phanna/src/bison

## --------- ##
## Platform. ##
## --------- ##

hostname = phanna.cnc.corp.google.com
uname -m = x86_64
uname -r = 2.6.18.5-gg34workstation-mixed64-32
uname -s = Linux
uname -v = #1 SMP Thu May 8 01:31:23 UTC 2008

/usr/bin/uname -p = unknown
/bin/uname -X     = unknown

/bin/arch              = x86_64
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
hostinfo               = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /usr/local/symlinks
PATH: /usr/local/scripts
PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /usr/sbin
PATH: /usr/bin
PATH: /sbin
PATH: /bin
PATH: /usr/bin/X11
PATH: /home/phanna/jswat-4.2/bin
PATH: /usr/local/google/workspace/WebKit/out/host/linux-x86/bin
PATH: /usr/local/google/workspace/WebKit/prebuilt/Linux/toolchain/arm-elf
PATH: /usr/local/google/workspace/WebKit/tools/qtools
PATH: /usr/local/google/workspace/WebKit/prebuilt/Linux/toolchain-eabi-4.2.1/bin
PATH: /usr/local/google/workspace/WebKit/prebuilt/Linux/toolchain-eabi-4.2.1/bin


## ----------- ##
## Core tests. ##
## ----------- ##

configure:1402: checking for a BSD-compatible install
configure:1457: result: /usr/bin/install -c
configure:1468: checking whether build environment is sane
configure:1511: result: yes
configure:1576: checking for gawk
configure:1592: found /usr/bin/gawk
configure:1602: result: gawk
configure:1612: checking whether make sets $(MAKE)
configure:1632: result: yes
configure:1821: checking for style of include used by make
configure:1849: result: GNU
configure:1920: checking for gcc
configure:1936: found /usr/bin/gcc
configure:1946: result: gcc
configure:2190: checking for C compiler version
configure:2193: gcc --version </dev/null >&5
gcc (GCC) 4.0.3 (Ubuntu 4.0.3-1ubuntu5)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:2196: $? = 0
configure:2198: gcc -v </dev/null >&5
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.0 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-awt=gtk-default --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --disable-werror --with-tune=pentium4 --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.0.3 (Ubuntu 4.0.3-1ubuntu5)
configure:2201: $? = 0
configure:2203: gcc -V </dev/null >&5
gcc: '-V' option must have argument
configure:2206: $? = 1
configure:2229: checking for C compiler default output file name
configure:2232: gcc    conftest.c  >&5
configure:2235: $? = 0
configure:2281: result: a.out
configure:2286: checking whether the C compiler works
configure:2292: ./a.out
configure:2295: $? = 0
configure:2312: result: yes
configure:2319: checking whether we are cross compiling
configure:2321: result: no
configure:2324: checking for suffix of executables
configure:2326: gcc -o conftest    conftest.c  >&5
configure:2329: $? = 0
configure:2354: result: 
configure:2360: checking for suffix of object files
configure:2381: gcc -c   conftest.c >&5
configure:2384: $? = 0
configure:2406: result: o
configure:2410: checking whether we are using the GNU C compiler
configure:2434: gcc -c   conftest.c >&5
configure:2440: $? = 0
configure:2443: test -z 			 || test ! -s conftest.err
configure:2446: $? = 0
configure:2449: test -s conftest.o
configure:2452: $? = 0
configure:2465: result: yes
configure:2471: checking whether gcc accepts -g
configure:2492: gcc -c -g  conftest.c >&5
configure:2498: $? = 0
configure:2501: test -z 			 || test ! -s conftest.err
configure:2504: $? = 0
configure:2507: test -s conftest.o
configure:2510: $? = 0
configure:2521: result: yes
configure:2538: checking for gcc option to accept ANSI C
configure:2608: gcc  -c -g -O2  conftest.c >&5
configure:2614: $? = 0
configure:2617: test -z 			 || test ! -s conftest.err
configure:2620: $? = 0
configure:2623: test -s conftest.o
configure:2626: $? = 0
configure:2644: result: none needed
configure:2662: gcc -c -g -O2  conftest.c >&5
conftest.c:2: error: syntax error before 'me'
configure:2668: $? = 1
configure: failed program was:
| #ifndef __cplusplus
|   choke me
| #endif
configure:2800: checking dependency style of gcc
configure:2890: result: gcc3
configure:2913: checking how to run the C preprocessor
configure:2948: gcc -E  conftest.c
configure:2954: $? = 0
configure:2986: gcc -E  conftest.c
conftest.c:12:28: error: ac_nonexistent.h: No such file or directory
configure:2992: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME "GNU Bison"
| #define PACKAGE_TARNAME "bison"
| #define PACKAGE_VERSION "2.3"
| #define PACKAGE_STRING "GNU Bison 2.3"
| #define PACKAGE_BUGREPORT "bug-bison@gnu.org"
| #define PACKAGE "bison"
| #define VERSION "2.3"
| #define _GNU_SOURCE 1
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:3031: result: gcc -E
configure:3055: gcc -E  conftest.c
configure:3061: $? = 0
configure:3093: gcc -E  conftest.c
conftest.c:12:28: error: ac_nonexistent.h: No such file or directory
configure:3099: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME "GNU Bison"
| #define PACKAGE_TARNAME "bison"
| #define PACKAGE_VERSION "2.3"
| #define PACKAGE_STRING "GNU Bison 2.3"
| #define PACKAGE_BUGREPORT "bug-bison@gnu.org"
| #define PACKAGE "bison"
| #define VERSION "2.3"
| #define _GNU_SOURCE 1
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:3143: checking for egrep
configure:3153: result: grep -E
configure:3159: checking for AIX
configure:3181: result: no
configure:3187: checking for ANSI C header files
configure:3212: gcc -c -g -O2  conftest.c >&5
configure:3218: $? = 0
configure:3221: test -z 			 || test ! -s conftest.err
configure:3224: $? = 0
configure:3227: test -s conftest.o
configure:3230: $? = 0
configure:3319: gcc -o conftest -g -O2   conftest.c  >&5
conftest.c: In function 'main':
conftest.c:29: warning: incompatible implicit declaration of built-in function 'exit'
configure:3322: $? = 0
configure:3324: ./conftest
configure:3327: $? = 0
configure:3342: result: yes
configure:3366: checking for sys/types.h
configure:3382: gcc -c -g -O2  conftest.c >&5
configure:3388: $? = 0
configure:3391: test -z 			 || test ! -s conftest.err
configure:3394: $? = 0
configure:3397: test -s conftest.o
configure:3400: $? = 0
configure:3411: result: yes
configure:3366: checking for sys/stat.h
configure:3382: gcc -c -g -O2  conftest.c >&5
configure:3388: $? = 0
configure:3391: test -z 			 || test ! -s conftest.err
configure:3394: $? = 0
configure:3397: test -s conftest.o
configure:3400: $? = 0
configure:3411: result: yes
configure:3366: checking for stdlib.h
configure:3382: gcc -c -g -O2  conftest.c >&5
configure:3388: $? = 0
configure:3391: test -z 			 || test ! -s conftest.err
configure:3394: $? = 0
configure:3397: test -s conftest.o
configure:3400: $? = 0
configure:3411: result: yes
configure:3366: checking for string.h
configure:3382: gcc -c -g -O2  conftest.c >&5
configure:3388: $? = 0
configure:3391: test -z 			 || test ! -s conftest.err
configure:3394: $? = 0
configure:3397: test -s conftest.o
configure:3400: $? = 0
configure:3411: result: yes
configure:3366: checking for memory.h
configure:3382: gcc -c -g -O2  conftest.c >&5
configure:3388: $? = 0
configure:3391: test -z 			 || test ! -s conftest.err
configure:3394: $? = 0
configure:3397: test -s conftest.o
configure:3400: $? = 0
configure:3411: result: yes
configure:3366: checking for strings.h
configure:3382: gcc -c -g -O2  conftest.c >&5
configure:3388: $? = 0
configure:3391: test -z 			 || test ! -s conftest.err
configure:3394: $? = 0
configure:3397: test -s conftest.o
configure:3400: $? = 0
configure:3411: result: yes
configure:3366: checking for inttypes.h
configure:3382: gcc -c -g -O2  conftest.c >&5
configure:3388: $? = 0
configure:3391: test -z 			 || test ! -s conftest.err
configure:3394: $? = 0
configure:3397: test -s conftest.o
configure:3400: $? = 0
configure:3411: result: yes
configure:3366: checking for stdint.h
configure:3382: gcc -c -g -O2  conftest.c >&5
configure:3388: $? = 0
configure:3391: test -z 			 || test ! -s conftest.err
configure:3394: $? = 0
configure:3397: test -s conftest.o
configure:3400: $? = 0
configure:3411: result: yes
configure:3366: checking for unistd.h
configure:3382: gcc -c -g -O2  conftest.c >&5
configure:3388: $? = 0
configure:3391: test -z 			 || test ! -s conftest.err
configure:3394: $? = 0
configure:3397: test -s conftest.o
configure:3400: $? = 0
configure:3411: result: yes
configure:3433: checking minix/config.h usability
configure:3445: gcc -c -g -O2  conftest.c >&5
conftest.c:56:26: error: minix/config.h: No such file or directory
configure:3451: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME "GNU Bison"
| #define PACKAGE_TARNAME "bison"
| #define PACKAGE_VERSION "2.3"
| #define PACKAGE_STRING "GNU Bison 2.3"
| #define PACKAGE_BUGREPORT "bug-bison@gnu.org"
| #define PACKAGE "bison"
| #define VERSION "2.3"
| #define _GNU_SOURCE 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #if HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #if HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #if STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # if HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #if HAVE_STRING_H
| # if !STDC_HEADERS && HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #if HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #if HAVE_INTTYPES_H
| # include <inttypes.h>
| #else
| # if HAVE_STDINT_H
| #  include <stdint.h>
| # endif
| #endif
| #if HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <minix/config.h>
configure:3473: result: no
configure:3477: checking minix/config.h presence
configure:3487: gcc -E  conftest.c
conftest.c:22:26: error: minix/config.h: No such file or directory
configure:3493: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME "GNU Bison"
| #define PACKAGE_TARNAME "bison"
| #define PACKAGE_VERSION "2.3"
| #define PACKAGE_STRING "GNU Bison 2.3"
| #define PACKAGE_BUGREPORT "bug-bison@gnu.org"
| #define PACKAGE "bison"
| #define VERSION "2.3"
| #define _GNU_SOURCE 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| /* end confdefs.h.  */
| #include <minix/config.h>
configure:3513: result: no
configure:3548: checking for minix/config.h
configure:3555: result: no
configure:3594: checking whether it is safe to define __EXTENSIONS__
configure:3617: gcc -c -g -O2  conftest.c >&5
configure:3623: $? = 0
configure:3626: test -z 			 || test ! -s conftest.err
configure:3629: $? = 0
configure:3632: test -s conftest.o
configure:3635: $? = 0
configure:3646: result: yes
configure:3706: checking for gcc
configure:3732: result: gcc
configure:3976: checking for C compiler version
configure:3979: gcc --version </dev/null >&5
gcc (GCC) 4.0.3 (Ubuntu 4.0.3-1ubuntu5)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:3982: $? = 0
configure:3984: gcc -v </dev/null >&5
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.0 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-awt=gtk-default --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --disable-werror --with-tune=pentium4 --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.0.3 (Ubuntu 4.0.3-1ubuntu5)
configure:3987: $? = 0
configure:3989: gcc -V </dev/null >&5
gcc: '-V' option must have argument
configure:3992: $? = 1
configure:3995: checking whether we are using the GNU C compiler
configure:4050: result: yes
configure:4056: checking whether gcc accepts -g
configure:4106: result: yes
configure:4123: checking for gcc option to accept ANSI C
configure:4229: result: none needed
configure:4247: gcc -c -g -O2  conftest.c >&5
conftest.c:2: error: syntax error before 'me'
configure:4253: $? = 1
configure: failed program was:
| #ifndef __cplusplus
|   choke me
| #endif
configure:4385: checking dependency style of gcc
configure:4475: result: gcc3
configure:4538: checking for gcc
configure:4564: result: gcc
configure:4808: checking for C compiler version
configure:4811: gcc --version </dev/null >&5
gcc (GCC) 4.0.3 (Ubuntu 4.0.3-1ubuntu5)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:4814: $? = 0
configure:4816: gcc -v </dev/null >&5
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.0 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-awt=gtk-default --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --disable-werror --with-tune=pentium4 --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.0.3 (Ubuntu 4.0.3-1ubuntu5)
configure:4819: $? = 0
configure:4821: gcc -V </dev/null >&5
gcc: '-V' option must have argument
configure:4824: $? = 1
configure:4827: checking whether we are using the GNU C compiler
configure:4882: result: yes
configure:4888: checking whether gcc accepts -g
configure:4938: result: yes
configure:4955: checking for gcc option to accept ANSI C
configure:5061: result: none needed
configure:5079: gcc -c -g -O2  conftest.c >&5
conftest.c:2: error: syntax error before 'me'
configure:5085: $? = 1
configure: failed program was:
| #ifndef __cplusplus
|   choke me
| #endif
configure:5217: checking dependency style of gcc
configure:5307: result: gcc3
configure:6007: gcc -c -g -O2  conftest.c >&5
configure:6013: $? = 0
configure:6016: test -z 			 || test ! -s conftest.err
configure:6019: $? = 0
configure:6022: test -s conftest.o
configure:6025: $? = 0
configure:6064: checking for flex
configure:6080: found /usr/bin/flex
configure:6090: result: flex
configure:6103: checking for yywrap in -lfl
configure:6133: gcc -o conftest -g -O2   conftest.c -lfl   >&5
configure:6139: $? = 0
configure:6142: test -z 			 || test ! -s conftest.err
configure:6145: $? = 0
configure:6148: test -s conftest
configure:6151: $? = 0
configure:6164: result: yes
configure:6241: checking lex output file root
configure:6252: flex conftest.l
configure:6255: $? = 0
configure:6267: result: lex.yy
configure:6272: checking whether yytext is a pointer
configure:6288: gcc -o conftest -g -O2   conftest.c  -lfl >&5
configure:6294: $? = 0
configure:6297: test -z 			 || test ! -s conftest.err
configure:6300: $? = 0
configure:6303: test -s conftest
configure:6306: $? = 0
configure:6320: result: yes
configure:6335: checking for bison
configure:6351: found /usr/bin/bison
configure:6361: result: bison -y
configure:6413: checking for ranlib
configure:6429: found /usr/bin/ranlib
configure:6440: result: ranlib
configure:6456: checking for gm4
configure:6489: result: no
configure:6456: checking for gnum4
configure:6489: result: no
configure:6456: checking for m4
configure:6474: found /usr/bin/m4
configure:6486: result: /usr/bin/m4
configure:6497: checking whether m4 supports frozen files
configure:6509: result: yes
configure:6541: checking locale.h usability
configure:6553: gcc -c -g -O2  conftest.c >&5
configure:6559: $? = 0
configure:6562: test -z 			 || test ! -s conftest.err
configure:6565: $? = 0
configure:6568: test -s conftest.o
configure:6571: $? = 0
configure:6581: result: yes
configure:6585: checking locale.h presence
configure:6595: gcc -E  conftest.c
configure:6601: $? = 0
configure:6621: result: yes
configure:6656: checking for locale.h
configure:6663: result: yes
configure:6541: checking wchar.h usability
configure:6553: gcc -c -g -O2  conftest.c >&5
configure:6559: $? = 0
configure:6562: test -z 			 || test ! -s conftest.err
configure:6565: $? = 0
configure:6568: test -s conftest.o
configure:6571: $? = 0
configure:6581: result: yes
configure:6585: checking wchar.h presence
configure:6595: gcc -E  conftest.c
configure:6601: $? = 0
configure:6621: result: yes
configure:6656: checking for wchar.h
configure:6663: result: yes
configure:6541: checking wctype.h usability
configure:6553: gcc -c -g -O2  conftest.c >&5
configure:6559: $? = 0
configure:6562: test -z 			 || test ! -s conftest.err
configure:6565: $? = 0
configure:6568: test -s conftest.o
configure:6571: $? = 0
configure:6581: result: yes
configure:6585: checking wctype.h presence
configure:6595: gcc -E  conftest.c
configure:6601: $? = 0
configure:6621: result: yes
configure:6656: checking for wctype.h
configure:6663: result: yes
configure:6688: checking for stdbool.h that conforms to C99
configure:6776: gcc -c -g -O2  conftest.c >&5
configure:6782: $? = 0
configure:6785: test -z 			 || test ! -s conftest.err
configure:6788: $? = 0
configure:6791: test -s conftest.o
configure:6794: $? = 0
configure:6805: result: yes
configure:6807: checking for _Bool
configure:6831: gcc -c -g -O2  conftest.c >&5
configure:6837: $? = 0
configure:6840: test -z 			 || test ! -s conftest.err
configure:6843: $? = 0
configure:6846: test -s conftest.o
configure:6849: $? = 0
configure:6860: result: yes
configure:6899: checking for inline
configure:6920: gcc -c -g -O2  conftest.c >&5
configure:6926: $? = 0
configure:6929: test -z 			 || test ! -s conftest.err
configure:6932: $? = 0
configure:6935: test -s conftest.o
configure:6938: $? = 0
configure:6950: result: inline
configure:6971: checking for uintptr_t
configure:6995: gcc -c -g -O2  conftest.c >&5
configure:7001: $? = 0
configure:7004: test -z 			 || test ! -s conftest.err
configure:7007: $? = 0
configure:7010: test -s conftest.o
configure:7013: $? = 0
configure:7024: result: yes
configure:7045: checking for setlocale
configure:7102: gcc -o conftest -g -O2   conftest.c  >&5
configure:7108: $? = 0
configure:7111: test -z 			 || test ! -s conftest.err
configure:7114: $? = 0
configure:7117: test -s conftest
configure:7120: $? = 0
configure:7132: result: yes
configure:7045: checking for isascii
configure:7102: gcc -o conftest -g -O2   conftest.c  >&5
conftest.c:57: warning: conflicting types for built-in function 'isascii'
configure:7108: $? = 0
configure:7111: test -z 			 || test ! -s conftest.err
configure:7114: $? = 0
configure:7117: test -s conftest
configure:7120: $? = 0
configure:7132: result: yes
configure:7045: checking for iswprint
configure:7102: gcc -o conftest -g -O2   conftest.c  >&5
conftest.c:58: warning: conflicting types for built-in function 'iswprint'
configure:7108: $? = 0
configure:7111: test -z 			 || test ! -s conftest.err
configure:7114: $? = 0
configure:7117: test -s conftest
configure:7120: $? = 0
configure:7132: result: yes
configure:7045: checking for mbsinit
configure:7102: gcc -o conftest -g -O2   conftest.c  >&5
configure:7108: $? = 0
configure:7111: test -z 			 || test ! -s conftest.err
configure:7114: $? = 0
configure:7117: test -s conftest
configure:7120: $? = 0
configure:7132: result: yes
configure:7154: checking if malloc debugging is wanted
configure:7175: result: no
configure:7180: checking for pid_t
configure:7204: gcc -c -g -O2  conftest.c >&5
configure:7210: $? = 0
configure:7213: test -z 			 || test ! -s conftest.err
configure:7216: $? = 0
configure:7219: test -s conftest.o
configure:7222: $? = 0
configure:7233: result: yes
configure:7245: checking for sys/wait.h that is POSIX.1 compatible
configure:7276: gcc -c -g -O2  conftest.c >&5
configure:7282: $? = 0
configure:7285: test -z 			 || test ! -s conftest.err
configure:7288: $? = 0
configure:7291: test -s conftest.o
configure:7294: $? = 0
configure:7305: result: yes
configure:7320: checking for dup2
configure:7377: gcc -o conftest -g -O2   conftest.c  >&5
configure:7383: $? = 0
configure:7386: test -z 			 || test ! -s conftest.err
configure:7389: $? = 0
configure:7392: test -s conftest
configure:7395: $? = 0
configure:7407: result: yes
configure:7320: checking for waitpid
configure:7377: gcc -o conftest -g -O2   conftest.c  >&5
configure:7383: $? = 0
configure:7386: test -z 			 || test ! -s conftest.err
configure:7389: $? = 0
configure:7392: test -s conftest
configure:7395: $? = 0
configure:7407: result: yes
configure:7423: checking for unistd.h
configure:7428: result: yes
configure:7432: checking vfork.h usability
configure:7444: gcc -c -g -O2  conftest.c >&5
conftest.c:74:19: error: vfork.h: No such file or directory
configure:7450: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME "GNU Bison"
| #define PACKAGE_TARNAME "bison"
| #define PACKAGE_VERSION "2.3"
| #define PACKAGE_STRING "GNU Bison 2.3"
| #define PACKAGE_BUGREPORT "bug-bison@gnu.org"
| #define PACKAGE "bison"
| #define VERSION "2.3"
| #define _GNU_SOURCE 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define YYTEXT_POINTER 1
| #define M4 "/usr/bin/m4"
| #define HAVE_LOCALE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_WCTYPE_H 1
| #define HAVE__BOOL 1
| #define HAVE_STDBOOL_H 1
| #define HAVE_UINTPTR_T 1
| #define HAVE_SETLOCALE 1
| #define HAVE_ISASCII 1
| #define HAVE_ISWPRINT 1
| #define HAVE_MBSINIT 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_DUP2 1
| #define HAVE_WAITPID 1
| #define HAVE_UNISTD_H 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #if HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #if HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #if STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # if HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #if HAVE_STRING_H
| # if !STDC_HEADERS && HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #if HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #if HAVE_INTTYPES_H
| # include <inttypes.h>
| #else
| # if HAVE_STDINT_H
| #  include <stdint.h>
| # endif
| #endif
| #if HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <vfork.h>
configure:7472: result: no
configure:7476: checking vfork.h presence
configure:7486: gcc -E  conftest.c
conftest.c:40:19: error: vfork.h: No such file or directory
configure:7492: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME "GNU Bison"
| #define PACKAGE_TARNAME "bison"
| #define PACKAGE_VERSION "2.3"
| #define PACKAGE_STRING "GNU Bison 2.3"
| #define PACKAGE_BUGREPORT "bug-bison@gnu.org"
| #define PACKAGE "bison"
| #define VERSION "2.3"
| #define _GNU_SOURCE 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define YYTEXT_POINTER 1
| #define M4 "/usr/bin/m4"
| #define HAVE_LOCALE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_WCTYPE_H 1
| #define HAVE__BOOL 1
| #define HAVE_STDBOOL_H 1
| #define HAVE_UINTPTR_T 1
| #define HAVE_SETLOCALE 1
| #define HAVE_ISASCII 1
| #define HAVE_ISWPRINT 1
| #define HAVE_MBSINIT 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_DUP2 1
| #define HAVE_WAITPID 1
| #define HAVE_UNISTD_H 1
| /* end confdefs.h.  */
| #include <vfork.h>
configure:7512: result: no
configure:7547: checking for vfork.h
configure:7554: result: no
configure:7572: checking for fork
configure:7629: gcc -o conftest -g -O2   conftest.c  >&5
conftest.c:64: warning: conflicting types for built-in function 'fork'
configure:7635: $? = 0
configure:7638: test -z 			 || test ! -s conftest.err
configure:7641: $? = 0
configure:7644: test -s conftest
configure:7647: $? = 0
configure:7659: result: yes
configure:7572: checking for vfork
configure:7629: gcc -o conftest -g -O2   conftest.c  >&5
configure:7635: $? = 0
configure:7638: test -z 			 || test ! -s conftest.err
configure:7641: $? = 0
configure:7644: test -s conftest
configure:7647: $? = 0
configure:7659: result: yes
configure:7670: checking for working fork
configure:7693: gcc -o conftest -g -O2   conftest.c  >&5
conftest.c: In function 'main':
conftest.c:10: warning: incompatible implicit declaration of built-in function 'exit'
configure:7696: $? = 0
configure:7698: ./conftest
configure:7701: $? = 0
configure:7715: result: yes
configure:7736: checking for working vfork
configure:7869: result: yes
configure:7916: checking sys/time.h usability
configure:7928: gcc -c -g -O2  conftest.c >&5
configure:7934: $? = 0
configure:7937: test -z 			 || test ! -s conftest.err
configure:7940: $? = 0
configure:7943: test -s conftest.o
configure:7946: $? = 0
configure:7956: result: yes
configure:7960: checking sys/time.h presence
configure:7970: gcc -E  conftest.c
configure:7976: $? = 0
configure:7996: result: yes
configure:8031: checking for sys/time.h
configure:8038: result: yes
configure:7916: checking sys/times.h usability
configure:7928: gcc -c -g -O2  conftest.c >&5
configure:7934: $? = 0
configure:7937: test -z 			 || test ! -s conftest.err
configure:7940: $? = 0
configure:7943: test -s conftest.o
configure:7946: $? = 0
configure:7956: result: yes
configure:7960: checking sys/times.h presence
configure:7970: gcc -E  conftest.c
configure:7976: $? = 0
configure:7996: result: yes
configure:8031: checking for sys/times.h
configure:8038: result: yes
configure:8055: checking for sys/resource.h
configure:8078: gcc -c -g -O2  conftest.c >&5
configure:8084: $? = 0
configure:8087: test -z 			 || test ! -s conftest.err
configure:8090: $? = 0
configure:8093: test -s conftest.o
configure:8096: $? = 0
configure:8107: result: yes
configure:8122: checking for times
configure:8179: gcc -o conftest -g -O2   conftest.c  >&5
configure:8185: $? = 0
configure:8188: test -z 			 || test ! -s conftest.err
configure:8191: $? = 0
configure:8194: test -s conftest
configure:8197: $? = 0
configure:8209: result: yes
configure:8220: checking whether getrusage is declared
configure:8255: gcc -c -g -O2  conftest.c >&5
configure:8261: $? = 0
configure:8264: test -z 			 || test ! -s conftest.err
configure:8267: $? = 0
configure:8270: test -s conftest.o
configure:8273: $? = 0
configure:8284: result: yes
configure:8300: checking whether times is declared
configure:8335: gcc -c -g -O2  conftest.c >&5
configure:8341: $? = 0
configure:8344: test -z 			 || test ! -s conftest.err
configure:8347: $? = 0
configure:8350: test -s conftest.o
configure:8353: $? = 0
configure:8364: result: yes
configure:8380: checking whether clock is declared
configure:8415: gcc -c -g -O2  conftest.c >&5
conftest.c: In function 'main':
conftest.c:99: error: 'clock' undeclared (first use in this function)
conftest.c:99: error: (Each undeclared identifier is reported only once
conftest.c:99: error: for each function it appears in.)
configure:8421: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME "GNU Bison"
| #define PACKAGE_TARNAME "bison"
| #define PACKAGE_VERSION "2.3"
| #define PACKAGE_STRING "GNU Bison 2.3"
| #define PACKAGE_BUGREPORT "bug-bison@gnu.org"
| #define PACKAGE "bison"
| #define VERSION "2.3"
| #define _GNU_SOURCE 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define YYTEXT_POINTER 1
| #define M4 "/usr/bin/m4"
| #define HAVE_LOCALE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_WCTYPE_H 1
| #define HAVE__BOOL 1
| #define HAVE_STDBOOL_H 1
| #define HAVE_UINTPTR_T 1
| #define HAVE_SETLOCALE 1
| #define HAVE_ISASCII 1
| #define HAVE_ISWPRINT 1
| #define HAVE_MBSINIT 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_DUP2 1
| #define HAVE_WAITPID 1
| #define HAVE_UNISTD_H 1
| #define HAVE_FORK 1
| #define HAVE_VFORK 1
| #define HAVE_WORKING_VFORK 1
| #define HAVE_WORKING_FORK 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TIMES_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_TIMES 1
| #define HAVE_DECL_GETRUSAGE 1
| #define HAVE_DECL_TIMES 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #if HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #if HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #if STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # if HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #if HAVE_STRING_H
| # if !STDC_HEADERS && HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #if HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #if HAVE_INTTYPES_H
| # include <inttypes.h>
| #else
| # if HAVE_STDINT_H
| #  include <stdint.h>
| # endif
| #endif
| #if HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #if HAVE_SYS_TIME_H
| # include <sys/time.h>
| #endif
| #if HAVE_SYS_TIMES_H
| # include <sys/times.h>
| #endif
| #if HAVE_SYS_RESOURCE_H
| # include <sys/resource.h>
| #endif
| 
| 
| int
| main ()
| {
| #ifndef clock
|   char *p = (char *) clock;
| #endif
| 
|   ;
|   return 0;
| }
configure:8444: result: no
configure:8460: checking whether sysconf is declared
configure:8495: gcc -c -g -O2  conftest.c >&5
configure:8501: $? = 0
configure:8504: test -z 			 || test ! -s conftest.err
configure:8507: $? = 0
configure:8510: test -s conftest.o
configure:8513: $? = 0
configure:8524: result: yes
configure:8543: checking for clock_t
configure:8578: gcc -c -g -O2  conftest.c >&5
configure:8584: $? = 0
configure:8587: test -z 			 || test ! -s conftest.err
configure:8590: $? = 0
configure:8593: test -s conftest.o
configure:8596: $? = 0
configure:8607: result: yes
configure:8617: checking for struct tms
configure:8652: gcc -c -g -O2  conftest.c >&5
configure:8658: $? = 0
configure:8661: test -z 			 || test ! -s conftest.err
configure:8664: $? = 0
configure:8667: test -s conftest.o
configure:8670: $? = 0
configure:8681: result: yes
configure:8696: checking whether system is Windows or MSDOS
configure:8720: gcc -c -g -O2  conftest.c >&5
conftest.c: In function 'main':
conftest.c:59: error: 'neither' undeclared (first use in this function)
conftest.c:59: error: (Each undeclared identifier is reported only once
conftest.c:59: error: for each function it appears in.)
conftest.c:59: error: syntax error before 'MSDOS'
configure:8726: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME "GNU Bison"
| #define PACKAGE_TARNAME "bison"
| #define PACKAGE_VERSION "2.3"
| #define PACKAGE_STRING "GNU Bison 2.3"
| #define PACKAGE_BUGREPORT "bug-bison@gnu.org"
| #define PACKAGE "bison"
| #define VERSION "2.3"
| #define _GNU_SOURCE 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define YYTEXT_POINTER 1
| #define M4 "/usr/bin/m4"
| #define HAVE_LOCALE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_WCTYPE_H 1
| #define HAVE__BOOL 1
| #define HAVE_STDBOOL_H 1
| #define HAVE_UINTPTR_T 1
| #define HAVE_SETLOCALE 1
| #define HAVE_ISASCII 1
| #define HAVE_ISWPRINT 1
| #define HAVE_MBSINIT 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_DUP2 1
| #define HAVE_WAITPID 1
| #define HAVE_UNISTD_H 1
| #define HAVE_FORK 1
| #define HAVE_VFORK 1
| #define HAVE_WORKING_VFORK 1
| #define HAVE_WORKING_FORK 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TIMES_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_TIMES 1
| #define HAVE_DECL_GETRUSAGE 1
| #define HAVE_DECL_TIMES 1
| #define HAVE_DECL_CLOCK 0
| #define HAVE_DECL_SYSCONF 1
| #define HAVE_CLOCK_T 1
| #define HAVE_STRUCT_TMS 1
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| #if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __CYGWIN__
| neither MSDOS nor Windows
| #endif
|   ;
|   return 0;
| }
configure:8750: result: no
configure:8779: checking whether strerror_r is declared
configure:8803: gcc -c -g -O2  conftest.c >&5
configure:8809: $? = 0
configure:8812: test -z 			 || test ! -s conftest.err
configure:8815: $? = 0
configure:8818: test -s conftest.o
configure:8821: $? = 0
configure:8832: result: yes
configure:8854: checking for strerror_r
configure:8911: gcc -o conftest -g -O2   conftest.c  >&5
configure:8917: $? = 0
configure:8920: test -z 			 || test ! -s conftest.err
configure:8923: $? = 0
configure:8926: test -s conftest
configure:8929: $? = 0
configure:8941: result: yes
configure:8951: checking whether strerror_r returns char *
configure:8979: gcc -c -g -O2  conftest.c >&5
configure:8985: $? = 0
configure:8988: test -z 			 || test ! -s conftest.err
configure:8991: $? = 0
configure:8994: test -s conftest.o
configure:8997: $? = 0
configure:9057: result: yes
configure:9083: checking getopt.h usability
configure:9095: gcc -c -g -O2  conftest.c >&5
configure:9101: $? = 0
configure:9104: test -z 			 || test ! -s conftest.err
configure:9107: $? = 0
configure:9110: test -s conftest.o
configure:9113: $? = 0
configure:9123: result: yes
configure:9127: checking getopt.h presence
configure:9137: gcc -E  conftest.c
configure:9143: $? = 0
configure:9163: result: yes
configure:9198: checking for getopt.h
configure:9205: result: yes
configure:9227: checking for getopt_long_only
configure:9284: gcc -o conftest -g -O2   conftest.c  >&5
configure:9290: $? = 0
configure:9293: test -z 			 || test ! -s conftest.err
configure:9296: $? = 0
configure:9299: test -s conftest
configure:9302: $? = 0
configure:9314: result: yes
configure:9329: checking whether optreset is declared
configure:9354: gcc -c -g -O2  conftest.c >&5
conftest.c: In function 'main':
conftest.c:67: error: 'optreset' undeclared (first use in this function)
conftest.c:67: error: (Each undeclared identifier is reported only once
conftest.c:67: error: for each function it appears in.)
configure:9360: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME "GNU Bison"
| #define PACKAGE_TARNAME "bison"
| #define PACKAGE_VERSION "2.3"
| #define PACKAGE_STRING "GNU Bison 2.3"
| #define PACKAGE_BUGREPORT "bug-bison@gnu.org"
| #define PACKAGE "bison"
| #define VERSION "2.3"
| #define _GNU_SOURCE 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define YYTEXT_POINTER 1
| #define M4 "/usr/bin/m4"
| #define HAVE_LOCALE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_WCTYPE_H 1
| #define HAVE__BOOL 1
| #define HAVE_STDBOOL_H 1
| #define HAVE_UINTPTR_T 1
| #define HAVE_SETLOCALE 1
| #define HAVE_ISASCII 1
| #define HAVE_ISWPRINT 1
| #define HAVE_MBSINIT 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_DUP2 1
| #define HAVE_WAITPID 1
| #define HAVE_UNISTD_H 1
| #define HAVE_FORK 1
| #define HAVE_VFORK 1
| #define HAVE_WORKING_VFORK 1
| #define HAVE_WORKING_FORK 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TIMES_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_TIMES 1
| #define HAVE_DECL_GETRUSAGE 1
| #define HAVE_DECL_TIMES 1
| #define HAVE_DECL_CLOCK 0
| #define HAVE_DECL_SYSCONF 1
| #define HAVE_CLOCK_T 1
| #define HAVE_STRUCT_TMS 1
| #define FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX 0
| #define FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR 0
| #define HAVE_DECL_STRERROR_R 1
| #define HAVE_STRERROR_R 1
| #define STRERROR_R_CHAR_P 1
| #define HAVE_GETOPT_H 1
| #define HAVE_GETOPT_LONG_ONLY 1
| /* end confdefs.h.  */
| #include <getopt.h>
| 
| int
| main ()
| {
| #ifndef optreset
|   char *p = (char *) optreset;
| #endif
| 
|   ;
|   return 0;
| }
configure:9383: result: no
configure:9392: checking for working GNU getopt function
configure:9483: gcc -o conftest -g -O2   conftest.c  >&5
configure:9486: $? = 0
configure:9488: ./conftest
conftest: invalid option -- +
configure:9491: $? = 0
configure:9505: result: yes
configure:9513: checking whether getenv is declared
configure:9537: gcc -c -g -O2  conftest.c >&5
configure:9543: $? = 0
configure:9546: test -z 			 || test ! -s conftest.err
configure:9549: $? = 0
configure:9552: test -s conftest.o
configure:9555: $? = 0
configure:9566: result: yes
configure:9600: checking whether NLS is requested
configure:9609: result: yes
configure:9647: checking for msgfmt
configure: trying /usr/bin/msgfmt...
0 translated messages.
configure:9679: result: /usr/bin/msgfmt
configure:9688: checking for gmsgfmt
configure:9719: result: /usr/bin/msgfmt
configure:9758: checking for xgettext
configure: trying /usr/bin/xgettext...
/usr/bin/xgettext: warning: file `/dev/null' extension `' is unknown; will try C
configure:9790: result: /usr/bin/xgettext
configure:9830: checking for msgmerge
configure: trying /usr/bin/msgmerge...
configure:9861: result: /usr/bin/msgmerge
configure:9918: checking build system type
configure:9936: result: x86_64-unknown-linux-gnu
configure:9944: checking host system type
configure:9958: result: x86_64-unknown-linux-gnu
configure:9990: checking for ld used by GCC
configure:10054: result: /usr/bin/ld
configure:10063: checking if the linker (/usr/bin/ld) is GNU ld
configure:10076: result: yes
configure:10083: checking for shared library run path origin
configure:10096: result: done
configure:10547: checking for inttypes.h
configure:10569: gcc -c -g -O2  conftest.c >&5
configure:10575: $? = 0
configure:10578: test -z 			 || test ! -s conftest.err
configure:10581: $? = 0
configure:10584: test -s conftest.o
configure:10587: $? = 0
configure:10598: result: yes
configure:10609: checking for stdint.h
configure:10631: gcc -c -g -O2  conftest.c >&5
configure:10637: $? = 0
configure:10640: test -z 			 || test ! -s conftest.err
configure:10643: $? = 0
configure:10646: test -s conftest.o
configure:10649: $? = 0
configure:10660: result: yes
configure:10671: checking for unsigned long long
configure:10693: gcc -o conftest -g -O2   conftest.c  >&5
configure:10699: $? = 0
configure:10702: test -z 			 || test ! -s conftest.err
configure:10705: $? = 0
configure:10708: test -s conftest
configure:10711: $? = 0
configure:10723: result: yes
configure:10755: checking whether strdup is declared
configure:10779: gcc -c -g -O2  conftest.c >&5
configure:10785: $? = 0
configure:10788: test -z 			 || test ! -s conftest.err
configure:10791: $? = 0
configure:10794: test -s conftest.o
configure:10797: $? = 0
configure:10808: result: yes
configure:10828: checking whether strndup is declared
configure:10852: gcc -c -g -O2  conftest.c >&5
configure:10858: $? = 0
configure:10861: test -z 			 || test ! -s conftest.err
configure:10864: $? = 0
configure:10867: test -s conftest.o
configure:10870: $? = 0
configure:10881: result: yes
configure:10901: checking whether strnlen is declared
configure:10925: gcc -c -g -O2  conftest.c >&5
configure:10931: $? = 0
configure:10934: test -z 			 || test ! -s conftest.err
configure:10937: $? = 0
configure:10940: test -s conftest.o
configure:10943: $? = 0
configure:10954: result: yes
configure:10974: checking whether clearerr_unlocked is declared
configure:10998: gcc -c -g -O2  conftest.c >&5
configure:11004: $? = 0
configure:11007: test -z 			 || test ! -s conftest.err
configure:11010: $? = 0
configure:11013: test -s conftest.o
configure:11016: $? = 0
configure:11027: result: yes
configure:11047: checking whether feof_unlocked is declared
configure:11071: gcc -c -g -O2  conftest.c >&5
configure:11077: $? = 0
configure:11080: test -z 			 || test ! -s conftest.err
configure:11083: $? = 0
configure:11086: test -s conftest.o
configure:11089: $? = 0
configure:11100: result: yes
configure:11120: checking whether ferror_unlocked is declared
configure:11144: gcc -c -g -O2  conftest.c >&5
configure:11150: $? = 0
configure:11153: test -z 			 || test ! -s conftest.err
configure:11156: $? = 0
configure:11159: test -s conftest.o
configure:11162: $? = 0
configure:11173: result: yes
configure:11193: checking whether fflush_unlocked is declared
configure:11217: gcc -c -g -O2  conftest.c >&5
configure:11223: $? = 0
configure:11226: test -z 			 || test ! -s conftest.err
configure:11229: $? = 0
configure:11232: test -s conftest.o
configure:11235: $? = 0
configure:11246: result: yes
configure:11266: checking whether fgets_unlocked is declared
configure:11290: gcc -c -g -O2  conftest.c >&5
configure:11296: $? = 0
configure:11299: test -z 			 || test ! -s conftest.err
configure:11302: $? = 0
configure:11305: test -s conftest.o
configure:11308: $? = 0
configure:11319: result: yes
configure:11339: checking whether fputc_unlocked is declared
configure:11363: gcc -c -g -O2  conftest.c >&5
configure:11369: $? = 0
configure:11372: test -z 			 || test ! -s conftest.err
configure:11375: $? = 0
configure:11378: test -s conftest.o
configure:11381: $? = 0
configure:11392: result: yes
configure:11412: checking whether fputs_unlocked is declared
configure:11436: gcc -c -g -O2  conftest.c >&5
configure:11442: $? = 0
configure:11445: test -z 			 || test ! -s conftest.err
configure:11448: $? = 0
configure:11451: test -s conftest.o
configure:11454: $? = 0
configure:11465: result: yes
configure:11485: checking whether fread_unlocked is declared
configure:11509: gcc -c -g -O2  conftest.c >&5
configure:11515: $? = 0
configure:11518: test -z 			 || test ! -s conftest.err
configure:11521: $? = 0
configure:11524: test -s conftest.o
configure:11527: $? = 0
configure:11538: result: yes
configure:11558: checking whether fwrite_unlocked is declared
configure:11582: gcc -c -g -O2  conftest.c >&5
configure:11588: $? = 0
configure:11591: test -z 			 || test ! -s conftest.err
configure:11594: $? = 0
configure:11597: test -s conftest.o
configure:11600: $? = 0
configure:11611: result: yes
configure:11631: checking whether getc_unlocked is declared
configure:11655: gcc -c -g -O2  conftest.c >&5
configure:11661: $? = 0
configure:11664: test -z 			 || test ! -s conftest.err
configure:11667: $? = 0
configure:11670: test -s conftest.o
configure:11673: $? = 0
configure:11684: result: yes
configure:11704: checking whether getchar_unlocked is declared
configure:11728: gcc -c -g -O2  conftest.c >&5
configure:11734: $? = 0
configure:11737: test -z 			 || test ! -s conftest.err
configure:11740: $? = 0
configure:11743: test -s conftest.o
configure:11746: $? = 0
configure:11757: result: yes
configure:11777: checking whether putc_unlocked is declared
configure:11801: gcc -c -g -O2  conftest.c >&5
configure:11807: $? = 0
configure:11810: test -z 			 || test ! -s conftest.err
configure:11813: $? = 0
configure:11816: test -s conftest.o
configure:11819: $? = 0
configure:11830: result: yes
configure:11850: checking whether putchar_unlocked is declared
configure:11874: gcc -c -g -O2  conftest.c >&5
configure:11880: $? = 0
configure:11883: test -z 			 || test ! -s conftest.err
configure:11886: $? = 0
configure:11889: test -s conftest.o
configure:11892: $? = 0
configure:11903: result: yes
configure:11940: checking for error_at_line
configure:11961: gcc -o conftest -g -O2   conftest.c  >&5
configure:11967: $? = 0
configure:11970: test -z 			 || test ! -s conftest.err
configure:11973: $? = 0
configure:11976: test -s conftest
configure:11979: $? = 0
configure:11991: result: yes
configure:12085: checking for CFPreferencesCopyAppValue
configure:12110: gcc -o conftest -g -O2  -I/System/Library/Frameworks/CoreFoundation.framework/Headers  conftest.c  -framework CoreFoundation >&5
gcc: CoreFoundation: No such file or directory
cc1: error: unrecognized command line option "-framework"
configure:12116: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME "GNU Bison"
| #define PACKAGE_TARNAME "bison"
| #define PACKAGE_VERSION "2.3"
| #define PACKAGE_STRING "GNU Bison 2.3"
| #define PACKAGE_BUGREPORT "bug-bison@gnu.org"
| #define PACKAGE "bison"
| #define VERSION "2.3"
| #define _GNU_SOURCE 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define YYTEXT_POINTER 1
| #define M4 "/usr/bin/m4"
| #define HAVE_LOCALE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_WCTYPE_H 1
| #define HAVE__BOOL 1
| #define HAVE_STDBOOL_H 1
| #define HAVE_UINTPTR_T 1
| #define HAVE_SETLOCALE 1
| #define HAVE_ISASCII 1
| #define HAVE_ISWPRINT 1
| #define HAVE_MBSINIT 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_DUP2 1
| #define HAVE_WAITPID 1
| #define HAVE_UNISTD_H 1
| #define HAVE_FORK 1
| #define HAVE_VFORK 1
| #define HAVE_WORKING_VFORK 1
| #define HAVE_WORKING_FORK 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TIMES_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_TIMES 1
| #define HAVE_DECL_GETRUSAGE 1
| #define HAVE_DECL_TIMES 1
| #define HAVE_DECL_CLOCK 0
| #define HAVE_DECL_SYSCONF 1
| #define HAVE_CLOCK_T 1
| #define HAVE_STRUCT_TMS 1
| #define FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX 0
| #define FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR 0
| #define HAVE_DECL_STRERROR_R 1
| #define HAVE_STRERROR_R 1
| #define STRERROR_R_CHAR_P 1
| #define HAVE_GETOPT_H 1
| #define HAVE_GETOPT_LONG_ONLY 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_INTTYPES_H_WITH_UINTMAX 1
| #define HAVE_STDINT_H_WITH_UINTMAX 1
| #define HAVE_UNSIGNED_LONG_LONG 1
| #define HAVE_UINTMAX_T 1
| #define HAVE_DECL_STRDUP 1
| #define HAVE_DECL_STRNDUP 1
| #define HAVE_DECL_STRNLEN 1
| #define HAVE_DECL_CLEARERR_UNLOCKED 1
| #define HAVE_DECL_FEOF_UNLOCKED 1
| #define HAVE_DECL_FERROR_UNLOCKED 1
| #define HAVE_DECL_FFLUSH_UNLOCKED 1
| #define HAVE_DECL_FGETS_UNLOCKED 1
| #define HAVE_DECL_FPUTC_UNLOCKED 1
| #define HAVE_DECL_FPUTS_UNLOCKED 1
| #define HAVE_DECL_FREAD_UNLOCKED 1
| #define HAVE_DECL_FWRITE_UNLOCKED 1
| #define HAVE_DECL_GETC_UNLOCKED 1
| #define HAVE_DECL_GETCHAR_UNLOCKED 1
| #define HAVE_DECL_PUTC_UNLOCKED 1
| #define HAVE_DECL_PUTCHAR_UNLOCKED 1
| /* end confdefs.h.  */
| #include <CFPreferences.h>
| int
| main ()
| {
| CFPreferencesCopyAppValue(NULL, NULL)
|   ;
|   return 0;
| }
configure:12142: result: no
configure:12151: checking for CFLocaleCopyCurrent
configure:12176: gcc -o conftest -g -O2  -I/System/Library/Frameworks/CoreFoundation.framework/Headers  conftest.c  -framework CoreFoundation >&5
gcc: CoreFoundation: No such file or directory
cc1: error: unrecognized command line option "-framework"
configure:12182: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME "GNU Bison"
| #define PACKAGE_TARNAME "bison"
| #define PACKAGE_VERSION "2.3"
| #define PACKAGE_STRING "GNU Bison 2.3"
| #define PACKAGE_BUGREPORT "bug-bison@gnu.org"
| #define PACKAGE "bison"
| #define VERSION "2.3"
| #define _GNU_SOURCE 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define YYTEXT_POINTER 1
| #define M4 "/usr/bin/m4"
| #define HAVE_LOCALE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_WCTYPE_H 1
| #define HAVE__BOOL 1
| #define HAVE_STDBOOL_H 1
| #define HAVE_UINTPTR_T 1
| #define HAVE_SETLOCALE 1
| #define HAVE_ISASCII 1
| #define HAVE_ISWPRINT 1
| #define HAVE_MBSINIT 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_DUP2 1
| #define HAVE_WAITPID 1
| #define HAVE_UNISTD_H 1
| #define HAVE_FORK 1
| #define HAVE_VFORK 1
| #define HAVE_WORKING_VFORK 1
| #define HAVE_WORKING_FORK 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TIMES_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_TIMES 1
| #define HAVE_DECL_GETRUSAGE 1
| #define HAVE_DECL_TIMES 1
| #define HAVE_DECL_CLOCK 0
| #define HAVE_DECL_SYSCONF 1
| #define HAVE_CLOCK_T 1
| #define HAVE_STRUCT_TMS 1
| #define FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX 0
| #define FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR 0
| #define HAVE_DECL_STRERROR_R 1
| #define HAVE_STRERROR_R 1
| #define STRERROR_R_CHAR_P 1
| #define HAVE_GETOPT_H 1
| #define HAVE_GETOPT_LONG_ONLY 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_INTTYPES_H_WITH_UINTMAX 1
| #define HAVE_STDINT_H_WITH_UINTMAX 1
| #define HAVE_UNSIGNED_LONG_LONG 1
| #define HAVE_UINTMAX_T 1
| #define HAVE_DECL_STRDUP 1
| #define HAVE_DECL_STRNDUP 1
| #define HAVE_DECL_STRNLEN 1
| #define HAVE_DECL_CLEARERR_UNLOCKED 1
| #define HAVE_DECL_FEOF_UNLOCKED 1
| #define HAVE_DECL_FERROR_UNLOCKED 1
| #define HAVE_DECL_FFLUSH_UNLOCKED 1
| #define HAVE_DECL_FGETS_UNLOCKED 1
| #define HAVE_DECL_FPUTC_UNLOCKED 1
| #define HAVE_DECL_FPUTS_UNLOCKED 1
| #define HAVE_DECL_FREAD_UNLOCKED 1
| #define HAVE_DECL_FWRITE_UNLOCKED 1
| #define HAVE_DECL_GETC_UNLOCKED 1
| #define HAVE_DECL_GETCHAR_UNLOCKED 1
| #define HAVE_DECL_PUTC_UNLOCKED 1
| #define HAVE_DECL_PUTCHAR_UNLOCKED 1
| /* end confdefs.h.  */
| #include <CFLocale.h>
| int
| main ()
| {
| CFLocaleCopyCurrent();
|   ;
|   return 0;
| }
configure:12208: result: no
configure:12225: checking whether NLS is requested
configure:12234: result: yes
configure:12252: checking for GNU gettext in libc
configure:12276: gcc -o conftest -g -O2   conftest.c  >&5
configure:12282: $? = 0
configure:12285: test -z 			 || test ! -s conftest.err
configure:12288: $? = 0
configure:12291: test -s conftest
configure:12294: $? = 0
configure:12306: result: yes
configure:13010: checking whether to use NLS
configure:13012: result: yes
configure:13015: checking where the gettext function comes from
configure:13026: result: libc
configure:13122: checking for stdlib.h
configure:13127: result: yes
configure:13266: checking for GNU libc compatible malloc
configure:13295: gcc -o conftest -g -O2   conftest.c  >&5
configure:13298: $? = 0
configure:13300: ./conftest
configure:13303: $? = 0
configure:13317: result: yes
configure:13377: checking for iswcntrl
configure:13434: gcc -o conftest -g -O2   conftest.c  >&5
conftest.c:111: warning: conflicting types for built-in function 'iswcntrl'
configure:13440: $? = 0
configure:13443: test -z 			 || test ! -s conftest.err
configure:13446: $? = 0
configure:13449: test -s conftest
configure:13452: $? = 0
configure:13464: result: yes
configure:13377: checking for wcwidth
configure:13434: gcc -o conftest -g -O2   conftest.c  >&5
configure:13440: $? = 0
configure:13443: test -z 			 || test ! -s conftest.err
configure:13446: $? = 0
configure:13449: test -s conftest
configure:13452: $? = 0
configure:13464: result: yes
configure:13475: checking whether mbrtowc and mbstate_t are properly declared
configure:13500: gcc -o conftest -g -O2   conftest.c  >&5
configure:13506: $? = 0
configure:13509: test -z 			 || test ! -s conftest.err
configure:13512: $? = 0
configure:13515: test -s conftest
configure:13518: $? = 0
configure:13530: result: yes
configure:13541: checking whether wcwidth is declared
configure:13574: gcc -c -g -O2  conftest.c >&5
configure:13580: $? = 0
configure:13583: test -z 			 || test ! -s conftest.err
configure:13586: $? = 0
configure:13589: test -s conftest.o
configure:13592: $? = 0
configure:13603: result: yes
configure:13616: checking whether mbswidth is declared in <wchar.h>
configure:13643: gcc -c -g -O2  conftest.c >&5
conftest.c: In function 'main':
conftest.c:100: error: 'mbswidth' undeclared (first use in this function)
conftest.c:100: error: (Each undeclared identifier is reported only once
conftest.c:100: error: for each function it appears in.)
configure:13649: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME "GNU Bison"
| #define PACKAGE_TARNAME "bison"
| #define PACKAGE_VERSION "2.3"
| #define PACKAGE_STRING "GNU Bison 2.3"
| #define PACKAGE_BUGREPORT "bug-bison@gnu.org"
| #define PACKAGE "bison"
| #define VERSION "2.3"
| #define _GNU_SOURCE 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define YYTEXT_POINTER 1
| #define M4 "/usr/bin/m4"
| #define HAVE_LOCALE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_WCTYPE_H 1
| #define HAVE__BOOL 1
| #define HAVE_STDBOOL_H 1
| #define HAVE_UINTPTR_T 1
| #define HAVE_SETLOCALE 1
| #define HAVE_ISASCII 1
| #define HAVE_ISWPRINT 1
| #define HAVE_MBSINIT 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_DUP2 1
| #define HAVE_WAITPID 1
| #define HAVE_UNISTD_H 1
| #define HAVE_FORK 1
| #define HAVE_VFORK 1
| #define HAVE_WORKING_VFORK 1
| #define HAVE_WORKING_FORK 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TIMES_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_TIMES 1
| #define HAVE_DECL_GETRUSAGE 1
| #define HAVE_DECL_TIMES 1
| #define HAVE_DECL_CLOCK 0
| #define HAVE_DECL_SYSCONF 1
| #define HAVE_CLOCK_T 1
| #define HAVE_STRUCT_TMS 1
| #define FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX 0
| #define FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR 0
| #define HAVE_DECL_STRERROR_R 1
| #define HAVE_STRERROR_R 1
| #define STRERROR_R_CHAR_P 1
| #define HAVE_GETOPT_H 1
| #define HAVE_GETOPT_LONG_ONLY 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_INTTYPES_H_WITH_UINTMAX 1
| #define HAVE_STDINT_H_WITH_UINTMAX 1
| #define HAVE_UNSIGNED_LONG_LONG 1
| #define HAVE_UINTMAX_T 1
| #define HAVE_DECL_STRDUP 1
| #define HAVE_DECL_STRNDUP 1
| #define HAVE_DECL_STRNLEN 1
| #define HAVE_DECL_CLEARERR_UNLOCKED 1
| #define HAVE_DECL_FEOF_UNLOCKED 1
| #define HAVE_DECL_FERROR_UNLOCKED 1
| #define HAVE_DECL_FFLUSH_UNLOCKED 1
| #define HAVE_DECL_FGETS_UNLOCKED 1
| #define HAVE_DECL_FPUTC_UNLOCKED 1
| #define HAVE_DECL_FPUTS_UNLOCKED 1
| #define HAVE_DECL_FREAD_UNLOCKED 1
| #define HAVE_DECL_FWRITE_UNLOCKED 1
| #define HAVE_DECL_GETC_UNLOCKED 1
| #define HAVE_DECL_GETCHAR_UNLOCKED 1
| #define HAVE_DECL_PUTC_UNLOCKED 1
| #define HAVE_DECL_PUTCHAR_UNLOCKED 1
| #define ENABLE_NLS 1
| #define HAVE_GETTEXT 1
| #define HAVE_DCGETTEXT 1
| #define HAVE_STDLIB_H 1
| #define HAVE_MALLOC 1
| #define HAVE_ISWCNTRL 1
| #define HAVE_WCWIDTH 1
| #define HAVE_MBRTOWC 1
| #define HAVE_DECL_WCWIDTH 1
| /* end confdefs.h.  */
| 
| #if HAVE_WCHAR_H
| # include <wchar.h>
| #endif
| 
| int
| main ()
| {
| 
|   char *p = (char *) mbswidth;
| 
|   ;
|   return 0;
| }
configure:13672: result: no
configure:13685: checking for mbstate_t
configure:13707: gcc -c -g -O2  conftest.c >&5
configure:13713: $? = 0
configure:13716: test -z 			 || test ! -s conftest.err
configure:13719: $? = 0
configure:13722: test -s conftest.o
configure:13725: $? = 0
configure:13736: result: yes
configure:13754: checking for obstacks
configure:13775: gcc -o conftest -g -O2   conftest.c  >&5
configure:13781: $? = 0
configure:13784: test -z 			 || test ! -s conftest.err
configure:13787: $? = 0
configure:13790: test -s conftest
configure:13793: $? = 0
configure:13805: result: yes
configure:13878: checking for mbstate_t
configure:13929: result: yes
configure:13945: checking whether mbrtowc and mbstate_t are properly declared
configure:14000: result: yes
configure:14051: checking for stpcpy
configure:14108: gcc -o conftest -g -O2   conftest.c  >&5
conftest.c:120: warning: conflicting types for built-in function 'stpcpy'
configure:14114: $? = 0
configure:14117: test -z 			 || test ! -s conftest.err
configure:14120: $? = 0
configure:14123: test -s conftest
configure:14126: $? = 0
configure:14138: result: yes
configure:14172: checking for strdup
configure:14229: gcc -o conftest -g -O2   conftest.c  >&5
conftest.c:121: warning: conflicting types for built-in function 'strdup'
configure:14235: $? = 0
configure:14238: test -z 			 || test ! -s conftest.err
configure:14241: $? = 0
configure:14244: test -s conftest
configure:14247: $? = 0
configure:14259: result: yes
configure:14294: checking for strerror
configure:14351: gcc -o conftest -g -O2   conftest.c  >&5
configure:14357: $? = 0
configure:14360: test -z 			 || test ! -s conftest.err
configure:14363: $? = 0
configure:14366: test -s conftest
configure:14369: $? = 0
configure:14381: result: yes
configure:14422: checking for working strndup
configure:14474: gcc -o conftest -g -O2   conftest.c  >&5
configure:14477: $? = 0
configure:14479: ./conftest
configure:14482: $? = 0
configure:14496: result: yes
configure:14527: checking for working strnlen
configure:14566: gcc -o conftest -g -O2   conftest.c  >&5
configure:14569: $? = 0
configure:14571: ./conftest
configure:14574: $? = 0
configure:14588: result: yes
configure:14626: checking for strtol
configure:14683: gcc -o conftest -g -O2   conftest.c  >&5
configure:14689: $? = 0
configure:14692: test -z 			 || test ! -s conftest.err
configure:14695: $? = 0
configure:14698: test -s conftest
configure:14701: $? = 0
configure:14713: result: yes
configure:14752: checking for strtoul
configure:14809: gcc -o conftest -g -O2   conftest.c  >&5
configure:14815: $? = 0
configure:14818: test -z 			 || test ! -s conftest.err
configure:14821: $? = 0
configure:14824: test -s conftest
configure:14827: $? = 0
configure:14839: result: yes
configure:14884: checking for strverscmp
configure:14941: gcc -o conftest -g -O2   conftest.c  >&5
configure:14947: $? = 0
configure:14950: test -z 			 || test ! -s conftest.err
configure:14953: $? = 0
configure:14956: test -s conftest
configure:14959: $? = 0
configure:14971: result: yes
configure:15004: checking for unistd.h
configure:15009: result: yes
configure:15386: checking for valgrind
configure:15415: result: no
configure:15474: checking for g++
configure:15490: found /usr/bin/g++
configure:15500: result: g++
configure:15516: checking for C++ compiler version
configure:15519: g++ --version </dev/null >&5
g++ (GCC) 4.0.3 (Ubuntu 4.0.3-1ubuntu5)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:15522: $? = 0
configure:15524: g++ -v </dev/null >&5
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.0 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-awt=gtk-default --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --disable-werror --with-tune=pentium4 --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.0.3 (Ubuntu 4.0.3-1ubuntu5)
configure:15527: $? = 0
configure:15529: g++ -V </dev/null >&5
g++: '-V' option must have argument
configure:15532: $? = 1
configure:15535: checking whether we are using the GNU C++ compiler
configure:15559: g++ -c   conftest.cc >&5
configure:15565: $? = 0
configure:15568: test -z 			 || test ! -s conftest.err
configure:15571: $? = 0
configure:15574: test -s conftest.o
configure:15577: $? = 0
configure:15590: result: yes
configure:15596: checking whether g++ accepts -g
configure:15617: g++ -c -g  conftest.cc >&5
configure:15623: $? = 0
configure:15626: test -z 			 || test ! -s conftest.err
configure:15629: $? = 0
configure:15632: test -s conftest.o
configure:15635: $? = 0
configure:15646: result: yes
configure:15688: g++ -c -g -O2  conftest.cc >&5
configure:15694: $? = 0
configure:15697: test -z 			 || test ! -s conftest.err
configure:15700: $? = 0
configure:15703: test -s conftest.o
configure:15706: $? = 0
configure:15732: g++ -c -g -O2  conftest.cc >&5
conftest.cc: In function 'int main()':
conftest.cc:110: error: 'exit' was not declared in this scope
configure:15738: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME "GNU Bison"
| #define PACKAGE_TARNAME "bison"
| #define PACKAGE_VERSION "2.3"
| #define PACKAGE_STRING "GNU Bison 2.3"
| #define PACKAGE_BUGREPORT "bug-bison@gnu.org"
| #define PACKAGE "bison"
| #define VERSION "2.3"
| #define _GNU_SOURCE 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define YYTEXT_POINTER 1
| #define M4 "/usr/bin/m4"
| #define HAVE_LOCALE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_WCTYPE_H 1
| #define HAVE__BOOL 1
| #define HAVE_STDBOOL_H 1
| #define HAVE_UINTPTR_T 1
| #define HAVE_SETLOCALE 1
| #define HAVE_ISASCII 1
| #define HAVE_ISWPRINT 1
| #define HAVE_MBSINIT 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_DUP2 1
| #define HAVE_WAITPID 1
| #define HAVE_UNISTD_H 1
| #define HAVE_FORK 1
| #define HAVE_VFORK 1
| #define HAVE_WORKING_VFORK 1
| #define HAVE_WORKING_FORK 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TIMES_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_TIMES 1
| #define HAVE_DECL_GETRUSAGE 1
| #define HAVE_DECL_TIMES 1
| #define HAVE_DECL_CLOCK 0
| #define HAVE_DECL_SYSCONF 1
| #define HAVE_CLOCK_T 1
| #define HAVE_STRUCT_TMS 1
| #define FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX 0
| #define FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR 0
| #define HAVE_DECL_STRERROR_R 1
| #define HAVE_STRERROR_R 1
| #define STRERROR_R_CHAR_P 1
| #define HAVE_GETOPT_H 1
| #define HAVE_GETOPT_LONG_ONLY 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_INTTYPES_H_WITH_UINTMAX 1
| #define HAVE_STDINT_H_WITH_UINTMAX 1
| #define HAVE_UNSIGNED_LONG_LONG 1
| #define HAVE_UINTMAX_T 1
| #define HAVE_DECL_STRDUP 1
| #define HAVE_DECL_STRNDUP 1
| #define HAVE_DECL_STRNLEN 1
| #define HAVE_DECL_CLEARERR_UNLOCKED 1
| #define HAVE_DECL_FEOF_UNLOCKED 1
| #define HAVE_DECL_FERROR_UNLOCKED 1
| #define HAVE_DECL_FFLUSH_UNLOCKED 1
| #define HAVE_DECL_FGETS_UNLOCKED 1
| #define HAVE_DECL_FPUTC_UNLOCKED 1
| #define HAVE_DECL_FPUTS_UNLOCKED 1
| #define HAVE_DECL_FREAD_UNLOCKED 1
| #define HAVE_DECL_FWRITE_UNLOCKED 1
| #define HAVE_DECL_GETC_UNLOCKED 1
| #define HAVE_DECL_GETCHAR_UNLOCKED 1
| #define HAVE_DECL_PUTC_UNLOCKED 1
| #define HAVE_DECL_PUTCHAR_UNLOCKED 1
| #define ENABLE_NLS 1
| #define HAVE_GETTEXT 1
| #define HAVE_DCGETTEXT 1
| #define HAVE_STDLIB_H 1
| #define HAVE_MALLOC 1
| #define HAVE_ISWCNTRL 1
| #define HAVE_WCWIDTH 1
| #define HAVE_MBRTOWC 1
| #define HAVE_DECL_WCWIDTH 1
| #define HAVE_DECL_MBSWIDTH_IN_WCHAR_H 0
| #define HAVE_MBSTATE_T 1
| #define HAVE_OBSTACK 1
| #define HAVE_MBSTATE_T 1
| #define HAVE_MBRTOWC 1
| #define HAVE_STPCPY 1
| #define HAVE_STRDUP 1
| #define HAVE_STRERROR 1
| #define HAVE_STRNDUP 1
| #define HAVE_STRTOL 1
| #define HAVE_STRTOUL 1
| #define HAVE_STRVERSCMP 1
| #define HAVE_UNISTD_H 1
| #define USE_UNLOCKED_IO 1
| #define YYENABLE_NLS 1
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| exit (42);
|   ;
|   return 0;
| }
configure:15688: g++ -c -g -O2  conftest.cc >&5
configure:15694: $? = 0
configure:15697: test -z 			 || test ! -s conftest.err
configure:15700: $? = 0
configure:15703: test -s conftest.o
configure:15706: $? = 0
configure:15732: g++ -c -g -O2  conftest.cc >&5
configure:15738: $? = 0
configure:15741: test -z 			 || test ! -s conftest.err
configure:15744: $? = 0
configure:15747: test -s conftest.o
configure:15750: $? = 0
configure:15775: checking dependency style of g++
configure:15865: result: gcc3
configure:15884: checking whether g++ builds executables that work
configure:15924: g++ -c -g -O2  conftest.cc >&5
configure:15930: $? = 0
configure:15933: test -z 			 || test ! -s conftest.err
configure:15936: $? = 0
configure:15939: test -s conftest.o
configure:15942: $? = 0
configure:15945: g++ -o conftest -g -O2   conftest.o  >&5
configure:15948: $? = 0
configure:15954: ./conftest
configure:15957: $? = 0
configure:15980: result: yes
configure:16151: creating ./config.status

## ---------------------- ##
## Running config.status. ##
## ---------------------- ##

This file was extended by GNU Bison config.status 2.3, which was
generated by GNU Autoconf 2.59.  Invocation command line was

  CONFIG_FILES    = 
  CONFIG_HEADERS  = 
  CONFIG_LINKS    = 
  CONFIG_COMMANDS = 
  $ ./config.status 

on phanna.cnc.corp.google.com

config.status:802: creating runtime-po/Makefile.in
config.status:802: creating tests/Makefile
config.status:802: creating tests/atlocal
config.status:802: creating tests/bison
config.status:802: creating Makefile
config.status:802: creating build-aux/Makefile
config.status:802: creating po/Makefile.in
config.status:802: creating data/Makefile
config.status:802: creating examples/Makefile
config.status:802: creating examples/calc++/Makefile
config.status:802: creating lib/Makefile
config.status:802: creating src/Makefile
config.status:802: creating doc/Makefile
config.status:872: creating config.h
config.status:1364: executing depfiles commands
config.status:1364: executing default-1 commands
config.status:1364: executing tests/atconfig commands

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_build=x86_64-unknown-linux-gnu
ac_cv_build_alias=x86_64-unknown-linux-gnu
ac_cv_c_compiler_gnu=yes
ac_cv_c_inline=inline
ac_cv_cxx_compiler_gnu=yes
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CXXFLAGS_set=
ac_cv_env_CXXFLAGS_value=
ac_cv_env_CXX_set=
ac_cv_env_CXX_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_exeext=
ac_cv_func_dup2=yes
ac_cv_func_fork=yes
ac_cv_func_fork_works=yes
ac_cv_func_getopt_long_only=yes
ac_cv_func_isascii=yes
ac_cv_func_iswcntrl=yes
ac_cv_func_iswprint=yes
ac_cv_func_malloc_0_nonnull=yes
ac_cv_func_mbsinit=yes
ac_cv_func_obstack=yes
ac_cv_func_setlocale=yes
ac_cv_func_stpcpy=yes
ac_cv_func_strdup=yes
ac_cv_func_strerror=yes
ac_cv_func_strerror_r=yes
ac_cv_func_strerror_r_char_p=yes
ac_cv_func_strnlen_working=yes
ac_cv_func_strtol=yes
ac_cv_func_strtoul=yes
ac_cv_func_strverscmp=yes
ac_cv_func_times=yes
ac_cv_func_vfork=yes
ac_cv_func_vfork_works=yes
ac_cv_func_waitpid=yes
ac_cv_func_wcwidth=yes
ac_cv_have_decl_clearerr_unlocked=yes
ac_cv_have_decl_clock=no
ac_cv_have_decl_feof_unlocked=yes
ac_cv_have_decl_ferror_unlocked=yes
ac_cv_have_decl_fflush_unlocked=yes
ac_cv_have_decl_fgets_unlocked=yes
ac_cv_have_decl_fputc_unlocked=yes
ac_cv_have_decl_fputs_unlocked=yes
ac_cv_have_decl_fread_unlocked=yes
ac_cv_have_decl_fwrite_unlocked=yes
ac_cv_have_decl_getc_unlocked=yes
ac_cv_have_decl_getchar_unlocked=yes
ac_cv_have_decl_getenv=yes
ac_cv_have_decl_getrusage=yes
ac_cv_have_decl_mbswidth=no
ac_cv_have_decl_optreset=no
ac_cv_have_decl_putc_unlocked=yes
ac_cv_have_decl_putchar_unlocked=yes
ac_cv_have_decl_strdup=yes
ac_cv_have_decl_strerror_r=yes
ac_cv_have_decl_strndup=yes
ac_cv_have_decl_strnlen=yes
ac_cv_have_decl_sysconf=yes
ac_cv_have_decl_times=yes
ac_cv_have_decl_wcwidth=yes
ac_cv_header_getopt_h=yes
ac_cv_header_inttypes_h=yes
ac_cv_header_locale_h=yes
ac_cv_header_memory_h=yes
ac_cv_header_minix_config_h=no
ac_cv_header_stdbool_h=yes
ac_cv_header_stdc=yes
ac_cv_header_stdint_h=yes
ac_cv_header_stdlib_h=yes
ac_cv_header_string_h=yes
ac_cv_header_strings_h=yes
ac_cv_header_sys_resource_h=yes
ac_cv_header_sys_stat_h=yes
ac_cv_header_sys_time_h=yes
ac_cv_header_sys_times_h=yes
ac_cv_header_sys_types_h=yes
ac_cv_header_sys_wait_h=yes
ac_cv_header_unistd_h=yes
ac_cv_header_vfork_h=no
ac_cv_header_wchar_h=yes
ac_cv_header_wctype_h=yes
ac_cv_host=x86_64-unknown-linux-gnu
ac_cv_host_alias=x86_64-unknown-linux-gnu
ac_cv_lib_error_at_line=yes
ac_cv_lib_fl_yywrap=yes
ac_cv_objext=o
ac_cv_path_GMSGFMT=/usr/bin/msgfmt
ac_cv_path_M4=/usr/bin/m4
ac_cv_path_MSGFMT=/usr/bin/msgfmt
ac_cv_path_MSGMERGE=/usr/bin/msgmerge
ac_cv_path_XGETTEXT=/usr/bin/xgettext
ac_cv_path_install='/usr/bin/install -c'
ac_cv_prog_AWK=gawk
ac_cv_prog_CPP='gcc -E'
ac_cv_prog_LEX=flex
ac_cv_prog_YACC='bison -y'
ac_cv_prog_ac_ct_CC=gcc
ac_cv_prog_ac_ct_CXX=g++
ac_cv_prog_ac_ct_RANLIB=ranlib
ac_cv_prog_cc_g=yes
ac_cv_prog_cc_stdc=
ac_cv_prog_cxx_g=yes
ac_cv_prog_egrep='grep -E'
ac_cv_prog_gnu_m4=yes
ac_cv_prog_lex_root=lex.yy
ac_cv_prog_lex_yytext_pointer=yes
ac_cv_prog_make_make_set=yes
ac_cv_safe_to_define___extensions__=yes
ac_cv_type__Bool=yes
ac_cv_type_clock_t=yes
ac_cv_type_mbstate_t=yes
ac_cv_type_pid_t=yes
ac_cv_type_struct_tms=yes
ac_cv_type_uintptr_t=yes
ac_cv_type_unsigned_long_long=yes
ac_cv_win_or_dos=no
acl_cv_hardcode_direct=no
acl_cv_hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
acl_cv_hardcode_libdir_separator=
acl_cv_hardcode_minus_L=no
acl_cv_libext=a
acl_cv_path_LD=/usr/bin/ld
acl_cv_prog_gnu_ld=yes
acl_cv_rpath=done
acl_cv_shlibext=so
acl_cv_wl=-Wl,
am_cv_CC_dependencies_compiler_type=gcc3
am_cv_CXX_dependencies_compiler_type=gcc3
am_cv_prog_cc_stdc=
bison_cv_cxx_works=yes
gl_cv_func_gnu_getopt=yes
gl_cv_func_mbrtowc=yes
gl_cv_func_strndup=yes
gl_cv_header_inttypes_h=yes
gl_cv_header_stdint_h=yes
gt_cv_func_CFLocaleCopyCurrent=no
gt_cv_func_CFPreferencesCopyAppValue=no
gt_cv_func_gnugettext1_libc=yes

## ----------------- ##
## Output variables. ##
## ----------------- ##

ACLOCAL='${SHELL} /usr/local/google/workspace/WebKit/tools/bison-2.3/build-aux/missing --run aclocal-1.9'
AMDEPBACKSLASH='\'
AMDEP_FALSE='#'
AMDEP_TRUE=''
AMTAR='${SHELL} /usr/local/google/workspace/WebKit/tools/bison-2.3/build-aux/missing --run tar'
AUTOCONF='${SHELL} /usr/local/google/workspace/WebKit/tools/bison-2.3/build-aux/missing --run autoconf'
AUTOHEADER='${SHELL} /usr/local/google/workspace/WebKit/tools/bison-2.3/build-aux/missing --run autoheader'
AUTOM4TE='${SHELL} /usr/local/google/workspace/WebKit/tools/bison-2.3/build-aux/missing --run autom4te'
AUTOMAKE='${SHELL} /usr/local/google/workspace/WebKit/tools/bison-2.3/build-aux/missing --run automake-1.9'
AWK='gawk'
BISON_CXX_WORKS=':'
BISON_CXX_WORKS_FALSE='#'
BISON_CXX_WORKS_TRUE=''
BISON_LOCALEDIR='/usr/share/locale'
CC='gcc'
CCDEPMODE='depmode=gcc3'
CFLAGS='-g -O2'
CPP='gcc -E'
CPPFLAGS=''
CXX='g++'
CXXDEPMODE='depmode=gcc3'
CXXFLAGS='-g -O2'
CYGPATH_W='echo'
DEFS='-DHAVE_CONFIG_H'
DEPDIR='.deps'
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='grep -E'
EXEEXT=''
GCC='yes'
GETOPT_H=''
GMSGFMT='/usr/bin/msgfmt'
HAVE__BOOL='1'
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_STRIP_PROGRAM='${SHELL} $(install_sh) -c -s'
INTLLIBS=''
INTL_MACOSX_LIBS=''
LDFLAGS=''
LEX='flex'
LEXLIB='-lfl'
LEX_OUTPUT_ROOT='lex.yy'
LIBICONV='-liconv'
LIBINTL=''
LIBOBJS=' dirname$U.o exitfail$U.o hard-locale$U.o hash$U.o quote$U.o quotearg$U.o fopen-safer$U.o dup-safer$U.o fd-safer$U.o pipe-safer$U.o xmalloc$U.o'
LIBS=''
LTLIBICONV='-liconv'
LTLIBINTL=''
LTLIBOBJS=' dirname$U.lo exitfail$U.lo hard-locale$U.lo hash$U.lo quote$U.lo quotearg$U.lo fopen-safer$U.lo dup-safer$U.lo fd-safer$U.lo pipe-safer$U.lo xmalloc$U.lo'
M4='/usr/bin/m4'
MAKEINFO='${SHELL} /usr/local/google/workspace/WebKit/tools/bison-2.3/build-aux/missing --run makeinfo'
MKINSTALLDIRS='$(top_builddir)/build-aux/mkinstalldirs'
MSGFMT='/usr/bin/msgfmt'
MSGMERGE='/usr/bin/msgmerge'
O0CFLAGS='-g '
O0CXXFLAGS='-g '
OBJEXT='o'
PACKAGE='bison'
PACKAGE_BUGREPORT='bug-bison@gnu.org'
PACKAGE_NAME='GNU Bison'
PACKAGE_STRING='GNU Bison 2.3'
PACKAGE_TARNAME='bison'
PACKAGE_VERSION='2.3'
PATH_SEPARATOR=':'
POSUB='po'
RANLIB='ranlib'
SET_MAKE=''
SHELL='/bin/sh'
STDBOOL_H=''
STRIP=''
UNISTD_H=''
USE_NLS='yes'
VALGRIND=''
VERSION='2.3'
WARNING_CFLAGS=''
WARNING_CXXFLAGS=''
WERROR_CFLAGS=''
XGETTEXT='/usr/bin/xgettext'
YACC='bison -y'
YACC_LIBRARY='liby.a'
YACC_SCRIPT='yacc'
ac_ct_CC='gcc'
ac_ct_CXX='g++'
ac_ct_RANLIB='ranlib'
ac_ct_STRIP=''
aclocaldir='${datadir}/aclocal'
am__fastdepCC_FALSE='#'
am__fastdepCC_TRUE=''
am__fastdepCXX_FALSE='#'
am__fastdepCXX_TRUE=''
am__include='include'
am__leading_dot='.'
am__quote=''
am__tar='${AMTAR} chof - "$$tardir"'
am__untar='${AMTAR} xf -'
bindir='${exec_prefix}/bin'
build='x86_64-unknown-linux-gnu'
build_alias=''
build_cpu='x86_64'
build_os='linux-gnu'
build_vendor='unknown'
datadir='${prefix}/share'
exec_prefix='${prefix}'
host='x86_64-unknown-linux-gnu'
host_alias=''
host_cpu='x86_64'
host_os='linux-gnu'
host_vendor='unknown'
includedir='${prefix}/include'
infodir='${prefix}/info'
install_sh='/usr/local/google/workspace/WebKit/tools/bison-2.3/build-aux/install-sh'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localstatedir='${prefix}/var'
mandir='${prefix}/man'
mkdir_p='mkdir -p --'
oldincludedir='/usr/include'
prefix='/home/phanna/src/bison'
program_transform_name='s,x,x,'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias=''

## ----------- ##
## confdefs.h. ##
## ----------- ##

#define ENABLE_NLS 1
#define FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX 0
#define FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR 0
#define HAVE_CLOCK_T 1
#define HAVE_DCGETTEXT 1
#define HAVE_DECL_CLEARERR_UNLOCKED 1
#define HAVE_DECL_CLOCK 0
#define HAVE_DECL_FEOF_UNLOCKED 1
#define HAVE_DECL_FERROR_UNLOCKED 1
#define HAVE_DECL_FFLUSH_UNLOCKED 1
#define HAVE_DECL_FGETS_UNLOCKED 1
#define HAVE_DECL_FPUTC_UNLOCKED 1
#define HAVE_DECL_FPUTS_UNLOCKED 1
#define HAVE_DECL_FREAD_UNLOCKED 1
#define HAVE_DECL_FWRITE_UNLOCKED 1
#define HAVE_DECL_GETCHAR_UNLOCKED 1
#define HAVE_DECL_GETC_UNLOCKED 1
#define HAVE_DECL_GETENV 1
#define HAVE_DECL_GETRUSAGE 1
#define HAVE_DECL_MBSWIDTH_IN_WCHAR_H 0
#define HAVE_DECL_PUTCHAR_UNLOCKED 1
#define HAVE_DECL_PUTC_UNLOCKED 1
#define HAVE_DECL_STRDUP 1
#define HAVE_DECL_STRERROR_R 1
#define HAVE_DECL_STRNDUP 1
#define HAVE_DECL_STRNLEN 1
#define HAVE_DECL_SYSCONF 1
#define HAVE_DECL_TIMES 1
#define HAVE_DECL_WCWIDTH 1
#define HAVE_DUP2 1
#define HAVE_FORK 1
#define HAVE_GETOPT_H 1
#define HAVE_GETOPT_LONG_ONLY 1
#define HAVE_GETTEXT 1
#define HAVE_INTTYPES_H 1
#define HAVE_INTTYPES_H_WITH_UINTMAX 1
#define HAVE_ISASCII 1
#define HAVE_ISWCNTRL 1
#define HAVE_ISWPRINT 1
#define HAVE_LOCALE_H 1
#define HAVE_MALLOC 1
#define HAVE_MBRTOWC 1
#define HAVE_MBRTOWC 1
#define HAVE_MBSINIT 1
#define HAVE_MBSTATE_T 1
#define HAVE_MBSTATE_T 1
#define HAVE_MEMORY_H 1
#define HAVE_OBSTACK 1
#define HAVE_SETLOCALE 1
#define HAVE_STDBOOL_H 1
#define HAVE_STDINT_H 1
#define HAVE_STDINT_H_WITH_UINTMAX 1
#define HAVE_STDLIB_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STPCPY 1
#define HAVE_STRDUP 1
#define HAVE_STRERROR 1
#define HAVE_STRERROR_R 1
#define HAVE_STRINGS_H 1
#define HAVE_STRING_H 1
#define HAVE_STRNDUP 1
#define HAVE_STRTOL 1
#define HAVE_STRTOUL 1
#define HAVE_STRUCT_TMS 1
#define HAVE_STRVERSCMP 1
#define HAVE_SYS_RESOURCE_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_SYS_TIMES_H 1
#define HAVE_SYS_TIME_H 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_WAIT_H 1
#define HAVE_TIMES 1
#define HAVE_UINTMAX_T 1
#define HAVE_UINTPTR_T 1
#define HAVE_UNISTD_H 1
#define HAVE_UNISTD_H 1
#define HAVE_UNISTD_H 1
#define HAVE_UNSIGNED_LONG_LONG 1
#define HAVE_VFORK 1
#define HAVE_WAITPID 1
#define HAVE_WCHAR_H 1
#define HAVE_WCTYPE_H 1
#define HAVE_WCWIDTH 1
#define HAVE_WORKING_FORK 1
#define HAVE_WORKING_VFORK 1
#define HAVE__BOOL 1
#define M4 "/usr/bin/m4"
#define PACKAGE "bison"
#define PACKAGE_BUGREPORT "bug-bison@gnu.org"
#define PACKAGE_NAME "GNU Bison"
#define PACKAGE_STRING "GNU Bison 2.3"
#define PACKAGE_TARNAME "bison"
#define PACKAGE_VERSION "2.3"
#define STDC_HEADERS 1
#define STRERROR_R_CHAR_P 1
#define USE_UNLOCKED_IO 1
#define VERSION "2.3"
#define YYENABLE_NLS 1
#define YYTEXT_POINTER 1
#define _GNU_SOURCE 1
#define _POSIX_PTHREAD_SEMANTICS 1
#define __EXTENSIONS__ 1
#endif
#ifdef __cplusplus
extern "C" void std::exit (int) throw (); using std::exit;

configure: exit 0
