From: "Jörg Krause" <joerg.krause@embedded.rocks>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v3 1/1] package/jsoncpp: Broken on musl
Date: Sun, 09 Aug 2015 20:48:05 +0200 [thread overview]
Message-ID: <1439146085.12501.21.camel@embedded.rocks> (raw)
In-Reply-To: <1439121001-14787-1-git-send-email-bernd.kuhls@t-online.de>
Hi Bernd,
On So, 2015-08-09 at 13:50 +0200, Bernd Kuhls wrote:
> Also propagate to reverse dependencies, to keep bisectability do this
> in
> one commit.
>
> Fixes compile error:
>
> [ 16%] Building CXX object
> src/lib_json/CMakeFiles/jsoncpp_lib.dir/json_value.cpp.o
> In file included from /home/fli4l/br3/output/host/usr/lib/gcc/x86_64
> -buildroot-linux-musl/4.9.2/include/xmmintrin.h:34:0,
> from /home/fli4l/br3/output/host/usr/lib/gcc/x86_64
> -buildroot-linux-musl/4.9.2/include/x86intrin.h:31,
> from /home/fli4l/br3/output/host/usr/x86_64
> -buildroot-linux-musl/include/c++/4.9.2/x86_64-buildroot-linux
> -musl/bits/opt_random.h:33,
> from /home/fli4l/br3/output/host/usr/x86_64
> -buildroot-linux-musl/include/c++/4.9.2/random:50,
> from /home/fli4l/br3/output/host/usr/x86_64
> -buildroot-linux-musl/include/c++/4.9.2/bits/stl_algo.h:66,
> from /home/fli4l/br3/output/host/usr/x86_64
> -buildroot-linux-musl/include/c++/4.9.2/algorithm:62,
> from /home/fli4l/br3/output/build/jsoncpp
> -1.6.1/src/lib_json/json_value.cpp:20:
> /home/fli4l/br3/output/host/usr/lib/gcc/x86_64-buildroot-linux
> -musl/4.9.2/include/mm_malloc.h:34:64: error: declaration of 'int
> posix_memalign(void**, size_t, size_t) throw ()' has a different
> exception specifier
> extern "C" int posix_memalign (void **, size_t, size_t) throw ();
> ^
> In file included from /home/fli4l/br3/output/build/jsoncpp
> -1.6.1/include/json/assertions.h:9:0,
> from /home/fli4l/br3/output/build/jsoncpp
> -1.6.1/src/lib_json/json_value.cpp:7:
> /home/fli4l/br3/output/host/usr/x86_64-buildroot-linux
> -musl/sysroot/usr/include/stdlib.h:98:5: error: from previous
> declaration 'int posix_memalign(void**, size_t, size_t)'
> int posix_memalign (void **, size_t, size_t);
> ^
> make[2]: ***
> [src/lib_json/CMakeFiles/jsoncpp_lib.dir/json_value.cpp.o] Error 1
>
> using this defconfig:
>
> BR2_TOOLCHAIN_BUILDROOT_MUSL=y
> BR2_TOOLCHAIN_BUILDROOT_CXX=y
> BR2_PACKAGE_JSONCPP=y
>
> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> ---
> v3: - rebased
> - updated comments (Yann)
> - added reverse dependencies to kodi-pvr-filmon & kodi-pvr-pctv
> v2: Disable jsoncpp and reverse dependency with musl toolchain
> instead of patching gcc (Thomas)
> FTR: gcc patches can be found here:
> http://patchwork.ozlabs.org/patch/460337/
>
> ---
> package/jsoncpp/Config.in | 5 +++--
> package/kodi-pvr-filmon/Config.in | 4 ++++
> package/kodi-pvr-pctv/Config.in | 4 ++++
> package/sysdig/Config.in | 6 ++++--
> 4 files changed, 15 insertions(+), 4 deletions(-)
>
> diff --git a/package/jsoncpp/Config.in b/package/jsoncpp/Config.in
> index 2c96f13..fb9da7a 100644
> --- a/package/jsoncpp/Config.in
> +++ b/package/jsoncpp/Config.in
> @@ -1,4 +1,5 @@
> config BR2_PACKAGE_JSONCPP
> + depends on !BR2_TOOLCHAIN_USES_MUSL # posix_memalign
> depends on BR2_INSTALL_LIBSTDCPP
> bool "jsoncpp"
> help
> @@ -10,5 +11,5 @@ config BR2_PACKAGE_JSONCPP
>
> https://github.com/open-source-parsers/jsoncpp
>
> -comment "jsoncpp needs a toolchain w/ C++"
> - depends on !BR2_INSTALL_LIBSTDCPP
> +comment "jsoncpp needs a (e)glibc or uClibc toolchain w/ C++"
> + depends on BR2_TOOLCHAIN_USES_MUSL || !BR2_INSTALL_LIBSTDCPP
> diff --git a/package/kodi-pvr-filmon/Config.in b/package/kodi-pvr
> -filmon/Config.in
> index 0b662df..491b3ac 100644
> --- a/package/kodi-pvr-filmon/Config.in
> +++ b/package/kodi-pvr-filmon/Config.in
> @@ -2,7 +2,11 @@ config BR2_PACKAGE_KODI_PVR_FILMON
> bool "kodi-pvr-filmon"
> select BR2_PACKAGE_JSONCPP
> select BR2_PACKAGE_KODI_PLATFORM
> + depends on !BR2_TOOLCHAIN_USES_MUSL # jsoncpp
> help
> Filmon PVR client addon for Kodi
>
> https://github.com/kodi-pvr/pvr.filmon
> +
> +comment "kodi-pvr-filmon needs a (e)glibc or uClibc toolchain"
> + depends on BR2_TOOLCHAIN_USES_MUSL
> diff --git a/package/kodi-pvr-pctv/Config.in b/package/kodi-pvr
> -pctv/Config.in
> index 255cd4a..97c367d 100644
> --- a/package/kodi-pvr-pctv/Config.in
> +++ b/package/kodi-pvr-pctv/Config.in
> @@ -2,7 +2,11 @@ config BR2_PACKAGE_KODI_PVR_PCTV
> bool "kodi-pvr-pctv"
> select BR2_PACKAGE_JSONCPP
> select BR2_PACKAGE_KODI_PLATFORM
> + depends on !BR2_TOOLCHAIN_USES_MUSL # jsoncpp
> help
> PCTV PVR client addon for Kodi
>
> https://github.com/kodi-pvr/pvr.vdr.vnsi
> +
> +comment "kodi-pvr-pctv needs a (e)glibc or uClibc toolchain"
> + depends on BR2_TOOLCHAIN_USES_MUSL
> diff --git a/package/sysdig/Config.in b/package/sysdig/Config.in
> index dc71d5f..50ebbba 100644
> --- a/package/sysdig/Config.in
> +++ b/package/sysdig/Config.in
> @@ -3,6 +3,7 @@ config BR2_PACKAGE_SYSDIG
> select BR2_PACKAGE_ZLIB
> select BR2_PACKAGE_LUAJIT
> select BR2_PACKAGE_JSONCPP
> + depends on !BR2_TOOLCHAIN_USES_MUSL # jsoncpp
> depends on BR2_LINUX_KERNEL
> depends on BR2_INSTALL_LIBSTDCPP # libjson
> depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS
> @@ -16,6 +17,7 @@ config BR2_PACKAGE_SYSDIG
>
> http://sysdig.org
>
> -comment "sysdig needs a toolchain w/ C++, dynamic library and a
> Linux kernel to be built"
> - depends on !BR2_LINUX_KERNEL || !BR2_INSTALL_LIBSTDCPP ||
> BR2_STATIC_LIBS
> +comment "sysdig needs a (e)glibc or uClibc toolchain w/ C++, dynamic
> library and a Linux kernel to be built"
> + depends on !BR2_LINUX_KERNEL || !BR2_INSTALL_LIBSTDCPP ||
> BR2_STATIC_LIBS \
> + || BR2_TOOLCHAIN_USES_MUSL
> depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS
I cannot reproduce this error.
Building jsoncpp 1.6.1 works fine for me with the external musl
toolchain (BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS) and the internal musl
toolchain (tested with gcc 4.9.3 and 5.2.0).
Internal toolchain (gcc 4.9.3) tested with the following defconfig:
BR2_arm=y
BR2_COMPILER_PARANOID_UNSAFE_PATH=y
BR2_TOOLCHAIN_BUILDROOT_MUSL=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_INIT_NONE=y
# BR2_TARGET_ENABLE_ROOT_LOGIN is not set
BR2_SYSTEM_BIN_SH_NONE=y
# BR2_TARGET_GENERIC_GETTY is not set
# BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set
# BR2_PACKAGE_BUSYBOX is not set
BR2_PACKAGE_JSONCPP=y
# BR2_TARGET_ROOTFS_TAR is not set
Best regards
J?rg Krause
next prev parent reply other threads:[~2015-08-09 18:48 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-09 11:50 [Buildroot] [PATCH v3 1/1] package/jsoncpp: Broken on musl Bernd Kuhls
2015-08-09 18:48 ` Jörg Krause [this message]
2015-08-09 18:59 ` Jörg Krause
2015-08-09 19:57 ` Bernd Kuhls
2015-08-10 6:58 ` Jörg Krause
2015-08-11 17:43 ` Bernd Kuhls
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1439146085.12501.21.camel@embedded.rocks \
--to=joerg.krause@embedded.rocks \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.