aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRosen Penev <rosenp@gmail.com>2020-11-24 01:49:17 -0800
committerPaul Spooren <mail@aparcar.org>2021-08-30 19:16:49 -1000
commita235b417925b18cd803e48332601eb9965f85cbd (patch)
treea7a4fd4f2ccb213207331d963b5ffd7981c07771
parentc39be8e7a4d60b5b66d5bf3b0f8947ae9da42184 (diff)
downloadupstream-a235b417925b18cd803e48332601eb9965f85cbd.tar.gz
upstream-a235b417925b18cd803e48332601eb9965f85cbd.tar.bz2
upstream-a235b417925b18cd803e48332601eb9965f85cbd.zip
libjson-c: remove old math patch
Remove old math patch meant for old GCC versions. It's not needed for GCC and causes issues with clang. Add CMake patch to identify clang properly and apply the proper flags. Fixes the following warnings/errors: json_pointer.c:230:7: warning: implicit declaration of function 'vasprintf' is invalid in C99 [-Wimplicit-function-declaration] rc = vasprintf(&path_copy, path_fmt, args); ^ json_pointer.c:317:7: warning: implicit declaration of function 'vasprintf' is invalid in C99 [-Wimplicit-function-declaration] rc = vasprintf(&path_copy, path_fmt, args); ^ /usr/include/bits/mathcalls.h:177:23: error: cannot redeclare builtin function '__builtin_isinf' __MATHDECL_ALIAS (int,isinf,, (_Mdouble_ __value), isinf) ^ /usr/include/bits/mathcalls.h:177:23: note: '__builtin_isinf' is a builtin with type 'int ()' /usr/include/bits/mathcalls.h:213:23: error: cannot redeclare builtin function '__builtin_isnan' __MATHDECL_ALIAS (int,isnan,, (_Mdouble_ __value), isnan) The clang patch is an upstream backport. Signed-off-by: Rosen Penev <rosenp@gmail.com>
-rw-r--r--package/libs/libjson-c/patches/000-libm.patch45
-rw-r--r--package/libs/libjson-c/patches/010-clang.patch11
2 files changed, 11 insertions, 45 deletions
diff --git a/package/libs/libjson-c/patches/000-libm.patch b/package/libs/libjson-c/patches/000-libm.patch
deleted file mode 100644
index c6ff5f4766..0000000000
--- a/package/libs/libjson-c/patches/000-libm.patch
+++ /dev/null
@@ -1,45 +0,0 @@
---- a/math_compat.h
-+++ b/math_compat.h
-@@ -6,38 +6,9 @@
- * @brief Do not use, json-c internal, may be changed or removed at any time.
- */
-
--/* Define isnan, isinf, infinity and nan on Windows/MSVC */
--
--#ifndef HAVE_DECL_ISNAN
--#ifdef HAVE_DECL__ISNAN
--#include <float.h>
--#define isnan(x) _isnan(x)
--#else
--/* On platforms like AIX and "IBM i" we need to provide our own isnan */
--#define isnan(x) ((x) != (x))
--#endif
--#endif
--
--#ifndef HAVE_DECL_ISINF
--#ifdef HAVE_DECL__FINITE
--#include <float.h>
--#define isinf(x) (!_finite(x))
--#else
--#include <float.h>
--/* On platforms like AIX and "IBM i" we need to provide our own isinf */
--#define isinf(x) ((x) < -DBL_MAX || (x) > DBL_MAX)
--#endif
--#endif
--
--#ifndef HAVE_DECL_INFINITY
--#include <float.h>
--#define INFINITY (DBL_MAX + DBL_MAX)
--#define HAVE_DECL_INFINITY
--#endif
--
--#ifndef HAVE_DECL_NAN
--#define NAN (INFINITY - INFINITY)
--#define HAVE_DECL_NAN
--#endif
-+#undef isnan
-+#define isnan(x) __builtin_isnan(x)
-+#undef isinf
-+#define isinf(x) __builtin_isinf(x)
-
- #endif
diff --git a/package/libs/libjson-c/patches/010-clang.patch b/package/libs/libjson-c/patches/010-clang.patch
new file mode 100644
index 0000000000..9ef73f1a82
--- /dev/null
+++ b/package/libs/libjson-c/patches/010-clang.patch
@@ -0,0 +1,11 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -265,7 +265,7 @@ message(STATUS "Wrote ${PROJECT_BINARY_D
+ configure_file(${PROJECT_SOURCE_DIR}/cmake/json_config.h.in ${PROJECT_BINARY_DIR}/json_config.h)
+ message(STATUS "Wrote ${PROJECT_BINARY_DIR}/json_config.h")
+
+-if ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
++if ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffunction-sections -fdata-sections")
+ if ("${DISABLE_WERROR}" STREQUAL "OFF")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")