X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=cirros-testvm%2Fsrc-cirros%2Fbuildroot-2015.05%2Fpackage%2Ffreerdp%2F0003-dont-use-unavailable-c99-math.patch;fp=cirros-testvm%2Fsrc-cirros%2Fbuildroot-2015.05%2Fpackage%2Ffreerdp%2F0003-dont-use-unavailable-c99-math.patch;h=1e23c0d0b6cd54aeaa069eb03b3f0e504f5d59d2;hb=b0a0f15dfaa205161a7fcb20cf1b8cd4948c2ef3;hp=0000000000000000000000000000000000000000;hpb=c6ac3cd55ee2da956195eee393b0882105dfad4e;p=packages%2Ftrusty%2Fcirros-testvm.git diff --git a/cirros-testvm/src-cirros/buildroot-2015.05/package/freerdp/0003-dont-use-unavailable-c99-math.patch b/cirros-testvm/src-cirros/buildroot-2015.05/package/freerdp/0003-dont-use-unavailable-c99-math.patch new file mode 100644 index 0000000..1e23c0d --- /dev/null +++ b/cirros-testvm/src-cirros/buildroot-2015.05/package/freerdp/0003-dont-use-unavailable-c99-math.patch @@ -0,0 +1,95 @@ +From c0d27019745184052bd428ba74a50de96053cea1 Mon Sep 17 00:00:00 2001 +From: Baruch Siach +Date: Sun, 3 May 2015 20:46:22 +0300 +Subject: [PATCH] Don't use unavailable C99 long double math functions + +uClibc variants do not provide the C99 long double math functions like ceill, +powl, etc.. For future compatibility use check_symbol_exists() to check +whether these functions are available, and keep the result in +HAVE_MATH_C99_LONG_DOUBLE. Use that instead of the fragile Cygwin version +check in triodef.h. + +Fixes build failures under uClibc(-ng) like: + +../../libwinpr/utils/libwinpr-utils.so.0.1.0: undefined reference to `powl' +../../libwinpr/utils/libwinpr-utils.so.0.1.0: undefined reference to `fmodl' +../../libwinpr/utils/libwinpr-utils.so.0.1.0: undefined reference to `ceill' +../../libwinpr/utils/libwinpr-utils.so.0.1.0: undefined reference to `log10l' +../../libwinpr/utils/libwinpr-utils.so.0.1.0: undefined reference to `floorl' +collect2: error: ld returned 1 exit status + +Backported from upstream commit +https://github.com/FreeRDP/FreeRDP/commit/414663cc363108cb71a290de1c86a1b04384fb39 + +Signed-off-by: Baruch Siach +--- + CMakeLists.txt | 3 +++ + config.h.in | 1 + + winpr/libwinpr/utils/trio/triodef.h | 25 ++++++------------------- + 3 files changed, 10 insertions(+), 19 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5b7887601aa0..177e44cfff10 100755 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -279,6 +279,9 @@ if(UNIX OR CYGWIN) + if (HAVE_EVENTFD_H) + check_symbol_exists(eventfd_read sys/eventfd.h WITH_EVENTFD_READ_WRITE) + endif() ++ list(APPEND CMAKE_REQUIRED_LIBRARIES m) ++ check_symbol_exists(ceill math.h HAVE_MATH_C99_LONG_DOUBLE) ++ list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES m) + set(X11_FEATURE_TYPE "RECOMMENDED") + else() + set(X11_FEATURE_TYPE "DISABLED") +diff --git a/config.h.in b/config.h.in +index 55c595d0e162..983310d5b9e6 100755 +--- a/config.h.in ++++ b/config.h.in +@@ -34,6 +34,7 @@ + #cmakedefine WITH_WIN8 + #cmakedefine WITH_RDPSND_DSOUND + #cmakedefine WITH_EVENTFD_READ_WRITE ++#cmakedefine HAVE_MATH_C99_LONG_DOUBLE + + /* Plugins */ + #cmakedefine STATIC_CHANNELS +diff --git a/winpr/libwinpr/utils/trio/triodef.h b/winpr/libwinpr/utils/trio/triodef.h +index 11c14b9c42c7..2a0479526f33 100644 +--- a/winpr/libwinpr/utils/trio/triodef.h ++++ b/winpr/libwinpr/utils/trio/triodef.h +@@ -313,25 +313,12 @@ typedef void * trio_pointer_t; + # define TRIO_COMPILER_SUPPORTS_LL + #endif + +-#if defined(__CYGWIN__) +-/* +- * Cygwin defines the macros for hosted C99, but does not support certain +- * long double math functions. +- */ +-# include +-# define TRIO_CYGWIN_VERSION_API CYGWIN_VERSION_API_MAJOR * 1000 + \ +- CYGWIN_VERSION_API_MINOR +-/* +- * Please change the version number below when the Cygwin API supports +- * long double math functions (powl, fmodl, etc.) +- */ +-# if TRIO_CYGWIN_VERSION_API < 99999999 +-# define TRIO_NO_FLOORL 1 +-# define TRIO_NO_CEILL 1 +-# define TRIO_NO_POWL 1 +-# define TRIO_NO_FMODL 1 +-# define TRIO_NO_LOG10L 1 +-# endif ++#if !defined(HAVE_MATH_C99_LONG_DOUBLE) ++# define TRIO_NO_FLOORL 1 ++# define TRIO_NO_CEILL 1 ++# define TRIO_NO_POWL 1 ++# define TRIO_NO_FMODL 1 ++# define TRIO_NO_LOG10L 1 + #endif + + #endif /* TRIO_TRIODEF_H */ +-- +2.1.4 +