[Buildroot] [PATCHv3] package/rustc: needs C++ compiler with musl based toolchain

Yann E. MORIN yann.morin.1998 at free.fr
Tue Aug 30 19:20:27 UTC 2022


Nicolas, All,

On 2022-07-28 16:51 +0200, Nicolas TRAN spake thusly:
> Reviewed- by: Nicolas Tran < [1]nicolas.tran at smile.fr>

You sent an HTML mail, it got completely borked, and your revieed-by tag
was picked weirdly by patchwork:
    Reviewed-by: Nicolas Tran <nicolas.tran at smile.fr <romain.naour at smile.fr>>

I've fixed that when applying.

Regards,
Yann E. MORIN.

> On Wed, Jul 27, 2022 at 10:38 AM Romain Naour < [2]romain.naour at smile.fr> wrote:
> 
>   While building host-rust with a musl based toolchain without C++ compiler,
>   the build fail since libunwind bundled in rust sources needs a C++ compiler.
> 
>   cargo:warning=i686-buildroot-linux-musl-gcc.br_real: error:
>   [...]/host-rust-1.62.0/src/llvm-project/libunwind/src/Unwind-EHABI.cpp: C++ compiler not installed on this system
> 
>   Note: the issues can't be reproduced with a glibc based toolchain
>   without C++ probaly due to extra steps required to support musl libc.
> 
>   We could add the C++ dependency direclty to host-rustc but it would
>   requires adding the C++ reverse dependencies to all rust packages.
> 
>   Instread, we add the C++ dependency to BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
>   only when a musl toolchain is used. So we can still install a prebuilt
>   rust compiler but without the rust standard library (rust-std).
> 
>   Usually we should not add toolchain dependencies in a _ARCH_SUPPORTS option but
>   BR2_PACKAGE_HOST_RUSTC_TARGET_TIER... options contains already some
>   BR2_TOOLCHAIN_USES_GLIBC or BR2_TOOLCHAIN_USES_MUSL.
> 
>   Fixes:
>   [3]http://autobuild.buildroot.org/results/636/636fb39c8f1b8c05e4ca451ac506cd63c7166d82
> 
>   Signed-off-by: Romain Naour < [4]romain.naour at smile.fr>
>   ---
>   v3: add a global C++ dependency to BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS (Yann)
>       update comment to use "C++ cross compiler"
>   v2: move the C++ dependency to BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
>       after James's review and discussion with Thomas and Arnout
>   ---
>    package/rustc/Config.in.host | 4 ++++
>    1 file changed, 4 insertions(+)
> 
>   diff --git a/package/rustc/Config.in.host b/package/rustc/Config.in.host
>   index fec8726aee..822de68dbb 100644
>   --- a/package/rustc/Config.in.host
>   +++ b/package/rustc/Config.in.host
>   @@ -110,11 +110,15 @@ config BR2_PACKAGE_HOST_RUSTC_TARGET_TIER2_PLATFORMS
>           default y if BR2_sparc64 && BR2_TOOLCHAIN_USES_GLIBC
> 
>    # All target rust packages should depend on this option
>   +# Note: With musl based toolchain, we need a C++ cross compiler to
>   +# build host-rust some target libraries (libunwind) from llvm source
>   +# code bundled in rust sources.
>    config BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
>           bool
>           default y if BR2_PACKAGE_HOST_RUSTC_TARGET_TIER1_PLATFORMS
>           default y if BR2_PACKAGE_HOST_RUSTC_TARGET_TIER2_HOST_TOOLS_PLATFORMS
>           default y if BR2_PACKAGE_HOST_RUSTC_TARGET_TIER2_PLATFORMS
>   +       depends on BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_USES_MUSL
>           depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS
> 
>    config BR2_PACKAGE_HOST_RUSTC_ARCH
>   --
>   2.34.3
> 
>   _______________________________________________
>   buildroot mailing list
>   [5]buildroot at buildroot.org
>   [6]https://lists.buildroot.org/mailman/listinfo/buildroot
> 
> Links:
> 1. mailto:romain.naour at smile.fr
> 2. mailto:romain.naour at smile.fr
> 3. http://autobuild.buildroot.org/results/636/636fb39c8f1b8c05e4ca451ac506cd63c7166d82
> 4. mailto:romain.naour at smile.fr
> 5. mailto:buildroot at buildroot.org
> 6. https://lists.buildroot.org/mailman/listinfo/buildroot

> _______________________________________________
> buildroot mailing list
> buildroot at buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot


-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'



More information about the buildroot mailing list