[PATCH:xmag] Use lrint() from math library if available
walter harms
wharms at bfs.de
Wed Dec 21 01:27:49 PST 2011
Am 21.12.2011 05:58, schrieb Alan Coopersmith:
> Moves -lm from being hardcoded in Makefile.am to being added via
> AC_SEARCH_LIBS in configure.ac setting it in $(LIBS)
>
> Using lrint() [returns long int] instead of rint() [returns double]
> clears a bunch of gcc warnings of the form:
> "cast from function call of type ‘double’ to non-matching type ‘short int’"
>
> Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
> ---
> Makefile.am | 2 +-
> Scale.c | 6 ++++++
> configure.ac | 6 ++++++
> 3 files changed, 13 insertions(+), 1 deletions(-)
>
> diff --git a/Makefile.am b/Makefile.am
> index 2ec463c..6c1a81c 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -23,7 +23,7 @@ SUBDIRS = man
> bin_PROGRAMS = xmag
>
> AM_CFLAGS = $(XMAG_CFLAGS) $(CWARNFLAGS)
> -xmag_LDADD = $(XMAG_LIBS) -lm
> +xmag_LDADD = $(XMAG_LIBS)
>
> xmag_SOURCES = \
> CutPaste.c \
> diff --git a/Scale.c b/Scale.c
> index 94fef63..22d8649 100644
> --- a/Scale.c
> +++ b/Scale.c
> @@ -30,6 +30,8 @@ from The Open Group.
> * Author: Davor Matic, MIT X Consortium
> */
>
> +#include "config.h"
> +
> #include <stdio.h>
> #include <ctype.h>
> #include <math.h>
> @@ -43,7 +45,11 @@ from The Open Group.
> #include "CutPaste.h"
> #include "ScaleP.h"
>
> +#ifdef HAVE_LRINT
> +#define myrint(x) lrint(x)
> +#else
> #define myrint(x) floor(x + 0.5)
> +#endif
>
hi,
i do not know if it is important lrint will "using the current rounding direction".
so it maybe better to stay with floor() and have everyone the same "error".
re,
wh
> #define streq(a,b) (strcmp( (a), (b) ) == 0)
> #ifndef min
> diff --git a/configure.ac b/configure.ac
> index a688487..2dca039 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -37,6 +37,12 @@ AC_CONFIG_HEADERS([config.h])
>
> AC_CHECK_FUNCS([nanosleep poll select])
>
> +# Math libraries & functions
> +# - lrint() is a C99 addition not found on some older systems
> +# - must do the libm check first so that the rint check will have it in $LIBS
> +AC_SEARCH_LIBS([floor], [m])
> +AC_CHECK_FUNCS([lrint])
> +
> # Checks for pkg-config packages
> PKG_CHECK_MODULES(XMAG, xaw7 xmu xt x11)
>
More information about the xorg-devel
mailing list