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]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to