aboutsummaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorNatanael Copa <natanael.copa@gmail.com>2012-09-12 09:06:51 +0000
committerBlue Swirl <blauwirbel@gmail.com>2012-09-15 15:35:53 +0000
commit8bacde8d86a09699207d85d4bab06162aed18dc4 (patch)
treedf09dd8e48280742e9bec96ae2726b3e29a0b09a /configure
parent3cebc3f11d8d74eb87dc02e712629c45e689960b (diff)
downloadqemu-8bacde8d86a09699207d85d4bab06162aed18dc4.zip
qemu-8bacde8d86a09699207d85d4bab06162aed18dc4.tar.gz
qemu-8bacde8d86a09699207d85d4bab06162aed18dc4.tar.bz2
configure: properly check if -lrt and -lm is needed
Fixes build against uClibc. uClibc provides 2 versions of clock_gettime(), one with realtime support and one without (this is so you can avoid linking in -lrt unless actually needed). This means that the clock_gettime() don't need -lrt. We still need it for timer_create() so we check for this function in addition. We also need check if -lm is needed for isnan(). Both -lm and -lrt are needed for libs_qga. Signed-off-by: Natanael Copa <ncopa@alpinelinux.org> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure31
1 files changed, 29 insertions, 2 deletions
diff --git a/configure b/configure
index 7656c32..9ab13db 100755
--- a/configure
+++ b/configure
@@ -2671,17 +2671,44 @@ fi
##########################################
+# Do we need libm
+cat > $TMPC << EOF
+#include <math.h>
+int main(void) { return isnan(sin(0.0)); }
+EOF
+if compile_prog "" "" ; then
+ :
+elif compile_prog "" "-lm" ; then
+ LIBS="-lm $LIBS"
+ libs_qga="-lm $libs_qga"
+else
+ echo
+ echo "Error: libm check failed"
+ echo
+ exit 1
+fi
+
+##########################################
# Do we need librt
+# uClibc provides 2 versions of clock_gettime(), one with realtime
+# support and one without. This means that the clock_gettime() don't
+# need -lrt. We still need it for timer_create() so we check for this
+# function in addition.
cat > $TMPC <<EOF
#include <signal.h>
#include <time.h>
-int main(void) { return clock_gettime(CLOCK_REALTIME, NULL); }
+int main(void) {
+ timer_create(CLOCK_REALTIME, NULL, NULL);
+ return clock_gettime(CLOCK_REALTIME, NULL);
+}
EOF
if compile_prog "" "" ; then
:
-elif compile_prog "" "-lrt" ; then
+# we need pthread for static linking. use previous pthread test result
+elif compile_prog "" "-lrt $pthread_lib" ; then
LIBS="-lrt $LIBS"
+ libs_qga="-lrt $libs_qga"
fi
if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaris" != yes -a \