$NetBSD: patch-aa,v 1.3 2012/04/27 16:53:13 dholland Exp $

- avoid infinite loop in options processing
- ...?

--- configure.orig	2009-07-31 14:46:19.000000000 +0000
+++ configure
@@ -485,6 +485,9 @@ the corresponding command-line options (
 EOT
 	    exit $exitval
 	fi
+    else
+	echo "$0: $1: Invalid argument/option" 1>&2
+	exit 1
     fi
 done
 
@@ -1374,10 +1377,10 @@ EOT
 	    cat >$CONFTMP/test-lib.c <<EOT
 		int foo() {no_such_symbol();}
 EOT
-	    if run $CC $CC_FLAGS $CC_LIBS $CONFTMP/test-dlopen.c -o $CONFTMP/test ; then
+	    if run $CC -fPIC $CC_FLAGS $CC_LIBS $CONFTMP/test-dlopen.c -o $CONFTMP/test ; then
 		CC_DYN_LIBS=""
 		log "dlopen() found (no libs)"
-	    elif run $CC $CC_FLAGS $CC_LIBS $CONFTMP/test-dlopen.c -ldl -o $CONFTMP/test
+	    elif run $CC -fPIC $CC_FLAGS $CC_LIBS $CONFTMP/test-dlopen.c -ldl -o $CONFTMP/test
 	    then
 		CC_DYN_LIBS=" -ldl"
 		log "dlopen() found (libdl)"
@@ -1386,7 +1389,7 @@ EOT
 		OK=
 	    fi
 	    if [ "$OK" ] ; then
-		if run $CC -rdynamic $CC_FLAGS $CC_LIBS $CC_DYN_LIBS $CONFTMP/test-dlopen.c -o $CONFTMP/test ; then
+		if run $CC -rdynamic -fPIC $CC_FLAGS $CC_LIBS $CC_DYN_LIBS $CONFTMP/test-dlopen.c -o $CONFTMP/test ; then
 		    log "-rdynamic works"
 		    CC_DYN_LFLAGS=" -rdynamic"
 		else
@@ -1400,7 +1403,7 @@ EOT
 		else
 		    CC_SHARED="$CC -shared"
 		fi
-		if run $CC_SHARED $CC_FLAGS $CC_LIBS $CONFTMP/test-lib.c -o $CONFTMP/test-lib.so ; then
+		if run $CC_SHARED -fPIC $CC_FLAGS $CC_LIBS $CONFTMP/test-lib.c -o $CONFTMP/test-lib.so ; then
 		    log "-shared works"
 		else
 		    log "no -shared, aborting dlfcn test"
@@ -1438,8 +1441,8 @@ EOT
 			return quux(bar)*2;
 		    }
 EOT
-		if run $CC_SHARED $CC_FLAGS $CC_LIBS $CONFTMP/test-dynamic.c -o $CONFTMP/test.so \
-		&& run $CC $CC_FLAGS $CC_DYN_LFLAGS $CC_LIBS $CC_DYN_LIBS $CONFTMP/test-dynamic2.c $CONFTMP/test.so -o $CONFTMP/test
+		if run $CC_SHARED -fPIC $CC_FLAGS $CC_LIBS $CONFTMP/test-dynamic.c -o $CONFTMP/test.so \
+		&& run $CC -fPIC $CC_FLAGS $CC_DYN_LFLAGS $CC_LIBS $CC_DYN_LIBS $CONFTMP/test-dynamic2.c $CONFTMP/test.so -o $CONFTMP/test
 		then
 		    a=`$CONFTMP/test 1`
 		    log "symbol resolution test: $CONFTMP/test 1 => $a"
@@ -1468,7 +1471,7 @@ EOT
 		}
 		int quux(int x) {return x;}
 EOT
-	    if run $CC $CC_FLAGS $CC_DYN_LFLAGS $CC_LIBS $CC_DYN_LIBS $CONFTMP/test-dynamic2.c $CONFTMP/test.so -o $CONFTMP/test
+	    if run $CC -fPIC $CC_FLAGS $CC_DYN_LFLAGS $CC_LIBS $CC_DYN_LIBS $CONFTMP/test-dynamic2.c $CONFTMP/test.so -o $CONFTMP/test
 	    then
 		a=`$CONFTMP/test`
 		log "underscore test: $CONFTMP/test => $a"
@@ -1492,6 +1495,7 @@ EOT
 	if [ "$OK" ] ; then
 	    echo "yes."
 	    STATIC_MODULES=0
+	    CC_FLAGS="-fPIC $CC_FLAGS"
 	else
 	    log "static modules selected"
 	    echo "no."
