[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