Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
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

  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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox