Message ID | 1347440811-13081-1-git-send-email-ncopa@alpinelinux.org |
---|---|
State | New |
Headers | show |
Thanks, applied. On Wed, Sep 12, 2012 at 9:06 AM, Natanael Copa <natanael.copa@gmail.com> wrote: > 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> > --- > Changes v4->v5: > > - Do not exit with error if librt fails. > Apparently, mingw32 does not use those functions at all so we > should not exit with error. > > This is how it originally worked. > > configure | 31 +++++++++++++++++++++++++++++-- > 1 file changed, 29 insertions(+), 2 deletions(-) > > diff --git a/configure b/configure > index edf9da4..c1ed856 100755 > --- a/configure > +++ b/configure > @@ -2624,17 +2624,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 \ > -- > 1.7.12 >
diff --git a/configure b/configure index edf9da4..c1ed856 100755 --- a/configure +++ b/configure @@ -2624,17 +2624,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 \
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> --- Changes v4->v5: - Do not exit with error if librt fails. Apparently, mingw32 does not use those functions at all so we should not exit with error. This is how it originally worked. configure | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-)