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

It was created by Red Hat elfutils configure 0.97, which was
generated by GNU Autoconf 2.59.  Invocation command line was

  $ ./configure --prefix /work/elfutils/google/linux-install-elfutils-0.97/ --no-create --no-recursion

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

hostname = in2it.corp.google.com
uname -m = i686
uname -r = 2.6.16.11-gg1
uname -s = Linux
uname -v = #1 SMP Wed Apr 26 14:42:26 PDT 2006

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

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

PATH: /usr/local/scripts
PATH: /usr/local/symlinks
PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /usr/sbin
PATH: /usr/bin
PATH: /sbin
PATH: /bin
PATH: /usr/bin/X11
PATH: /usr/games
PATH: /work/android/device/prebuilt/Linux/toolchain/bin/
PATH: /home/build/public/google/tools/
PATH: /work/elfcopy
PATH: /work/aldd
PATH: /work/symchange
PATH: /work/lsd
PATH: /work/elfutils-0.97-install/bin/
PATH: .
PATH: /home/malchev/bin
PATH: /work/android/device/out/linux-arm-release/host/bin
PATH: /work/android/device/prebuilt/Linux/toolchain/arm-elf
PATH: /work/android/device/prebuilt/Linux/toolchain/bin/
PATH: /home/build/public/google/tools/
PATH: /work/elfcopy
PATH: /work/aldd
PATH: /work/soslim
PATH: /work/lsd
PATH: /work/elfutils-0.97-install/bin/
PATH: .


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

