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

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

  $ ./configure --prefix=/home/astor/localastor/google3/third_party/libsrtp/v1_4_2

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

hostname = hpgntae-ubiq59.eem.corp.google.com
uname -m = x86_64
uname -r = 2.6.18.5-gg47server-xenu-3.1
uname -s = Linux
uname -v = #1 SMP Fri May 22 12:54:38 PDT 2009

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

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

PATH: /home/astor/bin
PATH: /home/astor/software/bin
PATH: /home/astor/software/usr/bin
PATH: /home/astor/bin
PATH: /home/astor/software/bin
PATH: /home/astor/software/usr/bin
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: /opt/alice-1.3/bin
PATH: /home/build/static/projects/borg
PATH: /opt/alice-1.3/bin
PATH: /home/build/static/projects/borg


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

configure:1349: checking for ranlib
configure:1365: found /usr/bin/ranlib
configure:1376: result: ranlib
configure:1434: checking for gcc
configure:1450: found /usr/bin/gcc
configure:1460: result: gcc
configure:1704: checking for C compiler version
configure:1707: gcc --version </dev/null >&5
gcc (GCC) 4.2.4 (Ubuntu 4.2.4-1ubuntu4)
Copyright (C) 2007 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:1710: $? = 0
configure:1712: gcc -v </dev/null >&5
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.2 --program-suffix=-4.2 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu4)
configure:1715: $? = 0
configure:1717: gcc -V </dev/null >&5
gcc: '-V' option must have argument
configure:1720: $? = 1
configure:1743: checking for C compiler default output file name
configure:1746: gcc -Wall -O4 -fexpensive-optimizations -funroll-loops   conftest.c  >&5
configure:1749: $? = 0
configure:1795: result: a.out
configure:1800: checking whether the C compiler works
configure:1806: ./a.out
configure:1809: $? = 0
configure:1826: result: yes
configure:1833: checking whether we are cross compiling
configure:1835: result: no
configure:1838: checking for suffix of executables
configure:1840: gcc -o conftest -Wall -O4 -fexpensive-optimizations -funroll-loops   conftest.c  >&5
configure:1843: $? = 0
configure:1868: result: 
configure:1874: checking for suffix of object files
configure:1895: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:1898: $? = 0
configure:1920: result: o
configure:1924: checking whether we are using the GNU C compiler
configure:1948: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:1954: $? = 0
configure:1958: test -z 
			 || test ! -s conftest.err
configure:1961: $? = 0
configure:1964: test -s conftest.o
configure:1967: $? = 0
configure:1980: result: yes
configure:1986: checking whether gcc accepts -g
configure:2007: gcc -c -g  conftest.c >&5
configure:2013: $? = 0
configure:2017: test -z 
			 || test ! -s conftest.err
configure:2020: $? = 0
configure:2023: test -s conftest.o
configure:2026: $? = 0
configure:2037: result: yes
configure:2054: checking for gcc option to accept ANSI C
configure:2124: gcc  -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:2130: $? = 0
configure:2134: test -z 
			 || test ! -s conftest.err
configure:2137: $? = 0
configure:2140: test -s conftest.o
configure:2143: $? = 0
configure:2161: result: none needed
configure:2179: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
conftest.c:2: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'me'
configure:2185: $? = 1
configure: failed program was:
| #ifndef __cplusplus
|   choke me
| #endif
configure:2356: checking for a BSD-compatible install
configure:2411: result: /usr/bin/install -c
configure:2436: checking whether to build for Linux kernel context
configure:2450: result: no
configure:2454: checking for /dev/urandom
configure:2469: result: yes
configure:2499: checking which random device to use
configure:2513: result: /dev/urandom
configure:2529: checking how to run the C preprocessor
configure:2564: gcc -E  conftest.c
configure:2570: $? = 0
configure:2602: gcc -E  conftest.c
conftest.c:10:28: error: ac_nonexistent.h: No such file or directory
configure:2608: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define DEV_URANDOM "/dev/urandom"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:2647: result: gcc -E
configure:2671: gcc -E  conftest.c
configure:2677: $? = 0
configure:2709: gcc -E  conftest.c
conftest.c:10:28: error: ac_nonexistent.h: No such file or directory
configure:2715: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define DEV_URANDOM "/dev/urandom"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:2759: checking for egrep
configure:2769: result: grep -E
configure:2774: checking for ANSI C header files
configure:2799: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:2805: $? = 0
configure:2809: test -z 
			 || test ! -s conftest.err
