[OpenWrt-Devel] [PATCH] tools/cmake: fix compile on Alpine Linux

Dirk Neukirchen dirkneukirchen at web.de
Mon Mar 7 16:08:02 EST 2016


internal jsoncpp include order leads to multiple build
errors on Alpine Linux which uses musl libc

use include order from upstream jsoncpp

first error was:
In file included from /usr/include/c++/5.3.0/stdexcept:38:0,
                 from /home/..../openwrt/build_dir/host/cmake-3.4.3/Utilities/cmjsoncpp/include/json/assertions.h:16,
                 from /home/..../openwrt/build_dir/host/cmake-3.4.3/Utilities/cmjsoncpp/src/lib_json/json_reader.cpp:7:
/usr/include/c++/5.3.0/exception:35:9: error: '#pragma' is not allowed here
 #pragma GCC visibility push(default)

Signed-off-by: Dirk Neukirchen <dirkneukirchen at web.de>
---
 tools/cmake/patches/120-alpine_musl-compat.patch | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 tools/cmake/patches/120-alpine_musl-compat.patch

diff --git a/tools/cmake/patches/120-alpine_musl-compat.patch b/tools/cmake/patches/120-alpine_musl-compat.patch
new file mode 100644
index 0000000..ae93201
--- /dev/null
+++ b/tools/cmake/patches/120-alpine_musl-compat.patch
@@ -0,0 +1,17 @@
+--- a/Utilities/cmjsoncpp/include/json/assertions.h
++++ b/Utilities/cmjsoncpp/include/json/assertions.h
+@@ -6,12 +6,12 @@
+ #ifndef CPPTL_JSON_ASSERTIONS_H_INCLUDED
+ #define CPPTL_JSON_ASSERTIONS_H_INCLUDED
+ 
++#include <stdlib.h>
++
+ #if !defined(JSON_IS_AMALGAMATION)
+ #include "config.h"
+ #endif // if !defined(JSON_IS_AMALGAMATION)
+ 
+-#include <stdlib.h>
+-
+ #if JSON_USE_EXCEPTION
+ #include <stdexcept>
+ #define JSON_ASSERT(condition)                                                 \
-- 
2.7.2
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list