configure:1345: checking for a BSD-compatible install
configure:1400: result: /usr/bin/install -c
configure:1411: checking whether build environment is sane
configure:1454: result: yes
configure:1519: checking for gawk
configure:1535: found /usr/bin/gawk
configure:1545: result: gawk
configure:1555: checking whether make sets $(MAKE)
configure:1575: result: yes
configure:1774: checking build system type
configure:1792: result: i686-pc-linux-gnu
configure:1800: checking host system type
configure:1814: result: i686-pc-linux-gnu
configure:1882: checking for gcc
configure:1898: found /usr/bin/gcc
configure:1908: result: gcc
configure:2152: checking for C compiler version
configure:2155: gcc --version </dev/null >&5
gcc (GCC) 3.3.5 (Debian 1:3.3.5-8ubuntu2.1)
Copyright (C) 2003 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:2158: $? = 0
configure:2160: gcc -v </dev/null >&5
Reading specs from /usr/lib/gcc-lib/i486-linux/3.3.5/specs
Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --enable-__cxa_atexit --enable-clocale=gnu --enable-debug --enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i486-linux
Thread model: posix
gcc version 3.3.5 (Debian 1:3.3.5-8ubuntu2.1)
configure:2163: $? = 0
configure:2165: gcc -V </dev/null >&5
gcc: `-V' option must have argument
configure:2168: $? = 1
configure:2191: checking for C compiler default output file name
configure:2194: gcc    conftest.c  >&5
configure:2197: $? = 0
configure:2243: result: a.out
configure:2248: checking whether the C compiler works
configure:2254: ./a.out
configure:2257: $? = 0
configure:2274: result: yes
configure:2281: checking whether we are cross compiling
configure:2283: result: no
configure:2286: checking for suffix of executables
configure:2288: gcc -o conftest    conftest.c  >&5
configure:2291: $? = 0
configure:2316: result: 
configure:2322: checking for suffix of object files
configure:2343: gcc -c   conftest.c >&5
configure:2346: $? = 0
configure:2368: result: o
configure:2372: checking whether we are using the GNU C compiler
configure:2396: gcc -c   conftest.c >&5
configure:2402: $? = 0
configure:2405: test -z 			 || test ! -s conftest.err
configure:2408: $? = 0
configure:2411: test -s conftest.o
configure:2414: $? = 0
configure:2427: result: yes
configure:2433: checking whether gcc accepts -g
configure:2454: gcc -c -g  conftest.c >&5
configure:2460: $? = 0
configure:2463: test -z 			 || test ! -s conftest.err
configure:2466: $? = 0
configure:2469: test -s conftest.o
configure:2472: $? = 0
configure:2483: result: yes
configure:2500: checking for gcc option to accept ANSI C
configure:2570: gcc  -c -g -O2  conftest.c >&5
configure:2576: $? = 0
configure:2579: test -z 			 || test ! -s conftest.err
configure:2582: $? = 0
configure:2585: test -s conftest.o
configure:2588: $? = 0
configure:2606: result: none needed
configure:2624: gcc -c -g -O2  conftest.c >&5
conftest.c:2: error: syntax error before "me"
configure:2630: $? = 1
configure: failed program was:
| #ifndef __cplusplus
|   choke me
| #endif
configure:2771: checking for style of include used by make
configure:2799: result: GNU
configure:2827: checking dependency style of gcc
configure:2917: result: gcc3
configure:2939: checking how to run the C preprocessor
configure:2974: gcc -E  conftest.c
configure:2980: $? = 0
configure:3012: gcc -E  conftest.c
conftest.c:11:28: ac_nonexistent.h: No such file or directory
configure:3018: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME "Red Hat elfutils"
| #define PACKAGE_TARNAME "elfutils"
| #define PACKAGE_VERSION "0.97"
| #define PACKAGE_STRING "Red Hat elfutils 0.97"
| #define PACKAGE_BUGREPORT "http://bugzilla.redhat.com/bugzilla/"
| #define PACKAGE "elfutils"
| #define VERSION "0.97"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:3057: result: gcc -E
configure:3081: gcc -E  conftest.c
configure:3087: $? = 0
configure:3119: gcc -E  conftest.c
conftest.c:11:28: ac_nonexistent.h: No such file or directory
configure:3125: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME "Red Hat elfutils"
| #define PACKAGE_TARNAME "elfutils"
| #define PACKAGE_VERSION "0.97"
| #define PACKAGE_STRING "Red Hat elfutils 0.97"
| #define PACKAGE_BUGREPORT "http://bugzilla.redhat.com/bugzilla/"
| #define PACKAGE "elfutils"
| #define VERSION "0.97"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:3170: checking for egrep
configure:3180: result: grep -E
configure:3186: checking whether gcc needs -traditional
configure:3228: result: no
configure:3250: checking for msgfmt
configure:3278: result: /usr/bin/msgfmt
configure:3287: checking for gmsgfmt
configure:3318: result: /usr/bin/msgfmt
configure:3328: checking for xgettext
configure:3356: result: /usr/bin/xgettext
configure:3367: checking for msgmerge
configure:3394: result: /usr/bin/msgmerge
configure:3456: checking for ld used by GCC
configure:3519: result: /usr/bin/ld
configure:3528: checking if the linker (/usr/bin/ld) is GNU ld
GNU ld version 2.15
configure:3540: result: yes
configure:3546: checking for shared library run path origin
configure:3559: result: done
configure:3944: checking whether NLS is requested
configure:3953: result: yes
configure:3970: checking for GNU gettext in libc
configure:3994: gcc -o conftest -g -O2   conftest.c  >&5
configure:4000: $? = 0
configure:4003: test -z 			 || test ! -s conftest.err
configure:4006: $? = 0
configure:4009: test -s conftest
configure:4012: $? = 0
configure:4024: result: yes
configure:4791: checking for ranlib
configure:4807: found /usr/bin/ranlib
configure:4818: result: ranlib
configure:4834: checking for bison
configure:4850: found /usr/bin/bison
configure:4860: result: bison -y
configure:4875: checking for flex
configure:4891: found /usr/bin/flex
configure:4901: result: flex
configure:4914: checking for yywrap in -lfl
configure:4944: gcc -o conftest -g -O2   conftest.c -lfl   >&5
configure:4950: $? = 0
configure:4953: test -z 			 || test ! -s conftest.err
configure:4956: $? = 0
configure:4959: test -s conftest
configure:4962: $? = 0
configure:4975: result: yes
configure:5052: checking lex output file root
configure:5063: flex conftest.l
configure:5066: $? = 0
configure:5078: result: lex.yy
configure:5083: checking whether yytext is a pointer
configure:5099: gcc -o conftest -g -O2   conftest.c  -lfl >&5
configure:5105: $? = 0
configure:5108: test -z 			 || test ! -s conftest.err
configure:5111: $? = 0
configure:5114: test -s conftest
configure:5117: $? = 0
configure:5131: result: yes
configure:5146: checking for gcc with C99 support
configure:5157: gcc -c -g -O2 -std=gnu99  conftest.c >&5
configure:5163: $? = 0
configure:5166: test -z 			 || test ! -s conftest.err
configure:5169: $? = 0
configure:5172: test -s conftest.o
configure:5175: $? = 0
configure:5187: result: yes
configure:5215: checking for special C compiler options needed for large files
configure:5312: result: no
configure:5318: checking for _FILE_OFFSET_BITS value needed for large files
configure:5349: gcc -c -g -O2  conftest.c >&5
conftest.c:22: warning: left shift count >= width of type
conftest.c:22: warning: left shift count >= width of type
conftest.c:24: error: size of array `off_t_is_large' is negative
configure:5355: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME "Red Hat elfutils"
| #define PACKAGE_TARNAME "elfutils"
| #define PACKAGE_VERSION "0.97"
| #define PACKAGE_STRING "Red Hat elfutils 0.97"
| #define PACKAGE_BUGREPORT "http://bugzilla.redhat.com/bugzilla/"
| #define PACKAGE "elfutils"
| #define VERSION "0.97"
| #define ENABLE_NLS 1
| #define HAVE_GETTEXT 1
| #define HAVE_DCGETTEXT 1
| #define YYTEXT_POINTER 1
| #define LOCALEDIR "${prefix}/share"
| /* end confdefs.h.  */
| #include <sys/types.h>
|  /* Check that off_t can represent 2**63 - 1 correctly.
|     We can't simply define LARGE_OFF_T to be 9223372036854775807,
|     since some C++ compilers masquerading as C compilers
|     incorrectly reject 9223372036854775807.  */
| #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
|   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
| 		       && LARGE_OFF_T % 2147483647 == 1)
| 		      ? 1 : -1];
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:5401: gcc -c -g -O2  conftest.c >&5
configure:5407: $? = 0
configure:5410: test -z 			 || test ! -s conftest.err
configure:5413: $? = 0
configure:5416: test -s conftest.o
configure:5419: $? = 0
configure:5431: result: 64
configure:5441: checking for _LARGE_FILES value needed for large files
configure:5472: gcc -c -g -O2  conftest.c >&5
configure:5478: $? = 0
configure:5481: test -z 			 || test ! -s conftest.err
configure:5484: $? = 0
configure:5487: test -s conftest.o
configure:5490: $? = 0
configure:5554: result: no
configure:5836: creating ./config.status

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