configure:2812: $? = 0
configure:2815: test -s conftest.o
configure:2818: $? = 0
configure:2907: gcc -o conftest -Wall -O4 -fexpensive-optimizations -funroll-loops   conftest.c  >&5
conftest.c: In function 'main':
conftest.c:27: warning: implicit declaration of function 'exit'
conftest.c:27: warning: incompatible implicit declaration of built-in function 'exit'
configure:2910: $? = 0
configure:2912: ./conftest
configure:2915: $? = 0
configure:2930: result: yes
configure:2954: checking for sys/types.h
configure:2970: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:2976: $? = 0
configure:2980: test -z 
			 || test ! -s conftest.err
configure:2983: $? = 0
configure:2986: test -s conftest.o
configure:2989: $? = 0
configure:3000: result: yes
configure:2954: checking for sys/stat.h
configure:2970: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:2976: $? = 0
configure:2980: test -z 
			 || test ! -s conftest.err
configure:2983: $? = 0
configure:2986: test -s conftest.o
configure:2989: $? = 0
configure:3000: result: yes
configure:2954: checking for stdlib.h
configure:2970: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:2976: $? = 0
configure:2980: test -z 
			 || test ! -s conftest.err
configure:2983: $? = 0
configure:2986: test -s conftest.o
configure:2989: $? = 0
configure:3000: result: yes
configure:2954: checking for string.h
configure:2970: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:2976: $? = 0
configure:2980: test -z 
			 || test ! -s conftest.err
configure:2983: $? = 0
configure:2986: test -s conftest.o
configure:2989: $? = 0
configure:3000: result: yes
configure:2954: checking for memory.h
configure:2970: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:2976: $? = 0
configure:2980: test -z 
			 || test ! -s conftest.err
configure:2983: $? = 0
configure:2986: test -s conftest.o
configure:2989: $? = 0
configure:3000: result: yes
configure:2954: checking for strings.h
configure:2970: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:2976: $? = 0
configure:2980: test -z 
			 || test ! -s conftest.err
configure:2983: $? = 0
configure:2986: test -s conftest.o
configure:2989: $? = 0
configure:3000: result: yes
configure:2954: checking for inttypes.h
configure:2970: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:2976: $? = 0
configure:2980: test -z 
			 || test ! -s conftest.err
configure:2983: $? = 0
configure:2986: test -s conftest.o
configure:2989: $? = 0
configure:3000: result: yes
configure:2954: checking for stdint.h
configure:2970: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:2976: $? = 0
configure:2980: test -z 
			 || test ! -s conftest.err
configure:2983: $? = 0
configure:2986: test -s conftest.o
configure:2989: $? = 0
configure:3000: result: yes
configure:2954: checking for unistd.h
configure:2970: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:2976: $? = 0
configure:2980: test -z 
			 || test ! -s conftest.err
configure:2983: $? = 0
configure:2986: test -s conftest.o
configure:2989: $? = 0
configure:3000: result: yes
configure:3017: checking for stdlib.h
configure:3022: result: yes
configure:3167: checking for unistd.h
configure:3172: result: yes
configure:3326: checking byteswap.h usability
configure:3338: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:3344: $? = 0
configure:3348: test -z 
			 || test ! -s conftest.err
configure:3351: $? = 0
configure:3354: test -s conftest.o
configure:3357: $? = 0
configure:3367: result: yes
configure:3371: checking byteswap.h presence
configure:3381: gcc -E  conftest.c
configure:3387: $? = 0
configure:3407: result: yes
configure:3442: checking for byteswap.h
configure:3449: result: yes
configure:3467: checking for stdint.h
configure:3472: result: yes
configure:3626: checking sys/uio.h usability
configure:3638: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:3644: $? = 0
configure:3648: test -z 
			 || test ! -s conftest.err
