On Fri, 2021-08-27 at 10:03 +0100, Richard Purdie via lists.openembedded.org wrote: > On Fri, 2021-08-27 at 00:05 -0400, Randy MacLeod wrote: > > Thanks to Richard's dogged determination and Herculean efforts, > > the Rust recipes are now merged to the oe-core master branch. > > > > https://git.openembedded.org/openembedded-core/log/?qt=range&q=master > > > > > > There are still some known problems, such as: > > > > 1. Tim Orling finding that Rust fails to build python-cryptography: > > > > > > https://git.openembedded.org/meta-openembedded-contrib/log/?h=timo/rust_python3-cryptography > > > > Tim says that this change helps: > > > > https://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=timo/rustc-print-cfg-fix > > > > > > and: > > > > 2. a reproducible build failure on CentOS-7: > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/115/builds/597 > > > > where, we see: > > = note: /bin/sh: /lib64/libc.so.6: version `GLIBC_2.33' \ > > not found (required by \ > > /home/pokybuild/yocto-worker/reproducible-centos/build/\ > > build-st/reproducibleB/tmp/work/x86_64-linux/cargo-native/\ > > 1.54.0-r0/recipe-sysroot-native/usr/lib/libtinfo.so.5) > > > > > > > > > > > > error: linking with `\ > > /home/pokybuild/yocto-worker/reproducible-centos/build/\ > > build-st/reproducibleB/tmp/work/x86_64-linux/cargo-native/\ > > 1.54.0-r0/wrapper/target-rust-ccld` failed: exit status: 1 > > > > I had a quick look at this. It reproduces if you build cargo-native on a > centos7 > machine with our M2 buildtools tarball in the environment of the build. > > Adding the uninative relocation hack to the cargo snapshot binary with: > > do_cargo_setup_snapshot () { > ${WORKDIR}/rust-snapshot-components/${CARGO_SNAPSHOT}/install.sh > --prefix="${WORKDIR}/${CARGO_SNAPSHOT}" --disable-ldconfig > + # Need to use uninative's loader if enabled/present since the library > paths > + # are used internally by rust and result in symbol mismatches if we > don't > + if [ ! -z "${UNINATIVE_LOADER}" -a -e "${UNINATIVE_LOADER}" ]; then > + patchelf-uninative ${WORKDIR}/${CARGO_SNAPSHOT}/bin/cargo > --set-interpreter ${UNINATIVE_LOADER} > + fi > } > > didn't help. > > Running the command it mentions failing by hand in the same toolchain enabled > shell works. It therefore seems likely that something rust is putting into the > environment is breaking things. What that is, I don't know, I'm out of time to > debug further. > > It looks to me like it is using the ld from the host instead of the buildtools > tarball. I did change tmp/work/x86_64-linux/cargo-native/1.54.0- > r0/wrapper/target-rust-ccld to a full path to gcc and messed with PATH to > ensure > it would find "our" ld first but that didn't help. > > In the error output is some: > > Usage: which [options] [--] COMMAND [...] > Write the full path of COMMAND(s) to standard output. > > suggesting some which call might not be compatible with centos7?
temp/run.do_compile: bbnote "cargo = $(which /home/pokybuild/yocto-worker/reproducible-centos/build/build-st/tmp2/work/x86_64-linux/cargo-native/1.54.0-r0/cargo-1.53.0-x86_64-unknown-linux-gnu/bin/cargo)" temp/run.do_compile: bbnote "rustc = $(which ${RUSTC})" so probably not important. Cheers, Richard
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#155403): https://lists.openembedded.org/g/openembedded-core/message/155403 Mute This Topic: https://lists.openembedded.org/mt/85017687/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-