ac_cv_build=i686-pc-linux-gnu
ac_cv_build_alias=i686-pc-linux-gnu
ac_cv_c99=yes
ac_cv_c_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_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_host=i686-pc-linux-gnu
ac_cv_host_alias=i686-pc-linux-gnu
ac_cv_lib_fl_yywrap=yes
ac_cv_objext=o
ac_cv_path_GMSGFMT=/usr/bin/msgfmt
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_RANLIB=ranlib
ac_cv_prog_cc_g=yes
ac_cv_prog_cc_stdc=
ac_cv_prog_egrep='grep -E'
ac_cv_prog_gcc_traditional=no
ac_cv_prog_lex_root=lex.yy
ac_cv_prog_lex_yytext_pointer=yes
ac_cv_prog_make_make_set=yes
ac_cv_sys_file_offset_bits=64
ac_cv_sys_large_files=no
ac_cv_sys_largefile_CC=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_sys_lib_dlsearch_path_spec='/lib /usr/lib'
acl_cv_sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
acl_cv_wl=-Wl,
am_cv_CC_dependencies_compiler_type=gcc3
gt_cv_func_gnugettext1_libc=yes

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

ACLOCAL='${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run aclocal-1.9'
AMDEPBACKSLASH='\'
AMDEP_FALSE='#'
AMDEP_TRUE=''
AMTAR='${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run tar'
AUTOCONF='${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoconf'
AUTOHEADER='${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run autoheader'
AUTOMAKE='${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run automake-1.9'
AWK='gawk'
CC='gcc'
CCDEPMODE='depmode=gcc3'
CFLAGS='-g -O2'
CPP='gcc -E'
CPPFLAGS=''
CYGPATH_W='echo'
DATADIRNAME='${prefix}/share'
DEFS='-DHAVE_CONFIG_H'
DEPDIR='.deps'
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='grep -E'
EXEEXT=''
GMSGFMT='/usr/bin/msgfmt'
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_STRIP_PROGRAM='${SHELL} $(install_sh) -c -s'
INTLLIBS=''
LDFLAGS=''
LEX='flex'
LEXLIB='-lfl'
LEX_OUTPUT_ROOT='lex.yy'
LIBICONV='-liconv'
LIBINTL=''
LIBOBJS=''
LIBS=''
LOCALEDIR='${prefix}/share'
LTLIBICONV='-liconv'
LTLIBINTL=''
LTLIBOBJS=''
MAKEINFO='${SHELL} /work/elfutils/stock/elfutils-0.97/config/missing --run makeinfo'
MKINSTALLDIRS='config/mkinstalldirs'
MSGFMT='/usr/bin/msgfmt'
MSGMERGE='/usr/bin/msgmerge'
MUDFLAP_FALSE=''
MUDFLAP_TRUE='#'
NATIVE_LD_FALSE=''
NATIVE_LD_TRUE='#'
OBJEXT='o'
PACKAGE='elfutils'
PACKAGE_BUGREPORT='http://bugzilla.redhat.com/bugzilla/'
PACKAGE_NAME='Red Hat elfutils'
PACKAGE_STRING='Red Hat elfutils 0.97'
PACKAGE_TARNAME='elfutils'
PACKAGE_VERSION='0.97'
PATH_SEPARATOR=':'
POSUB='po'
RANLIB='ranlib'
SET_MAKE=''
SHELL='/bin/sh'
STRIP=''
USE_NLS='yes'
VERSION='0.97'
XGETTEXT='/usr/bin/xgettext'
YACC='bison -y'
ac_ct_CC='gcc'
ac_ct_RANLIB='ranlib'
ac_ct_STRIP=''
am__fastdepCC_FALSE='#'
am__fastdepCC_TRUE=''
am__include='include'
am__leading_dot='.'
am__quote=''
am__tar='${AMTAR} chof - "$$tardir"'
am__untar='${AMTAR} xf -'
base_cpu='none'
bindir='${exec_prefix}/bin'
build='i686-pc-linux-gnu'
build_alias=''
build_cpu='i686'
build_os='linux-gnu'
build_vendor='pc'
datadir='${prefix}/share'
exec_prefix='${prefix}'
host='i686-pc-linux-gnu'
host_alias=''
host_cpu='i686'
host_os='linux-gnu'
host_vendor='pc'
includedir='${prefix}/include'
infodir='${prefix}/info'
install_sh='/work/elfutils/stock/elfutils-0.97/config/install-sh'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localstatedir='${prefix}/var'
mandir='${prefix}/man'
mkdir_p='mkdir -p --'
oldincludedir='/usr/include'
prefix='/work/elfutils/google/linux-install-elfutils-0.97/'
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 HAVE_DCGETTEXT 1
#define HAVE_GETTEXT 1
#define LOCALEDIR "${prefix}/share"
#define PACKAGE "elfutils"
#define PACKAGE_BUGREPORT "http://bugzilla.redhat.com/bugzilla/"
#define PACKAGE_NAME "Red Hat elfutils"
#define PACKAGE_STRING "Red Hat elfutils 0.97"
#define PACKAGE_TARNAME "elfutils"
#define PACKAGE_VERSION "0.97"
#define VERSION "0.97"
#define YYTEXT_POINTER 1
#define _FILE_OFFSET_BITS 64

configure: exit 0

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

This file was extended by Red Hat elfutils config.status 0.97, which was
generated by GNU Autoconf 2.59.  Invocation command line was

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

on in2it.corp.google.com

config.status:783: creating config/Makefile
config.status:783: creating Makefile
config.status:783: creating m4/Makefile
config.status:783: creating elfutils.spec
config.status:783: creating doc/Makefile
config.status:783: creating lib/Makefile
config.status:783: creating libelf/Makefile
config.status:783: creating libelf-po/Makefile.in
config.status:783: creating libebl/Makefile
config.status:783: creating libdw/Makefile
config.status:783: creating libcpu/Makefile
config.status:783: creating libasm/Makefile
config.status:783: creating src/Makefile
config.status:783: creating po/Makefile.in
config.status:783: creating tests/Makefile
config.status:849: creating config.h
config.status:947: config.h is unchanged
config.status:1127: executing depfiles commands
config.status:1127: executing default-1 commands

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

This file was extended by Red Hat elfutils config.status 0.97, which was
generated by GNU Autoconf 2.59.  Invocation command line was

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

on in2it.corp.google.com

config.status:849: creating config.h
config.status:947: config.h is unchanged
