diff mbox

[kvm-unit-tests,1/2] configure: improve api/ detection

Message ID 20170519164818.21375-2-rkrcmar@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Radim Krčmář May 19, 2017, 4:48 p.m. UTC
API was never selected by default, because <stdc++> should have been
<bits/stdc++> and in any case needs g++.  Boost dependency has recently
been lifted, but we added gnu++11 dependency.
Only x86 currently uses compiles api, so make the room for errors a bit
smaller by checking for it.

Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
---
 configure | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)
diff mbox

Patch

diff --git a/configure b/configure
index 2586131b6eff..64722c9b263b 100755
--- a/configure
+++ b/configure
@@ -3,6 +3,7 @@ 
 srcdir=$(cd "$(dirname "$0")"; pwd)
 prefix=/usr/local
 cc=gcc
+cxx=g++
 ld=ld
 objcopy=objcopy
 objdump=objdump
@@ -24,6 +25,7 @@  usage() {
 	    --processor=PROCESSOR  processor to compile for ($arch)
 	    --cross-prefix=PREFIX  cross compiler prefix
 	    --cc=CC		   c compiler to use ($cc)
+	    --cxx=CXX		   c++ compiler to use ($cxx)
 	    --ld=LD		   ld linker to use ($ld)
 	    --prefix=PREFIX        where to install things ($prefix)
 	    --endian=ENDIAN        endianness to compile for (little or big, ppc64 only)
@@ -59,6 +61,9 @@  while [[ "$1" = -* ]]; do
 	--cc)
 	    cc="$arg"
 	    ;;
+	--cxx)
+	    cxx="$arg"
+	    ;;
 	--ld)
 	    ld="$arg"
 	    ;;
@@ -118,22 +123,16 @@  EOF
 u32_long=$($cross_prefix$cc -E lib-test.c | grep -v '^#' | grep -q long && echo yes)
 rm -f lib-test.c
 
-# check for dependent 32 bit libraries
-if [ "$arch" != "arm" ]; then
-cat << EOF > lib_test.c
-#include <stdc++.h>
-#include <boost_thread-mt.h>
-#include <pthread.h>
-
-int main ()
-{}
-EOF
-$cc -m32 -o /dev/null lib_test.c &> /dev/null
-exit=$?
-if [ $exit -eq 0 ]; then
-    api=true
-fi
-rm -f lib_test.c
+# api/: check for dependent 32 bit libraries and gnu++11 support
+if [ "$testdir" = "x86" ]; then
+    echo 'int main () {}' > lib-test.c
+    $cc -m32 -o /dev/null -lstdc++ -lpthread -lrt lib-test.c &> /dev/null
+    exit=$?
+    $cxx -m32 -o /dev/null -std=gnu++11 lib-test.c &> /dev/null
+    if [ $? -eq 0 -a $exit -eq 0 ]; then
+        api=true
+    fi
+    rm -f lib-test.c
 fi
 
 # Are we in a separate build tree? If so, link the Makefile
@@ -173,6 +172,7 @@  ARCH=$arch
 ARCH_NAME=$arch_name
 PROCESSOR=$processor
 CC=$cross_prefix$cc
+CXX=$cross_prefix$cxx
 LD=$cross_prefix$ld
 OBJCOPY=$cross_prefix$objcopy
 OBJDUMP=$cross_prefix$objdump