configure:3651: $? = 0
configure:3654: test -s conftest.o
configure:3657: $? = 0
configure:3667: result: yes
configure:3671: checking sys/uio.h presence
configure:3681: gcc -E  conftest.c
configure:3687: $? = 0
configure:3707: result: yes
configure:3742: checking for sys/uio.h
configure:3749: result: yes
configure:3767: checking for inttypes.h
configure:3772: result: yes
configure:3917: checking for sys/types.h
configure:3922: result: yes
configure:4076: checking machine/types.h usability
configure:4088: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
conftest.c:61:27: error: machine/types.h: No such file or directory
configure:4094: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define DEV_URANDOM "/dev/urandom"
| #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 HAVE_STDLIB_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_BYTESWAP_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_SYS_UIO_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_SYS_TYPES_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 <machine/types.h>
configure:4117: result: no
configure:4121: checking machine/types.h presence
configure:4131: gcc -E  conftest.c
conftest.c:27:27: error: machine/types.h: No such file or directory
configure:4137: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define DEV_URANDOM "/dev/urandom"
| #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 HAVE_STDLIB_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_BYTESWAP_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_SYS_UIO_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_SYS_TYPES_H 1
| /* end confdefs.h.  */
| #include <machine/types.h>
configure:4157: result: no
configure:4192: checking for machine/types.h
configure:4199: result: no
configure:4226: checking sys/int_types.h usability
configure:4238: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
conftest.c:61:27: error: sys/int_types.h: No such file or directory
configure:4244: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define DEV_URANDOM "/dev/urandom"
| #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 HAVE_STDLIB_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_BYTESWAP_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_SYS_UIO_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_SYS_TYPES_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 <sys/int_types.h>
configure:4267: result: no
configure:4271: checking sys/int_types.h presence
configure:4281: gcc -E  conftest.c
conftest.c:27:27: error: sys/int_types.h: No such file or directory
configure:4287: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define DEV_URANDOM "/dev/urandom"
| #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 HAVE_STDLIB_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_BYTESWAP_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_SYS_UIO_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_SYS_TYPES_H 1
| /* end confdefs.h.  */
| #include <sys/int_types.h>
configure:4307: result: no
configure:4342: checking for sys/int_types.h
configure:4349: result: no
configure:4379: checking sys/socket.h usability
configure:4391: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:4397: $? = 0
configure:4401: test -z 
			 || test ! -s conftest.err
configure:4404: $? = 0
configure:4407: test -s conftest.o
configure:4410: $? = 0
configure:4420: result: yes
configure:4424: checking sys/socket.h presence
configure:4434: gcc -E  conftest.c
configure:4440: $? = 0
configure:4460: result: yes
configure:4495: checking for sys/socket.h
configure:4502: result: yes
configure:4379: checking netinet/in.h usability
configure:4391: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:4397: $? = 0
configure:4401: test -z 
			 || test ! -s conftest.err
configure:4404: $? = 0
configure:4407: test -s conftest.o
configure:4410: $? = 0
configure:4420: result: yes
configure:4424: checking netinet/in.h presence
configure:4434: gcc -E  conftest.c
configure:4440: $? = 0
configure:4460: result: yes
configure:4495: checking for netinet/in.h
configure:4502: result: yes
configure:4379: checking arpa/inet.h usability
configure:4391: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:4397: $? = 0
configure:4401: test -z 
			 || test ! -s conftest.err
configure:4404: $? = 0
configure:4407: test -s conftest.o
configure:4410: $? = 0
configure:4420: result: yes
configure:4424: checking arpa/inet.h presence
configure:4434: gcc -E  conftest.c
configure:4440: $? = 0
configure:4460: result: yes
configure:4495: checking for arpa/inet.h
configure:4502: result: yes
configure:4529: checking windows.h usability
configure:4541: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
conftest.c:64:21: error: windows.h: No such file or directory
configure:4547: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define DEV_URANDOM "/dev/urandom"
| #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 HAVE_STDLIB_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_BYTESWAP_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_SYS_UIO_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_ARPA_INET_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 <windows.h>
configure:4570: result: no
configure:4574: checking windows.h presence
configure:4584: gcc -E  conftest.c
conftest.c:30:21: error: windows.h: No such file or directory
configure:4590: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define DEV_URANDOM "/dev/urandom"
| #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 HAVE_STDLIB_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_BYTESWAP_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_SYS_UIO_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_ARPA_INET_H 1
| /* end confdefs.h.  */
| #include <windows.h>
configure:4610: result: no
configure:4645: checking for windows.h
configure:4652: result: no
configure:4829: checking syslog.h usability
configure:4841: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:4847: $? = 0
configure:4851: test -z 
			 || test ! -s conftest.err
