[PATCH] libjson-c: fix compilation with clang

Rosen Penev rosenp at gmail.com
Tue Nov 24 04:49:17 EST 2020


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)
                      ^
Signed-off-by: Rosen Penev <rosenp at gmail.com>
---
 package/libs/libjson-c/Makefile               |  4 +-
 package/libs/libjson-c/patches/000-libm.patch | 45 -------------------
 2 files changed, 3 insertions(+), 46 deletions(-)
 delete mode 100644 package/libs/libjson-c/patches/000-libm.patch

diff --git a/package/libs/libjson-c/Makefile b/package/libs/libjson-c/Makefile
index 13cf955960..2c24df0bd5 100644
--- a/package/libs/libjson-c/Makefile
+++ b/package/libs/libjson-c/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=json-c
 PKG_VERSION:=0.15
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-nodoc.tar.gz
 PKG_SOURCE_URL:=https://s3.amazonaws.com/json-c_releases/releases/
@@ -32,6 +32,8 @@ CMAKE_HOST_OPTIONS += \
 	-DCMAKE_MACOSX_RPATH=1 \
 	-DCMAKE_INSTALL_RPATH="${STAGING_DIR_HOST}/lib"
 
+HOST_CFLAGS += -D_GNU_SOURCE
+
 define Package/libjson-c
   SECTION:=libs
   CATEGORY:=Libraries
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
-- 
2.28.0




More information about the openwrt-devel mailing list