about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2021-04-11 14:42:16 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2021-04-11 14:42:16 +0000
commit9d6e78c736ba93da20e5efbae914b94b08ca9590 (patch)
tree41c454e22e8dd4c335581631ad060343af4f4646
parent480d9503263fa4e8f86ea6f8ee8cb373c8607e5b (diff)
downloadskalibs-9d6e78c736ba93da20e5efbae914b94b08ca9590.tar.gz
skalibs-9d6e78c736ba93da20e5efbae914b94b08ca9590.tar.xz
skalibs-9d6e78c736ba93da20e5efbae914b94b08ca9590.zip
Do not ld into /dev/null
-rwxr-xr-xconfigure25
1 files changed, 12 insertions, 13 deletions
diff --git a/configure b/configure
index 2804a2f..c02079e 100755
--- a/configure
+++ b/configure
@@ -99,7 +99,7 @@ stripdir () {
 tryflag () {
   echo "Checking whether compiler accepts $2 ..."
   echo "typedef int x;" > "$tmpc"
-  if $CC_AUTO "$2" -c -o /dev/null "$tmpc" >/dev/null 2>&1 ; then
+  if $CC_AUTO "$2" -c -o "$tmpo" "$tmpc" >/dev/null 2>&1 ; then
     echo "  ... yes"
     eval "$1=\"\${$1} \$2\""
     eval "$1=\${$1# }"
@@ -113,7 +113,7 @@ tryflag () {
 tryldflag () {
   echo "Checking whether linker accepts $2 ..."
   echo "typedef int x;" > "$tmpc"
-  if $CC_AUTO -nostdlib "$2" -o /dev/null "$tmpc" >/dev/null 2>&1 ; then
+  if $CC_AUTO -nostdlib "$2" -o "$tmpe" "$tmpc" >/dev/null 2>&1 ; then
     echo "  ... yes"
     eval "$1=\"\${$1} \$2\""
     eval "$1=\${$1# }"
@@ -156,17 +156,17 @@ choose () {
   libs="$*"
   r=true
   case "$what" in
-    *c*) $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST -o try$name.o -c src/sysdeps/try$name.c 2>/dev/null || r=false ;;
+    *c*) $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST -o "$tmpo" -c src/sysdeps/try$name.c 2>/dev/null || r=false ;;
   esac
   if $r ; then
     case "$what" in
-      *l*) $CC_AUTO $CFLAGS_AUTO $CFLAGS $CFLAGS_POST $LDFLAGS_AUTO $LDFLAGS $LDFLAGS_POST -o try$name try$name.o $libs 2>/dev/null || r=false ;;
+      *l*) $CC_AUTO $CFLAGS_AUTO $CFLAGS $CFLAGS_POST $LDFLAGS_AUTO $LDFLAGS $LDFLAGS_POST -o try$name "$tmpo" $libs 2>/dev/null || r=false ;;
     esac
   fi
   if $r ; then
     case "$what" in
      *r*) if test -n "$cross" ; then
-            rm -f try$name.o try$name
+            rm -f try$name
             fail "$0: sysdep $name cannot be autodetected when cross-compiling. Please manually provide a value with the --with-sysdep-${name}=yes|no|... option."
           fi
           ./try$name >/dev/null 2>&1 ; r=$?
@@ -177,7 +177,7 @@ choose () {
           esac
     esac
   fi
-  rm -f try$name.o try$name
+  rm -f try$name
   if $r ; then
     echo "$name: yes" >> $sysdeps/sysdeps
     echo "  ... yes"
@@ -188,10 +188,7 @@ choose () {
 }
 
 trybasic () {
-  $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST -o "$tmpe" -c "$1" 2>/dev/null
-  r=$?
-  rm -f "$tmpe"
-  return $r
+  $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST -o "$tmpo" -c "$1" 2>/dev/null
 }
 
 tryendianness () {
@@ -297,7 +294,7 @@ detectlibs () {
   name=$1
   shift
   if $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST -c -o try$name.o src/sysdeps/try$name.c 2>/dev/null ; then
-    until $CC_AUTO $CFLAGS_AUTO $CFLAGS $CFLAGS_POST $LDFLAGS_AUTO $LDFLAGS $LDFLAGS_POST -o /dev/null try$name.o $args 2>/dev/null ; do
+    until $CC_AUTO $CFLAGS_AUTO $CFLAGS $CFLAGS_POST $LDFLAGS_AUTO $LDFLAGS $LDFLAGS_POST -o "$tmpe" try$name.o $args 2>/dev/null ; do
       if test -z "$*" ; then
         rm -f try$name.o
         return 1
@@ -465,9 +462,11 @@ set -C
 while test "$i" -lt 50 ; do
   i=$(($i+1))
   tmpc="./tmp-configure-$$-$PPID-$i.c"
+  tmpo="./tmp-configure-$$-$PPID-$i.o"
   tmpe="./tmp-configure-$$-$PPID-$i.tmp"
   tmps="./tmp-configure-$$-$PPID-$i.sysdeps"
   2>|/dev/null > "$tmpc" && break
+  2>|/dev/null > "$tmpo" && break
   2>|/dev/null > "$tmpe" && break
   2>|/dev/null > "$tmps" && break
 done
@@ -475,7 +474,7 @@ if test "$i" -gt 50 ; then
   fail "$0: cannot create temporary files"
 fi
 set +C
-trap 'rm -f "$tmpc" "$tmpe" "$tmps"' EXIT ABRT INT QUIT TERM HUP
+trap 'rm -f "$tmpc" "$tmpo" "$tmpe" "$tmps"' EXIT ABRT INT QUIT TERM HUP
 
 # Preprocess user-provided sysdeps
 rm -f "$tmps"
@@ -533,7 +532,7 @@ test -n "$CC_AUTO" || fail "$0: cannot find a C compiler"
 echo "  ... $CC_AUTO"
 echo "Checking whether C compiler works... "
 echo "typedef int x;" > "$tmpc"
-if $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST -c -o /dev/null "$tmpc" 2>"$tmpe" ; then
+if $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST -c -o "$tmpo" "$tmpc" 2>"$tmpe" ; then
   echo "  ... yes"
 else
   echo "  ... no. Compiler output follows:"