0001-utilities.c-Add-a-check-for-newlocale-function.patch 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. From 913c2cc740d60450e91e066cf38f5654936a6015 Mon Sep 17 00:00:00 2001
  2. From: Paul Cercueil <paul.cercueil@analog.com>
  3. Date: Mon, 6 Feb 2017 14:04:47 +0100
  4. Subject: [PATCH] utilities.c: Add a check for newlocale() function
  5. uClibc might define __UCLIBC_HAS_LOCALE__, without actually providing
  6. the locale_t type or the setlocale() function.
  7. Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
  8. ---
  9. CMakeLists.txt | 1 +
  10. iio-config.h.cmakein | 1 +
  11. utilities.c | 2 +-
  12. 3 files changed, 3 insertions(+), 1 deletion(-)
  13. diff --git a/CMakeLists.txt b/CMakeLists.txt
  14. index cb3a48f..b24eff3 100644
  15. --- a/CMakeLists.txt
  16. +++ b/CMakeLists.txt
  17. @@ -66,6 +66,7 @@ endif()
  18. include(CheckSymbolExists)
  19. check_symbol_exists(strdup "string.h" HAS_STRDUP)
  20. check_symbol_exists(strerror_r "string.h" HAS_STRERROR_R)
  21. +check_symbol_exists(newlocale "locale.h" HAS_NEWLOCALE)
  22. IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
  23. option(WITH_IIOD "Build the IIO Daemon" ON)
  24. diff --git a/iio-config.h.cmakein b/iio-config.h.cmakein
  25. index 1b8608e..6700326 100644
  26. --- a/iio-config.h.cmakein
  27. +++ b/iio-config.h.cmakein
  28. @@ -21,6 +21,7 @@
  29. #cmakedefine HAS_PIPE2
  30. #cmakedefine HAS_STRDUP
  31. #cmakedefine HAS_STRERROR_R
  32. +#cmakedefine HAS_NEWLOCALE
  33. #cmakedefine HAS_PTHREAD_SETNAME_NP
  34. #cmakedefine HAVE_IPV6
  35. #cmakedefine HAVE_AVAHI
  36. diff --git a/utilities.c b/utilities.c
  37. index 88b8257..21dbd10 100644
  38. --- a/utilities.c
  39. +++ b/utilities.c
  40. @@ -34,7 +34,7 @@
  41. #endif
  42. #ifdef LOCALE_SUPPORT
  43. -#if defined(__MINGW32__)
  44. +#if defined(__MINGW32__) || (!defined(_WIN32) && !defined(HAS_NEWLOCALE))
  45. static int read_double_locale(const char *str, double *val)
  46. {
  47. char *end, *old_locale;
  48. --
  49. 2.11.0