提交 520561c5 编写于 作者: M Mark Adler

Add the generation of configure.log by ./configure.

上级 32d8a537
...@@ -250,7 +250,7 @@ clean: ...@@ -250,7 +250,7 @@ clean:
maintainer-clean: distclean maintainer-clean: distclean
distclean: clean zconf zconf.h.cmakein docs distclean: clean zconf zconf.h.cmakein docs
rm -f Makefile zlib.pc rm -f Makefile zlib.pc configure.log
-@rm -f .DS_Store -@rm -f .DS_Store
-@printf 'all:\n\t-@echo "Please use ./configure first. Thank you."\n' > Makefile -@printf 'all:\n\t-@echo "Please use ./configure first. Thank you."\n' > Makefile
-@printf '\ndistclean:\n\tmake -f Makefile.in distclean\n' >> Makefile -@printf '\ndistclean:\n\tmake -f Makefile.in distclean\n' >> Makefile
......
...@@ -13,6 +13,10 @@ ...@@ -13,6 +13,10 @@
# If you have problems, try without defining CC and CFLAGS before reporting # If you have problems, try without defining CC and CFLAGS before reporting
# an error. # an error.
echo -------------------- >> configure.log
echo $0 $* >> configure.log
date >> configure.log
if [ -n "${CHOST}" ]; then if [ -n "${CHOST}" ]; then
uname="`echo "${CHOST}" | sed -e 's/^[^-]*-\([^-]*\)$/\1/' -e 's/^[^-]*-[^-]*-\([^-]*\)$/\1/' -e 's/^[^-]*-[^-]*-\([^-]*\)-.*$/\1/'`" uname="`echo "${CHOST}" | sed -e 's/^[^-]*-\([^-]*\)$/\1/' -e 's/^[^-]*-[^-]*-\([^-]*\)$/\1/' -e 's/^[^-]*-[^-]*-\([^-]*\)-.*$/\1/'`"
CROSS_PREFIX="${CHOST}-" CROSS_PREFIX="${CHOST}-"
...@@ -25,21 +29,21 @@ VER2=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\)\\..*/\1/p' < zlib.h` ...@@ -25,21 +29,21 @@ VER2=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\)\\..*/\1/p' < zlib.h`
VER1=`sed -n -e '/VERSION "/s/.*"\([0-9]*\)\\..*/\1/p' < zlib.h` VER1=`sed -n -e '/VERSION "/s/.*"\([0-9]*\)\\..*/\1/p' < zlib.h`
if "${CROSS_PREFIX}ar" --version >/dev/null 2>/dev/null || test $? -lt 126; then if "${CROSS_PREFIX}ar" --version >/dev/null 2>/dev/null || test $? -lt 126; then
AR=${AR-"${CROSS_PREFIX}ar"} AR=${AR-"${CROSS_PREFIX}ar"}
test -n "${CROSS_PREFIX}" && echo Using ${AR} test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
else else
AR=${AR-"ar"} AR=${AR-"ar"}
test -n "${CROSS_PREFIX}" && echo Using ${AR} test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
fi fi
ARFLAGS=${ARFLAGS-"rc"} ARFLAGS=${ARFLAGS-"rc"}
if "${CROSS_PREFIX}ranlib" --version >/dev/null 2>/dev/null || test $? -lt 126; then if "${CROSS_PREFIX}ranlib" --version >/dev/null 2>/dev/null || test $? -lt 126; then
RANLIB=${RANLIB-"${CROSS_PREFIX}ranlib"} RANLIB=${RANLIB-"${CROSS_PREFIX}ranlib"}
test -n "${CROSS_PREFIX}" && echo Using ${RANLIB} test -n "${CROSS_PREFIX}" && echo Using ${RANLIB} | tee -a configure.log
else else
RANLIB=${RANLIB-"ranlib"} RANLIB=${RANLIB-"ranlib"}
fi fi
if "${CROSS_PREFIX}nm" --version >/dev/null 2>/dev/null || test $? -lt 126; then if "${CROSS_PREFIX}nm" --version >/dev/null 2>/dev/null || test $? -lt 126; then
NM=${NM-"${CROSS_PREFIX}nm"} NM=${NM-"${CROSS_PREFIX}nm"}
test -n "${CROSS_PREFIX}" && echo Using ${NM} test -n "${CROSS_PREFIX}" && echo Using ${NM} | tee -a configure.log
else else
NM=${NM-"nm"} NM=${NM-"nm"}
fi fi
...@@ -68,10 +72,10 @@ while test $# -ge 1 ...@@ -68,10 +72,10 @@ while test $# -ge 1
do do
case "$1" in case "$1" in
-h* | --help) -h* | --help)
echo 'usage:' echo 'usage:' | tee -a configure.log
echo ' configure [--zprefix] [--prefix=PREFIX] [--eprefix=EXPREFIX]' echo ' configure [--zprefix] [--prefix=PREFIX] [--eprefix=EXPREFIX]' | tee -a configure.log
echo ' [--static] [--64] [--libdir=LIBDIR] [--sharedlibdir=LIBDIR]' echo ' [--static] [--64] [--libdir=LIBDIR] [--sharedlibdir=LIBDIR]' | tee -a configure.log
echo ' [--includedir=INCLUDEDIR] [--archs="-arch i386 -arch x86_64"]' echo ' [--includedir=INCLUDEDIR] [--archs="-arch i386 -arch x86_64"]' | tee -a configure.log
exit 0 ;; exit 0 ;;
-p*=* | --prefix=*) prefix=`echo $1 | sed 's/.*=//'`; shift ;; -p*=* | --prefix=*) prefix=`echo $1 | sed 's/.*=//'`; shift ;;
-e*=* | --eprefix=*) exec_prefix=`echo $1 | sed 's/.*=//'`; shift ;; -e*=* | --eprefix=*) exec_prefix=`echo $1 | sed 's/.*=//'`; shift ;;
...@@ -90,35 +94,56 @@ case "$1" in ...@@ -90,35 +94,56 @@ case "$1" in
-z* | --zprefix) zprefix=1; shift ;; -z* | --zprefix) zprefix=1; shift ;;
-6* | --64) build64=1; shift ;; -6* | --64) build64=1; shift ;;
-a*=* | --archs=*) ARCHS=`echo $1 | sed 's/.*=//'`; shift ;; -a*=* | --archs=*) ARCHS=`echo $1 | sed 's/.*=//'`; shift ;;
--sysconfdir=*) echo "ignored option: --sysconfdir"; shift ;; --sysconfdir=*) echo "ignored option: --sysconfdir" | tee -a configure.log; shift ;;
--localstatedir=*) echo "ignored option: --localstatedir"; shift ;; --localstatedir=*) echo "ignored option: --localstatedir" | tee -a configure.log; shift ;;
*) echo "unknown option: $1"; echo "$0 --help for help"; exit 1 ;; *) echo "unknown option: $1"; echo "$0 --help for help" | tee -a configure.log; exit 1 ;;
esac esac
done done
test=ztest$$ test=ztest$$
show()
{
case "$*" in
*$test.c*)
echo === $test.c === >> configure.log
cat $test.c >> configure.log
echo === >> configure.log;;
esac
echo $* >> configure.log
}
cat > $test.c <<EOF cat > $test.c <<EOF
#error error #error error
EOF EOF
if ($CC -c $CFLAGS $test.c) 2>/dev/null; then if ($CC -c $CFLAGS $test.c) 2>/dev/null; then
try() try()
{ {
test "`( $* ) 2>&1`" = "" show $*
test "`( $* ) 2>&1 | tee -a configure.log`" = ""
} }
echo - using any output from compiler to indicate an error >> configure.log
else else
try() try()
{ {
( $* ) 2>/dev/null show $*
( $* ) >> configure.log 2>&1
ret=$?
if test $ret -ne 0; then
echo "(exit code "$ret")" >> configure.log
fi
return $ret
} }
fi fi
echo >> configure.log
cat > $test.c <<EOF cat > $test.c <<EOF
extern int getchar(); extern int getchar();
int hello() {return getchar();} int hello() {return getchar();}
EOF EOF
test -z "$CC" && echo Checking for ${CROSS_PREFIX}gcc... test -z "$CC" && echo Checking for ${CROSS_PREFIX}gcc... | tee -a configure.log
cc=${CC-${CROSS_PREFIX}gcc} cc=${CC-${CROSS_PREFIX}gcc}
cflags=${CFLAGS-"-O3"} cflags=${CFLAGS-"-O3"}
# to force the asm version use: CFLAGS="-O3 -DASMV" ./configure # to force the asm version use: CFLAGS="-O3 -DASMV" ./configure
...@@ -129,7 +154,9 @@ case `$cc -v 2>&1` in ...@@ -129,7 +154,9 @@ case `$cc -v 2>&1` in
*gcc*) gcc=1 ;; *gcc*) gcc=1 ;;
esac esac
if test "$gcc" -eq 1 && ($cc -c $cflags $test.c) 2>/dev/null; then show $cc -c $cflags $test.c
if test "$gcc" -eq 1 && ($cc -c $cflags $test.c) >> configure.log 2>&1; then
echo ... using gcc >> configure.log
CC="$cc" CC="$cc"
CFLAGS="${CFLAGS--O3} ${ARCHS}" CFLAGS="${CFLAGS--O3} ${ARCHS}"
SFLAGS="${CFLAGS--O3} -fPIC" SFLAGS="${CFLAGS--O3} -fPIC"
...@@ -152,7 +179,7 @@ if test "$gcc" -eq 1 && ($cc -c $cflags $test.c) 2>/dev/null; then ...@@ -152,7 +179,7 @@ if test "$gcc" -eq 1 && ($cc -c $cflags $test.c) 2>/dev/null; then
MINGW* | mingw*) MINGW* | mingw*)
# temporary bypass # temporary bypass
rm -f $test.[co] $test $test$shared_ext rm -f $test.[co] $test $test$shared_ext
echo "Please use win32/Makefile.gcc instead." echo "Please use win32/Makefile.gcc instead." | tee -a configure.log
exit 1 exit 1
LDSHARED=${LDSHARED-"$cc -shared"} LDSHARED=${LDSHARED-"$cc -shared"}
LDSHAREDLIBC="" LDSHAREDLIBC=""
...@@ -184,6 +211,7 @@ else ...@@ -184,6 +211,7 @@ else
# find system name and corresponding cc options # find system name and corresponding cc options
CC=${CC-cc} CC=${CC-cc}
gcc=0 gcc=0
echo ... using $CC >> configure.log
if test -z "$uname"; then if test -z "$uname"; then
uname=`(uname -sr || echo unknown) 2>/dev/null` uname=`(uname -sr || echo unknown) 2>/dev/null`
fi fi
...@@ -262,21 +290,19 @@ SHAREDLIB=${SHAREDLIB-"libz$shared_ext"} ...@@ -262,21 +290,19 @@ SHAREDLIB=${SHAREDLIB-"libz$shared_ext"}
SHAREDLIBV=${SHAREDLIBV-"libz$shared_ext.$VER"} SHAREDLIBV=${SHAREDLIBV-"libz$shared_ext.$VER"}
SHAREDLIBM=${SHAREDLIBM-"libz$shared_ext.$VER1"} SHAREDLIBM=${SHAREDLIBM-"libz$shared_ext.$VER1"}
echo >> configure.log
if test $shared -eq 1; then if test $shared -eq 1; then
echo Checking for shared library support... echo Checking for shared library support... | tee -a configure.log
# we must test in two steps (cc then ld), required at least on SunOS 4.x # we must test in two steps (cc then ld), required at least on SunOS 4.x
if try $CC -w -c $SFLAGS $test.c && if try $CC -w -c $SFLAGS $test.c &&
try $LDSHARED $SFLAGS -o $test$shared_ext $test.o; then try $LDSHARED $SFLAGS -o $test$shared_ext $test.o; then
echo Building shared library $SHAREDLIBV with $CC. echo Building shared library $SHAREDLIBV with $CC. | tee -a configure.log
elif test -z "$old_cc" -a -z "$old_cflags"; then elif test -z "$old_cc" -a -z "$old_cflags"; then
echo No shared library support. echo No shared library support. | tee -a configure.log
shared=0; shared=0;
else else
echo Tested $CC -w -c $SFLAGS $test.c echo 'No shared library support; try without defining CC and CFLAGS' | tee -a configure.log
$CC -w -c $SFLAGS $test.c
echo Tested $LDSHARED $SFLAGS -o $test$shared_ext $test.o
$LDSHARED $SFLAGS -o $test$shared_ext $test.o
echo 'No shared library support; try without defining CC and CFLAGS'
shared=0; shared=0;
fi fi
fi fi
...@@ -287,12 +313,27 @@ if test $shared -eq 0; then ...@@ -287,12 +313,27 @@ if test $shared -eq 0; then
SHAREDLIB="" SHAREDLIB=""
SHAREDLIBV="" SHAREDLIBV=""
SHAREDLIBM="" SHAREDLIBM=""
echo Building static library $STATICLIB version $VER with $CC. echo Building static library $STATICLIB version $VER with $CC. | tee -a configure.log
else else
ALL="static shared" ALL="static shared"
TEST="all teststatic testshared" TEST="all teststatic testshared"
fi fi
CPP=${CPP-"$CC -E"}
case $CFLAGS in
*ASMV*)
echo >> configure.log
show "$NM $test.o | grep _hello"
if test "`$NM $test.o | grep _hello | tee -a configure.log`" = ""; then
CPP="$CPP -DNO_UNDERLINE"
echo Checking for underline in external names... No. | tee -a configure.log
else
echo Checking for underline in external names... Yes. | tee -a configure.log
fi ;;
esac
echo >> configure.log
cat > $test.c <<EOF cat > $test.c <<EOF
#include <sys/types.h> #include <sys/types.h>
off64_t dummy = 0; off64_t dummy = 0;
...@@ -302,10 +343,11 @@ if try $CC -c $CFLAGS -D_LARGEFILE64_SOURCE=1 $test.c; then ...@@ -302,10 +343,11 @@ if try $CC -c $CFLAGS -D_LARGEFILE64_SOURCE=1 $test.c; then
SFLAGS="${SFLAGS} -D_LARGEFILE64_SOURCE=1" SFLAGS="${SFLAGS} -D_LARGEFILE64_SOURCE=1"
ALL="${ALL} all64" ALL="${ALL} all64"
TEST="${TEST} test64" TEST="${TEST} test64"
echo "Checking for off64_t... Yes." echo "Checking for off64_t... Yes." | tee -a configure.log
echo "Checking for fseeko... Yes." echo "Checking for fseeko... Yes." | tee -a configure.log
else else
echo "Checking for off64_t... No." echo "Checking for off64_t... No." | tee -a configure.log
echo >> configure.log
cat > $test.c <<EOF cat > $test.c <<EOF
#include <stdio.h> #include <stdio.h>
int main(void) { int main(void) {
...@@ -314,16 +356,18 @@ int main(void) { ...@@ -314,16 +356,18 @@ int main(void) {
} }
EOF EOF
if try $CC $CFLAGS -o $test $test.c; then if try $CC $CFLAGS -o $test $test.c; then
echo "Checking for fseeko... Yes." echo "Checking for fseeko... Yes." | tee -a configure.log
else else
CFLAGS="${CFLAGS} -DNO_FSEEKO" CFLAGS="${CFLAGS} -DNO_FSEEKO"
SFLAGS="${SFLAGS} -DNO_FSEEKO" SFLAGS="${SFLAGS} -DNO_FSEEKO"
echo "Checking for fseeko... No." echo "Checking for fseeko... No." | tee -a configure.log
fi fi
fi fi
cp -p zconf.h.in zconf.h cp -p zconf.h.in zconf.h
echo >> configure.log
cat > $test.c <<EOF cat > $test.c <<EOF
#include <unistd.h> #include <unistd.h>
int main() { return 0; } int main() { return 0; }
...@@ -331,11 +375,13 @@ EOF ...@@ -331,11 +375,13 @@ EOF
if try $CC -c $CFLAGS $test.c; then if try $CC -c $CFLAGS $test.c; then
sed < zconf.h "/^#ifdef HAVE_UNISTD_H.* may be/s/def HAVE_UNISTD_H\(.*\) may be/ 1\1 was/" > zconf.temp.h sed < zconf.h "/^#ifdef HAVE_UNISTD_H.* may be/s/def HAVE_UNISTD_H\(.*\) may be/ 1\1 was/" > zconf.temp.h
mv zconf.temp.h zconf.h mv zconf.temp.h zconf.h
echo "Checking for unistd.h... Yes." echo "Checking for unistd.h... Yes." | tee -a configure.log
else else
echo "Checking for unistd.h... No." echo "Checking for unistd.h... No." | tee -a configure.log
fi fi
echo >> configure.log
cat > $test.c <<EOF cat > $test.c <<EOF
#include <stdarg.h> #include <stdarg.h>
int main() { return 0; } int main() { return 0; }
...@@ -343,15 +389,16 @@ EOF ...@@ -343,15 +389,16 @@ EOF
if try $CC -c $CFLAGS $test.c; then if try $CC -c $CFLAGS $test.c; then
sed < zconf.h "/^#ifdef HAVE_STDARG_H.* may be/s/def HAVE_STDARG_H\(.*\) may be/ 1\1 was/" > zconf.temp.h sed < zconf.h "/^#ifdef HAVE_STDARG_H.* may be/s/def HAVE_STDARG_H\(.*\) may be/ 1\1 was/" > zconf.temp.h
mv zconf.temp.h zconf.h mv zconf.temp.h zconf.h
echo "Checking for stdarg.h... Yes." echo "Checking for stdarg.h... Yes." | tee -a configure.log
else else
echo "Checking for stdarg.h... No." echo "Checking for stdarg.h... No." | tee -a configure.log
fi fi
if test $zprefix -eq 1; then if test $zprefix -eq 1; then
sed < zconf.h "/#ifdef Z_PREFIX.* may be/s/def Z_PREFIX\(.*\) may be/ 1\1 was/" > zconf.temp.h sed < zconf.h "/#ifdef Z_PREFIX.* may be/s/def Z_PREFIX\(.*\) may be/ 1\1 was/" > zconf.temp.h
mv zconf.temp.h zconf.h mv zconf.temp.h zconf.h
echo "Using z_ prefix on all symbols." echo >> configure.log
echo "Using z_ prefix on all symbols." | tee -a configure.log
fi fi
if test $solo -eq 1; then if test $solo -eq 1; then
...@@ -368,63 +415,59 @@ if test $cover -eq 1; then ...@@ -368,63 +415,59 @@ if test $cover -eq 1; then
CFLAGS="${CFLAGS} -fprofile-arcs -ftest-coverage" CFLAGS="${CFLAGS} -fprofile-arcs -ftest-coverage"
fi fi
echo >> configure.log
cat > $test.c <<EOF cat > $test.c <<EOF
#include <stdio.h> #include <stdio.h>
#include <stdarg.h> #include <stdarg.h>
#include "zconf.h" #include "zconf.h"
int main() int main()
{ {
#ifndef STDC #ifndef STDC
choke me choke me
#endif #endif
return 0; return 0;
} }
EOF EOF
if try $CC -c $CFLAGS $test.c; then if try $CC -c $CFLAGS $test.c; then
echo "Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()." echo "Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()." | tee -a configure.log
echo >> configure.log
cat > $test.c <<EOF cat > $test.c <<EOF
#include <stdio.h> #include <stdio.h>
#include <stdarg.h> #include <stdarg.h>
int mytest(const char *fmt, ...) int mytest(const char *fmt, ...)
{ {
char buf[20]; char buf[20];
va_list ap; va_list ap;
va_start(ap, fmt); va_start(ap, fmt);
vsnprintf(buf, sizeof(buf), fmt, ap); vsnprintf(buf, sizeof(buf), fmt, ap);
va_end(ap); va_end(ap);
return 0; return 0;
} }
int main() int main()
{ {
return (mytest("Hello%d\n", 1)); return (mytest("Hello%d\n", 1));
} }
EOF EOF
if try $CC $CFLAGS -o $test $test.c; then if try $CC $CFLAGS -o $test $test.c; then
echo "Checking for vsnprintf() in stdio.h... Yes." echo "Checking for vsnprintf() in stdio.h... Yes." | tee -a configure.log
echo >> configure.log
cat >$test.c <<EOF cat >$test.c <<EOF
#include <stdio.h> #include <stdio.h>
#include <stdarg.h> #include <stdarg.h>
int mytest(const char *fmt, ...) int mytest(const char *fmt, ...)
{ {
int n; int n;
char buf[20]; char buf[20];
va_list ap; va_list ap;
va_start(ap, fmt); va_start(ap, fmt);
n = vsnprintf(buf, sizeof(buf), fmt, ap); n = vsnprintf(buf, sizeof(buf), fmt, ap);
va_end(ap); va_end(ap);
return n; return n;
} }
int main() int main()
{ {
return (mytest("Hello%d\n", 1)); return (mytest("Hello%d\n", 1));
...@@ -432,39 +475,37 @@ int main() ...@@ -432,39 +475,37 @@ int main()
EOF EOF
if try $CC -c $CFLAGS $test.c; then if try $CC -c $CFLAGS $test.c; then
echo "Checking for return value of vsnprintf()... Yes." echo "Checking for return value of vsnprintf()... Yes." | tee -a configure.log
else else
CFLAGS="$CFLAGS -DHAS_vsnprintf_void" CFLAGS="$CFLAGS -DHAS_vsnprintf_void"
SFLAGS="$SFLAGS -DHAS_vsnprintf_void" SFLAGS="$SFLAGS -DHAS_vsnprintf_void"
echo "Checking for return value of vsnprintf()... No." echo "Checking for return value of vsnprintf()... No." | tee -a configure.log
echo " WARNING: apparently vsnprintf() does not return a value. zlib" echo " WARNING: apparently vsnprintf() does not return a value. zlib" | tee -a configure.log
echo " can build but will be open to possible string-format security" echo " can build but will be open to possible string-format security" | tee -a configure.log
echo " vulnerabilities." echo " vulnerabilities." | tee -a configure.log
fi fi
else else
CFLAGS="$CFLAGS -DNO_vsnprintf" CFLAGS="$CFLAGS -DNO_vsnprintf"
SFLAGS="$SFLAGS -DNO_vsnprintf" SFLAGS="$SFLAGS -DNO_vsnprintf"
echo "Checking for vsnprintf() in stdio.h... No." echo "Checking for vsnprintf() in stdio.h... No." | tee -a configure.log
echo " WARNING: vsnprintf() not found, falling back to vsprintf(). zlib" echo " WARNING: vsnprintf() not found, falling back to vsprintf(). zlib" | tee -a configure.log
echo " can build but will be open to possible buffer-overflow security" echo " can build but will be open to possible buffer-overflow security" | tee -a configure.log
echo " vulnerabilities." echo " vulnerabilities." | tee -a configure.log
echo >> configure.log
cat >$test.c <<EOF cat >$test.c <<EOF
#include <stdio.h> #include <stdio.h>
#include <stdarg.h> #include <stdarg.h>
int mytest(const char *fmt, ...) int mytest(const char *fmt, ...)
{ {
int n; int n;
char buf[20]; char buf[20];
va_list ap; va_list ap;
va_start(ap, fmt); va_start(ap, fmt);
n = vsprintf(buf, fmt, ap); n = vsprintf(buf, fmt, ap);
va_end(ap); va_end(ap);
return n; return n;
} }
int main() int main()
{ {
return (mytest("Hello%d\n", 1)); return (mytest("Hello%d\n", 1));
...@@ -472,30 +513,28 @@ int main() ...@@ -472,30 +513,28 @@ int main()
EOF EOF
if try $CC -c $CFLAGS $test.c; then if try $CC -c $CFLAGS $test.c; then
echo "Checking for return value of vsprintf()... Yes." echo "Checking for return value of vsprintf()... Yes." | tee -a configure.log
else else
CFLAGS="$CFLAGS -DHAS_vsprintf_void" CFLAGS="$CFLAGS -DHAS_vsprintf_void"
SFLAGS="$SFLAGS -DHAS_vsprintf_void" SFLAGS="$SFLAGS -DHAS_vsprintf_void"
echo "Checking for return value of vsprintf()... No." echo "Checking for return value of vsprintf()... No." | tee -a configure.log
echo " WARNING: apparently vsprintf() does not return a value. zlib" echo " WARNING: apparently vsprintf() does not return a value. zlib" | tee -a configure.log
echo " can build but will be open to possible string-format security" echo " can build but will be open to possible string-format security" | tee -a configure.log
echo " vulnerabilities." echo " vulnerabilities." | tee -a configure.log
fi fi
fi fi
else else
echo "Checking whether to use vs[n]printf() or s[n]printf()... using s[n]printf()." echo "Checking whether to use vs[n]printf() or s[n]printf()... using s[n]printf()." | tee -a configure.log
echo >> configure.log
cat >$test.c <<EOF cat >$test.c <<EOF
#include <stdio.h> #include <stdio.h>
int mytest() int mytest()
{ {
char buf[20]; char buf[20];
snprintf(buf, sizeof(buf), "%s", "foo"); snprintf(buf, sizeof(buf), "%s", "foo");
return 0; return 0;
} }
int main() int main()
{ {
return (mytest()); return (mytest());
...@@ -503,18 +542,16 @@ int main() ...@@ -503,18 +542,16 @@ int main()
EOF EOF
if try $CC $CFLAGS -o $test $test.c; then if try $CC $CFLAGS -o $test $test.c; then
echo "Checking for snprintf() in stdio.h... Yes." echo "Checking for snprintf() in stdio.h... Yes." | tee -a configure.log
echo >> configure.log
cat >$test.c <<EOF cat >$test.c <<EOF
#include <stdio.h> #include <stdio.h>
int mytest() int mytest()
{ {
char buf[20]; char buf[20];
return snprintf(buf, sizeof(buf), "%s", "foo"); return snprintf(buf, sizeof(buf), "%s", "foo");
} }
int main() int main()
{ {
return (mytest()); return (mytest());
...@@ -522,33 +559,31 @@ int main() ...@@ -522,33 +559,31 @@ int main()
EOF EOF
if try $CC -c $CFLAGS $test.c; then if try $CC -c $CFLAGS $test.c; then
echo "Checking for return value of snprintf()... Yes." echo "Checking for return value of snprintf()... Yes." | tee -a configure.log
else else
CFLAGS="$CFLAGS -DHAS_snprintf_void" CFLAGS="$CFLAGS -DHAS_snprintf_void"
SFLAGS="$SFLAGS -DHAS_snprintf_void" SFLAGS="$SFLAGS -DHAS_snprintf_void"
echo "Checking for return value of snprintf()... No." echo "Checking for return value of snprintf()... No." | tee -a configure.log
echo " WARNING: apparently snprintf() does not return a value. zlib" echo " WARNING: apparently snprintf() does not return a value. zlib" | tee -a configure.log
echo " can build but will be open to possible string-format security" echo " can build but will be open to possible string-format security" | tee -a configure.log
echo " vulnerabilities." echo " vulnerabilities." | tee -a configure.log
fi fi
else else
CFLAGS="$CFLAGS -DNO_snprintf" CFLAGS="$CFLAGS -DNO_snprintf"
SFLAGS="$SFLAGS -DNO_snprintf" SFLAGS="$SFLAGS -DNO_snprintf"
echo "Checking for snprintf() in stdio.h... No." echo "Checking for snprintf() in stdio.h... No." | tee -a configure.log
echo " WARNING: snprintf() not found, falling back to sprintf(). zlib" echo " WARNING: snprintf() not found, falling back to sprintf(). zlib" | tee -a configure.log
echo " can build but will be open to possible buffer-overflow security" echo " can build but will be open to possible buffer-overflow security" | tee -a configure.log
echo " vulnerabilities." echo " vulnerabilities." | tee -a configure.log
echo >> configure.log
cat >$test.c <<EOF cat >$test.c <<EOF
#include <stdio.h> #include <stdio.h>
int mytest() int mytest()
{ {
char buf[20]; char buf[20];
return sprintf(buf, "%s", "foo"); return sprintf(buf, "%s", "foo");
} }
int main() int main()
{ {
return (mytest()); return (mytest());
...@@ -556,19 +591,20 @@ int main() ...@@ -556,19 +591,20 @@ int main()
EOF EOF
if try $CC -c $CFLAGS $test.c; then if try $CC -c $CFLAGS $test.c; then
echo "Checking for return value of sprintf()... Yes." echo "Checking for return value of sprintf()... Yes." | tee -a configure.log
else else
CFLAGS="$CFLAGS -DHAS_sprintf_void" CFLAGS="$CFLAGS -DHAS_sprintf_void"
SFLAGS="$SFLAGS -DHAS_sprintf_void" SFLAGS="$SFLAGS -DHAS_sprintf_void"
echo "Checking for return value of sprintf()... No." echo "Checking for return value of sprintf()... No." | tee -a configure.log
echo " WARNING: apparently sprintf() does not return a value. zlib" echo " WARNING: apparently sprintf() does not return a value. zlib" | tee -a configure.log
echo " can build but will be open to possible string-format security" echo " can build but will be open to possible string-format security" | tee -a configure.log
echo " vulnerabilities." echo " vulnerabilities." | tee -a configure.log
fi fi
fi fi
fi fi
if test "$gcc" -eq 1; then if test "$gcc" -eq 1; then
echo >> configure.log
cat > $test.c <<EOF cat > $test.c <<EOF
#if ((__GNUC__-0) * 10 + __GNUC_MINOR__-0 >= 33) #if ((__GNUC__-0) * 10 + __GNUC_MINOR__-0 >= 33)
# define ZLIB_INTERNAL __attribute__((visibility ("hidden"))) # define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
...@@ -582,27 +618,50 @@ int main() ...@@ -582,27 +618,50 @@ int main()
} }
EOF EOF
if try $CC -c $CFLAGS $test.c; then if try $CC -c $CFLAGS $test.c; then
echo "Checking for attribute(visibility) support... Yes." echo "Checking for attribute(visibility) support... Yes." | tee -a configure.log
else else
CFLAGS="$CFLAGS -DNO_VIZ" CFLAGS="$CFLAGS -DNO_VIZ"
SFLAGS="$SFLAGS -DNO_VIZ" SFLAGS="$SFLAGS -DNO_VIZ"
echo "Checking for attribute(visibility) support... No." echo "Checking for attribute(visibility) support... No." | tee -a configure.log
fi fi
fi fi
CPP=${CPP-"$CC -E"}
case $CFLAGS in
*ASMV*)
if test "`$NM $test.o | grep _hello`" = ""; then
CPP="$CPP -DNO_UNDERLINE"
echo Checking for underline in external names... No.
else
echo Checking for underline in external names... Yes.
fi ;;
esac
rm -f $test.[co] $test $test$shared_ext $test.gcno rm -f $test.[co] $test $test$shared_ext $test.gcno
# show the results in the log
echo >> configure.log
echo ALL = $ALL >> configure.log
echo AR = $AR >> configure.log
echo ARFLAGS = $ARFLAGS >> configure.log
echo CC = $CC >> configure.log
echo CFLAGS = $CFLAGS >> configure.log
echo CPP = $CPP >> configure.log
echo EXE = $EXE >> configure.log
echo LDCONFIG = $LDCONFIG >> configure.log
echo LDFLAGS = $LDFLAGS >> configure.log
echo LDSHARED = $LDSHARED >> configure.log
echo LDSHAREDLIBC = $LDSHAREDLIBC >> configure.log
echo OBJC = $OBJC >> configure.log
echo PIC_OBJC = $PIC_OBJC >> configure.log
echo RANLIB = $RANLIB >> configure.log
echo SFLAGS = $SFLAGS >> configure.log
echo SHAREDLIB = $SHAREDLIB >> configure.log
echo SHAREDLIBM = $SHAREDLIBM >> configure.log
echo SHAREDLIBV = $SHAREDLIBV >> configure.log
echo STATICLIB = $STATICLIB >> configure.log
echo TEST = $TEST >> configure.log
echo VER = $VER >> configure.log
echo exec_prefix = $exec_prefix >> configure.log
echo includedir = $includedir >> configure.log
echo libdir = $libdir >> configure.log
echo mandir = $mandir >> configure.log
echo prefix = $prefix >> configure.log
echo sharedlibdir = $sharedlibdir >> configure.log
echo uname = $uname >> configure.log
echo -------------------- >> configure.log
echo >> configure.log
echo >> configure.log
# udpate Makefile # udpate Makefile
sed < Makefile.in " sed < Makefile.in "
/^CC *=/s#=.*#=$CC# /^CC *=/s#=.*#=$CC#
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册