2008/6/6 Mark Brown <[EMAIL PROTECTED]>:
> On Fri, Jun 06, 2008 at 06:53:31PM +0300, Marko Lindqvist wrote:
>
>> - SFLAGS="${CFLAGS-"-O3"} -fPIC"
>> + SFLAGS="${CFLAGS-"-O3"}"
>> +
>> + if ! $CC -c $CFLAGS -fPIC $test.c 2>&1 |
>> + grep "all code is position independent" >/dev/null
>> + then
>> + SFLAGS="$SFLAGS -fPIC"
>> + fi
>
> This patch is too specific to current toolchains and a specific locale
> at the minute - it'll be too fragile going forward. If you can come up
> with a test for this that checks for the feature more directly that
> would be much better.
This patch goes against more fundamental problem in zlib configure -
determining compile success/failure from compiler output and not from
compiler return value. This fixes above fPIC warning problem, and is
more robust against similar future problems.
- ML
diff -Nurd zlib/configure zlib/configure
--- zlib/configure 2008-07-13 01:40:19.000000000 +0300
+++ zlib/configure 2008-07-13 01:43:22.000000000 +0300
@@ -190,8 +190,8 @@
if test $shared -eq 1; then
echo Checking for shared library support...
# we must test in two steps (cc then ld), required at least on SunOS 4.x
- if test "`($CC -c $SFLAGS $test.c) 2>&1`" = "" &&
- test "`($LDSHARED -o $test$shared_ext $test.o) 2>&1`" = ""; then
+ if $CC -c $SFLAGS $test.c >/dev/null 2>&1 &&
+ $LDSHARED -o $test$shared_ext $test.o >/dev/null 2>&1 ; then
LIBS="$LIBS $SHAREDLIBV"
echo Building shared library $SHAREDLIBV with $CC.
elif test -z "$old_cc" -a -z "$old_cflags"; then
@@ -228,7 +228,7 @@
#include <sys/types.h>
off64_t dummy = 0;
EOF
-if test "`($CC -c $CFLAGS -D_LARGEFILE64_SOURCE=1 $test.c) 2>&1`" = ""; then
+if $CC -c $CFLAGS -D_LARGEFILE64_SOURCE=1 $test.c >/dev/null 2>&1 ; then
CFLAGS="${CFLAGS} -D_LARGEFILE64_SOURCE=1"
SFLAGS="${SFLAGS} -D_LARGEFILE64_SOURCE=1"
echo "Checking for off64_t... Yes."
@@ -242,7 +242,7 @@
return 0;
}
EOF
- if test "`($CC $CFLAGS -o $test $test.c) 2>&1`" = ""; then
+ if $CC $CFLAGS -o $test $test.c >/dev/null 2>&1 ; then
echo "Checking for fseeko... Yes."
else
CFLAGS="${CFLAGS} -DNO_FSEEKO"
@@ -255,7 +255,7 @@
#include <unistd.h>
int main() { return 0; }
EOF
-if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
+if $CC -c $CFLAGS $test.c >/dev/null 2>&1 ; then
cat >> zlibdefs.h <<EOF
#include <sys/types.h> /* for off_t */
#include <unistd.h> /* for SEEK_* and off_t */
@@ -292,7 +292,7 @@
}
EOF
-if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
+if $CC -c $CFLAGS $test.c >/dev/null 2>&1 ; then
echo "Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()."
cat > $test.c <<EOF
@@ -316,7 +316,7 @@
}
EOF
- if test "`($CC $CFLAGS -o $test $test.c) 2>&1`" = ""; then
+ if $CC $CFLAGS -o $test $test.c >/dev/null 2>&1 ; then
echo "Checking for vsnprintf() in stdio.h... Yes."
cat >$test.c <<EOF
@@ -341,7 +341,7 @@
}
EOF
- if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
+ if $CC -c $CFLAGS $test.c >/dev/null 2>&1 ; then
echo "Checking for return value of vsnprintf()... Yes."
else
CFLAGS="$CFLAGS -DHAS_vsnprintf_void"
@@ -379,7 +379,7 @@
}
EOF
- if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
+ if $CC -c $CFLAGS $test.c >/dev/null 2>&1 ; then
echo "Checking for return value of vsprintf()... Yes."
else
CFLAGS="$CFLAGS -DHAS_vsprintf_void"
@@ -409,7 +409,7 @@
}
EOF
- if test "`($CC $CFLAGS -o $test $test.c) 2>&1`" = ""; then
+ if $CC $CFLAGS -o $test $test.c >/dev/null 2>&1 ; then
echo "Checking for snprintf() in stdio.h... Yes."
cat >$test.c <<EOF
@@ -428,7 +428,7 @@
}
EOF
- if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
+ if $CC -c $CFLAGS $test.c >/dev/null 2>&1 ; then
echo "Checking for return value of snprintf()... Yes."
else
CFLAGS="$CFLAGS -DHAS_snprintf_void"
@@ -460,7 +460,7 @@
}
EOF
- if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
+ if $CC -c $CFLAGS $test.c >/dev/null 2>&1 ; then
echo "Checking for return value of sprintf()... Yes."
else
CFLAGS="$CFLAGS -DHAS_sprintf_void"
@@ -476,7 +476,7 @@
#include <errno.h>
int main() { return 0; }
EOF
-if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
+if $CC -c $CFLAGS $test.c >/dev/null 2>&1 ; then
echo "Checking for errno.h... Yes."
else
echo "Checking for errno.h... No."
@@ -491,7 +491,7 @@
return mmap((caddr_t)0, (off_t)0, PROT_READ, MAP_SHARED, 0, (off_t)0);
}
EOF
-if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
+if $CC -c $CFLAGS $test.c >/dev/null 2>&1 ; then
CFLAGS="$CFLAGS -DUSE_MMAP"
echo Checking for mmap support... Yes.
else