diff --git a/pkgs/os-specific/linux/qemu-kvm/fix-librt-check.patch b/pkgs/os-specific/linux/qemu-kvm/fix-librt-check.patch index e540e9958021..57de288723e8 100644 --- a/pkgs/os-specific/linux/qemu-kvm/fix-librt-check.patch +++ b/pkgs/os-specific/linux/qemu-kvm/fix-librt-check.patch @@ -1,17 +1,70 @@ -diff -Naur qemu-kvm-1.2.0-orig/configure qemu-kvm-1.2.0/configure ---- qemu-kvm-1.2.0-orig/configure 2012-09-06 04:31:27.000000000 -0400 -+++ qemu-kvm-1.2.0/configure 2013-02-15 11:04:45.923477251 -0500 -@@ -2682,13 +2682,14 @@ +commit 8bacde8d86a09699207d85d4bab06162aed18dc4 +Author: Natanael Copa +Date: Wed Sep 12 09:06:51 2012 +0000 + + 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 + Signed-off-by: Blue Swirl + +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 ++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 < #include -int main(void) { return clock_gettime(CLOCK_REALTIME, NULL); } -+int main(void) { return timer_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 +-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