Add builtin roundf() for systems lacking it.

(closes issue ASTERISK-16854)
Review: https://reviewboard.asterisk.org/r/2276
Reported-by: Ovidiu Sas


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@379547 65c4cc65-6c06-0410-ace0-fbb531ad65f3
changes/98/198/1
Walter Doekes 12 years ago
parent 28f764a6d7
commit 579ad507c8

41853
configure vendored

File diff suppressed because it is too large Load Diff

@ -568,7 +568,7 @@ AC_CHECK_FUNCS([asprintf atexit closefrom dup2 eaccess endpwent euidaccess ffsll
# so that AC_CHECK_FUNCS can detect functions in that library.
AC_CHECK_LIB([m], [sqrt])
# BSD might not have exp2, and/or log2
AC_CHECK_FUNCS([exp2 log2 exp10 log10 sin cos tan asin acos atan atan2 pow rint exp log remainder fmod round trunc floor ceil])
AC_CHECK_FUNCS([exp2 log2 exp10 log10 sin cos tan asin acos atan atan2 pow rint exp log remainder fmod round roundf trunc floor ceil])
# Certain architectures don't really have long double, even though
# AC_CHECK_FUNCS would otherwise find the following functions.

@ -679,6 +679,9 @@
/* Define to 1 if you have the `round' function. */
#undef HAVE_ROUND
/* Define to 1 if you have the `roundf' function. */
#undef HAVE_ROUNDF
/* Define to 1 if you have the `roundl' function. */
#undef HAVE_ROUNDL
@ -825,19 +828,19 @@
/* Define to 1 if you have the `strtoq' function. */
#undef HAVE_STRTOQ
/* Define to 1 if `ifr_ifru.ifru_hwaddr' is member of `struct ifreq'. */
/* Define to 1 if `ifr_ifru.ifru_hwaddr' is a member of `struct ifreq'. */
#undef HAVE_STRUCT_IFREQ_IFR_IFRU_IFRU_HWADDR
/* Define to 1 if `uid' is member of `struct sockpeercred'. */
/* Define to 1 if `uid' is a member of `struct sockpeercred'. */
#undef HAVE_STRUCT_SOCKPEERCRED_UID
/* Define to 1 if `st_blksize' is member of `struct stat'. */
/* Define to 1 if `st_blksize' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_BLKSIZE
/* Define to 1 if `cr_uid' is member of `struct ucred'. */
/* Define to 1 if `cr_uid' is a member of `struct ucred'. */
#undef HAVE_STRUCT_UCRED_CR_UID
/* Define to 1 if `uid' is member of `struct ucred'. */
/* Define to 1 if `uid' is a member of `struct ucred'. */
#undef HAVE_STRUCT_UCRED_UID
/* Define to 1 if you have the mISDN Supplemental Services library. */
@ -1112,6 +1115,9 @@
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the home page for this package. */
#undef PACKAGE_URL
/* Define to the version of this package. */
#undef PACKAGE_VERSION

@ -216,4 +216,12 @@ typedef unsigned long long uint64_t;
#define MY_GLOB_FLAGS (GLOB_NOMAGIC | GLOB_BRACE)
#endif
#ifndef HAVE_ROUNDF
#ifdef HAVE_ROUND
#define roundf(x) ((float)round(x))
#else
float roundf(float x);
#endif
#endif
#endif

@ -16,7 +16,9 @@
/*! \file
*
* \brief Compatibility functions for strsep and strtoq missing on Solaris
* \brief Compatibility functions for strsep and strtoq missing on Solaris
*
* .. and lots of other functions too.
*/
/*** MODULEINFO
@ -568,3 +570,15 @@ char *mkdtemp(char *path)
return mktemp_internal(path, 0, MKTEMP_DIR) ? NULL : path;
}
#endif
#ifndef HAVE_ROUNDF
#ifndef HAVE_ROUND
float roundf(float x) {
if (x < 0.0) {
return (float)(int)((x) - 0.5);
} else {
return (float)(int)((x) + 0.5);
}
}
#endif
#endif

Loading…
Cancel
Save