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>
This commit is contained in:
Natanael Copa 2012-09-12 09:06:51 +00:00 committed by Blue Swirl
parent 3cebc3f11d
commit 8bacde8d86

31
configure vendored
View File

@ -2670,18 +2670,45 @@ EOF
fi 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 # 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 cat > $TMPC <<EOF
#include <signal.h> #include <signal.h>
#include <time.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 EOF
if compile_prog "" "" ; then 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="-lrt $LIBS"
libs_qga="-lrt $libs_qga"
fi fi
if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaris" != yes -a \ if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaris" != yes -a \