configure:4854: $? = 0
configure:4857: test -s conftest.o
configure:4860: $? = 0
configure:4870: result: yes
configure:4874: checking syslog.h presence
configure:4884: gcc -E  conftest.c
configure:4890: $? = 0
configure:4910: result: yes
configure:4945: checking for syslog.h
configure:4952: result: yes
configure:4966: checking for int8_t
configure:4990: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:4996: $? = 0
configure:5000: test -z 
			 || test ! -s conftest.err
configure:5003: $? = 0
configure:5006: test -s conftest.o
configure:5009: $? = 0
configure:5020: result: yes
configure:5030: checking for uint8_t
configure:5054: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:5060: $? = 0
configure:5064: test -z 
			 || test ! -s conftest.err
configure:5067: $? = 0
configure:5070: test -s conftest.o
configure:5073: $? = 0
configure:5084: result: yes
configure:5094: checking for int16_t
configure:5118: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:5124: $? = 0
configure:5128: test -z 
			 || test ! -s conftest.err
configure:5131: $? = 0
configure:5134: test -s conftest.o
configure:5137: $? = 0
configure:5148: result: yes
configure:5158: checking for uint16_t
configure:5182: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:5188: $? = 0
configure:5192: test -z 
			 || test ! -s conftest.err
configure:5195: $? = 0
configure:5198: test -s conftest.o
configure:5201: $? = 0
configure:5212: result: yes
configure:5222: checking for int32_t
configure:5246: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:5252: $? = 0
configure:5256: test -z 
			 || test ! -s conftest.err
configure:5259: $? = 0
configure:5262: test -s conftest.o
configure:5265: $? = 0
configure:5276: result: yes
configure:5286: checking for uint32_t
configure:5310: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:5316: $? = 0
configure:5320: test -z 
			 || test ! -s conftest.err
configure:5323: $? = 0
configure:5326: test -s conftest.o
configure:5329: $? = 0
configure:5340: result: yes
configure:5350: checking for uint64_t
configure:5374: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:5380: $? = 0
configure:5384: test -z 
			 || test ! -s conftest.err
configure:5387: $? = 0
configure:5390: test -s conftest.o
configure:5393: $? = 0
configure:5404: result: yes
configure:5415: checking for unsigned long
configure:5439: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:5445: $? = 0
configure:5449: test -z 
			 || test ! -s conftest.err
configure:5452: $? = 0
configure:5455: test -s conftest.o
configure:5458: $? = 0
configure:5469: result: yes
configure:5472: checking size of unsigned long
configure:5791: gcc -o conftest -Wall -O4 -fexpensive-optimizations -funroll-loops   conftest.c  >&5
configure:5794: $? = 0
configure:5796: ./conftest
configure:5799: $? = 0
configure:5822: result: 8
configure:5829: checking for unsigned long long
configure:5853: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:5859: $? = 0
configure:5863: test -z 
			 || test ! -s conftest.err
configure:5866: $? = 0
configure:5869: test -s conftest.o
configure:5872: $? = 0
configure:5883: result: yes
configure:5886: checking size of unsigned long long
configure:6205: gcc -o conftest -Wall -O4 -fexpensive-optimizations -funroll-loops   conftest.c  >&5
configure:6208: $? = 0
configure:6210: ./conftest
configure:6213: $? = 0
configure:6236: result: 8
configure:6244: checking for an ANSI C-conforming const
configure:6311: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
conftest.c: In function 'main':
conftest.c:67: warning: unused variable 's'
conftest.c:87: warning: unused variable 'foo'
conftest.c:54: warning: unused variable 'zero'
conftest.c:48: warning: unused variable 'x'
conftest.c:69: warning: 't' is used uninitialized in this function
conftest.c:84: warning: 'b' is used uninitialized in this function
configure:6317: $? = 0
configure:6321: test -z 
			 || test ! -s conftest.err
configure:6324: $? = 0
configure:6327: test -s conftest.o
configure:6330: $? = 0
configure:6341: result: yes
configure:6351: checking for inline
configure:6372: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:6378: $? = 0
configure:6382: test -z 
			 || test ! -s conftest.err
