Message ID | 20220822211023.424801-1-raj.khem@gmail.com |
---|---|
State | Accepted, archived |
Commit | 521872ab2cac092c88446730772cb8c4e22b0cdc |
Headers | show |
Series | rust: Use libc++ runtime when using clang with llvm runtime | expand |
On Mon, 2022-08-22 at 14:10 -0700, Khem Raj wrote: > meta-clang has options when it comes to C++ runtime, default is to use > gnu runtime, other options are llvm runtime and android runtime. This > patch helps when a distro is using llvm runtime for C/C++ runtime. It > informs the rust build system about right C++ runtime to configure for > when such a setting is used. > > Signed-off-by: Khem Raj <raj.khem@gmail.com> > --- > meta/recipes-devtools/rust/rust.inc | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/meta/recipes-devtools/rust/rust.inc b/meta/recipes-devtools/rust/rust.inc > index 284347dedc..c288903c9b 100644 > --- a/meta/recipes-devtools/rust/rust.inc > +++ b/meta/recipes-devtools/rust/rust.inc > @@ -73,6 +73,7 @@ python do_configure() { > > # [target.ARCH-poky-linux] > host_section = "target.{}".format(d.getVar('RUST_HOST_SYS', True)) > + runtime = "target.{}".format(d.getVar('RUNTIME', True)) > config.add_section(host_section) > > llvm_config_target = d.expand("${RUST_ALTERNATE_EXE_PATH}") > @@ -107,6 +108,8 @@ python do_configure() { > # [llvm] > config.add_section("llvm") > config.set("llvm", "static-libstdcpp", e(False)) > + if "llvm" in runtime: > + config.set("llvm", "use-libcxx", e(True)) > I think it is a little bit over complicated, couldn't it just be: if "llvm" in (d.getVar('RUNTIME', True) or ""): config.set("llvm", "use-libcxx", e(True)) I'd much rather we did some kind of indirection via a variable too since I'm not sure OE-Core knows anything about RUNTIME, or that RUNTIME is a particularly good choice of name for the core. Cheers, Richard
On Mon, Aug 22, 2022 at 2:51 PM Richard Purdie <richard.purdie@linuxfoundation.org> wrote: > > On Mon, 2022-08-22 at 14:10 -0700, Khem Raj wrote: > > meta-clang has options when it comes to C++ runtime, default is to use > > gnu runtime, other options are llvm runtime and android runtime. This > > patch helps when a distro is using llvm runtime for C/C++ runtime. It > > informs the rust build system about right C++ runtime to configure for > > when such a setting is used. > > > > Signed-off-by: Khem Raj <raj.khem@gmail.com> > > --- > > meta/recipes-devtools/rust/rust.inc | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/meta/recipes-devtools/rust/rust.inc b/meta/recipes-devtools/rust/rust.inc > > index 284347dedc..c288903c9b 100644 > > --- a/meta/recipes-devtools/rust/rust.inc > > +++ b/meta/recipes-devtools/rust/rust.inc > > @@ -73,6 +73,7 @@ python do_configure() { > > > > # [target.ARCH-poky-linux] > > host_section = "target.{}".format(d.getVar('RUST_HOST_SYS', True)) > > + runtime = "target.{}".format(d.getVar('RUNTIME', True)) > > config.add_section(host_section) > > > > llvm_config_target = d.expand("${RUST_ALTERNATE_EXE_PATH}") > > @@ -107,6 +108,8 @@ python do_configure() { > > # [llvm] > > config.add_section("llvm") > > config.set("llvm", "static-libstdcpp", e(False)) > > + if "llvm" in runtime: > > + config.set("llvm", "use-libcxx", e(True)) > > > > I think it is a little bit over complicated, couldn't it just be: > > if "llvm" in (d.getVar('RUNTIME', True) or ""): > config.set("llvm", "use-libcxx", e(True)) > OK. I have pushed this into yoe/mut on contrib and testing it. I think it will work ok. > I'd much rather we did some kind of indirection via a variable too > since I'm not sure OE-Core knows anything about RUNTIME, or that > RUNTIME is a particularly good choice of name for the core. > Thats fine, I am not vested in name as much, although it might be used in other places too by now. but if we were to have a convention in OE-core which is different thats one time bullet to bite. I think we have few bugs open in bugzilla https://bugzilla.yoctoproject.org/show_bug.cgi?id=11528 https://bugzilla.yoctoproject.org/show_bug.cgi?id=9417 which attempt to bring various portions of toolchain options into core. We have been postponing it for quite a while. if we want to consider it something for next LTS, this would be right time to start. > Cheers, > > Richard
diff --git a/meta/recipes-devtools/rust/rust.inc b/meta/recipes-devtools/rust/rust.inc index 284347dedc..c288903c9b 100644 --- a/meta/recipes-devtools/rust/rust.inc +++ b/meta/recipes-devtools/rust/rust.inc @@ -73,6 +73,7 @@ python do_configure() { # [target.ARCH-poky-linux] host_section = "target.{}".format(d.getVar('RUST_HOST_SYS', True)) + runtime = "target.{}".format(d.getVar('RUNTIME', True)) config.add_section(host_section) llvm_config_target = d.expand("${RUST_ALTERNATE_EXE_PATH}") @@ -107,6 +108,8 @@ python do_configure() { # [llvm] config.add_section("llvm") config.set("llvm", "static-libstdcpp", e(False)) + if "llvm" in runtime: + config.set("llvm", "use-libcxx", e(True)) # [rust] config.add_section("rust")
meta-clang has options when it comes to C++ runtime, default is to use gnu runtime, other options are llvm runtime and android runtime. This patch helps when a distro is using llvm runtime for C/C++ runtime. It informs the rust build system about right C++ runtime to configure for when such a setting is used. Signed-off-by: Khem Raj <raj.khem@gmail.com> --- meta/recipes-devtools/rust/rust.inc | 3 +++ 1 file changed, 3 insertions(+)