[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