configure:6385: $? = 0
configure:6388: test -s conftest.o
configure:6391: $? = 0
configure:6403: result: inline
configure:6422: checking for size_t
configure:6446: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:6452: $? = 0
configure:6456: test -z 
			 || test ! -s conftest.err
configure:6459: $? = 0
configure:6462: test -s conftest.o
configure:6465: $? = 0
configure:6476: result: yes
configure:6495: checking for socket
configure:6552: gcc -o conftest -Wall -O4 -fexpensive-optimizations -funroll-loops   conftest.c  >&5
configure:6558: $? = 0
configure:6562: test -z 
			 || test ! -s conftest.err
configure:6565: $? = 0
configure:6568: test -s conftest
configure:6571: $? = 0
configure:6583: result: yes
configure:6495: checking for inet_aton
configure:6552: gcc -o conftest -Wall -O4 -fexpensive-optimizations -funroll-loops   conftest.c  >&5
configure:6558: $? = 0
configure:6562: test -z 
			 || test ! -s conftest.err
configure:6565: $? = 0
configure:6568: test -s conftest
configure:6571: $? = 0
configure:6583: result: yes
configure:6495: checking for usleep
configure:6552: gcc -o conftest -Wall -O4 -fexpensive-optimizations -funroll-loops   conftest.c  >&5
configure:6558: $? = 0
configure:6562: test -z 
			 || test ! -s conftest.err
configure:6565: $? = 0
configure:6568: test -s conftest
configure:6571: $? = 0
configure:6583: result: yes
configure:6729: checking whether byte ordering is bigendian
configure:6756: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
configure:6762: $? = 0
configure:6766: test -z 
			 || test ! -s conftest.err
configure:6769: $? = 0
configure:6772: test -s conftest.o
configure:6775: $? = 0
configure:6799: gcc -c -Wall -O4 -fexpensive-optimizations -funroll-loops  conftest.c >&5
conftest.c: In function 'main':
conftest.c:50: error: 'not' undeclared (first use in this function)
conftest.c:50: error: (Each undeclared identifier is reported only once
conftest.c:50: error: for each function it appears in.)
conftest.c:50: error: expected ';' before 'big'
configure:6805: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define DEV_URANDOM "/dev/urandom"
| #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 HAVE_STDLIB_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_BYTESWAP_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_SYS_UIO_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_ARPA_INET_H 1
| #define HAVE_SYSLOG_H 1
| #define HAVE_INT8_T 1
| #define HAVE_UINT8_T 1
| #define HAVE_INT16_T 1
| #define HAVE_UINT16_T 1
| #define HAVE_INT32_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_UINT64_T 1
| #define SIZEOF_UNSIGNED_LONG 8
| #define SIZEOF_UNSIGNED_LONG_LONG 8
| #define HAVE_SOCKET 1
| #define HAVE_INET_ATON 1
| #define HAVE_USLEEP 1
| /* end confdefs.h.  */
| #include <sys/types.h>
| #include <sys/param.h>
| 
| int
| main ()
| {
| #if BYTE_ORDER != BIG_ENDIAN
|  not big endian
| #endif
| 
|   ;
|   return 0;
| }
configure:6940: result: no
configure:6966: checking build system type
configure:6984: result: x86_64-unknown-linux-gnu
configure:6992: checking host system type
configure:7006: result: x86_64-unknown-linux-gnu
configure:7052: checking whether to compile in debugging
configure:7068: result: yes
configure:7071: checking whether to use ISMAcryp code
configure:7087: result: no
configure:7090: checking whether to use syslog for error reporting
configure:7106: result: no
configure:7109: checking whether to use stdout for error reporting
configure:7125: result: yes
configure:7128: checking whether to use /dev/console for error reporting
configure:7149: result: no
configure:7152: checking whether to use GDOI key management
configure:7170: result: no
configure:7272: creating ./config.status

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

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

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

on hpgntae-ubiq59.eem.corp.google.com

config.status:664: creating Makefile
config.status:664: creating crypto/Makefile
config.status:664: creating doc/Makefile
config.status:768: creating crypto/include/config.h

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

ac_cv_build=x86_64-unknown-linux-gnu
ac_cv_build_alias=x86_64-unknown-linux-gnu
ac_cv_c_bigendian=no
ac_cv_c_compiler_gnu=yes
ac_cv_c_const=yes
ac_cv_c_inline=inline
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_file__dev_urandom=yes
ac_cv_func_inet_aton=yes
ac_cv_func_socket=yes
ac_cv_func_usleep=yes
ac_cv_header_arpa_inet_h=yes
ac_cv_header_byteswap_h=yes
ac_cv_header_inttypes_h=yes
ac_cv_header_machine_types_h=no
ac_cv_header_memory_h=yes
ac_cv_header_netinet_in_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_int_types_h=no
ac_cv_header_sys_socket_h=yes
ac_cv_header_sys_stat_h=yes
ac_cv_header_sys_types_h=yes
ac_cv_header_sys_uio_h=yes
ac_cv_header_syslog_h=yes
ac_cv_header_unistd_h=yes
ac_cv_header_windows_h=no
ac_cv_host=x86_64-unknown-linux-gnu
ac_cv_host_alias=x86_64-unknown-linux-gnu
ac_cv_objext=o
ac_cv_path_install='/usr/bin/install -c'
ac_cv_prog_CPP='gcc -E'
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_sizeof_unsigned_long=8
ac_cv_sizeof_unsigned_long_long=8
ac_cv_type_int16_t=yes
ac_cv_type_int32_t=yes
ac_cv_type_int8_t=yes
ac_cv_type_size_t=yes
ac_cv_type_uint16_t=yes
ac_cv_type_uint32_t=yes
ac_cv_type_uint64_t=yes
ac_cv_type_uint8_t=yes
ac_cv_type_unsigned_long=yes
ac_cv_type_unsigned_long_long=yes

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

CC='gcc'
CFLAGS='-Wall -O4 -fexpensive-optimizations -funroll-loops'
CPP='gcc -E'
CPPFLAGS=''
DEFS='-DHAVE_CONFIG_H'
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='grep -E'
EXE=''
EXEEXT=''
GDOI_OBJS=''
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
LDFLAGS=''
LIBOBJS=''
LIBS=''
LTLIBOBJS=''
OBJEXT='o'
PACKAGE_BUGREPORT=''
PACKAGE_NAME=''
PACKAGE_STRING=''
PACKAGE_TARNAME=''
PACKAGE_VERSION=''
PATH_SEPARATOR=':'
RANLIB='ranlib'
RNG_OBJS='rand_source.o'
SHELL='/bin/sh'
ac_ct_CC='gcc'
ac_ct_RANLIB='ranlib'
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'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localstatedir='${prefix}/var'
mandir='${prefix}/man'
oldincludedir='/usr/include'
prefix='/home/astor/localastor/google3/third_party/libsrtp/v1_4_2'
program_transform_name='s,x,x,'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias=''

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

#define CPU_CISC 1
#define DEV_URANDOM "/dev/urandom"
#define ENABLE_DEBUGGING 1
#define ERR_REPORTING_STDOUT 1
#define HAVE_ARPA_INET_H 1
#define HAVE_BYTESWAP_H 1
#define HAVE_INET_ATON 1
#define HAVE_INT16_T 1
#define HAVE_INT32_T 1
#define HAVE_INT8_T 1
#define HAVE_INTTYPES_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_MEMORY_H 1
#define HAVE_NETINET_IN_H 1
#define HAVE_SOCKET 1
#define HAVE_STDINT_H 1
#define HAVE_STDINT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRINGS_H 1
#define HAVE_STRING_H 1
#define HAVE_SYSLOG_H 1
#define HAVE_SYS_SOCKET_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_UIO_H 1
#define HAVE_UINT16_T 1
#define HAVE_UINT32_T 1
#define HAVE_UINT64_T 1
#define HAVE_UINT8_T 1
#define HAVE_UNISTD_H 1
#define HAVE_UNISTD_H 1
#define HAVE_USLEEP 1
#define PACKAGE_BUGREPORT ""
#define PACKAGE_NAME ""
#define PACKAGE_STRING ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define SIZEOF_UNSIGNED_LONG 8
#define SIZEOF_UNSIGNED_LONG_LONG 8
#define STDC_HEADERS 1

configure: exit 0
