Hello, Ricardo Wurmus <rek...@elephly.net> writes:
> Ludovic Courtès <l...@gnu.org> writes: > >> We could try that, but IMO we first need a solution within days—we >> just >> cannot reasonably let this branch go on for longer than that. The >> librsvg 2.40 hack would give us Xfce (maybe GNOME?) on i686 today. >> >> Perhaps we can address all this in several steps: >> >> 1. apply the librsvg 2.40 hack now so we can merge >> ‘core-updates-frozen’ this week for real; >> >> 2. later on, introduce some Rust binary for non-x86_64; that >> would >> lead to rebuilds only on those architectures; >> >> 3. eventually, update mrustc (and have it call gcc with -O0 to >> reduce >> its memory footprint), or use GCC-Rust instead of that’s >> viable. >> >> WDYT? > > This sounds sensible. Merging core-updates-frozen does *not* mean > that it needs to be ready for release. It’s been delayed for too > long and further delays just serve to taint our morale and drain our > energy, applying fixes again and again with no end in sight. > > These ongoing delays have made core-updates-frozen grow so much in > scope that we cannot afford to delay a merge any longer. Let’s > merge asap, even if that means using an older librsvg right now. Then > add rust for non-x86_64 — either by cross-building it ourselves or > getting an existing binary to restore feature parity. Then work on a > long-term solution. I hear your frustration w.r.t to delays; I don't mind if this stopgap solution is implemented *now*, but I'm skeptical that it'd allow GNOME to built. I've been experimenting with a cross-compiled rustc; it's building, but there are some things to fix (the ld-wrapper used to wrap rustc so far is the native one, which is incorrect I believe, and cargo doesn't find the correct libz, libssh2). The branch is wip-cross-built-rust on our Savannah repo. I 'guix pack'd rust-i686-linux and tried it on a 32-bit Debian VM: For rustc: --8<---------------cut here---------------start------------->8--- $ file /gnu/store/6fkn8fc0m642xlnbblv3026cpp4i2411-profile/bin/rustc /gnu/store/6fkn8fc0m642xlnbblv3026cpp4i2411-profile/bin/rustc: symbolic link to /gnu/store/50fsf4g5xb51qa9jg7xhaaxcwh7h5v2w-rust-i686-linux-1.54.0/bin/rustc $ file /gnu/store/50fsf4g5xb51qa9jg7xhaaxcwh7h5v2w-rust-i686-linux-1.54.0/bin/.rustc-real /gnu/store/50fsf4g5xb51qa9jg7xhaaxcwh7h5v2w-rust-i686-linux-1.54.0/bin/.rustc-real: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /gnu/store/miwzifnpn3lgzd6kvkcmz1i0hx7vvdfm-glibc-cross-i686-linux-gnu-2.33/lib/ld-linux.so.2, for GNU/Linux 2.6.32, stripped $ /gnu/store/6fkn8fc0m642xlnbblv3026cpp4i2411-profile/bin/rustc --version rustc 1.54.0 --8<---------------cut here---------------end--------------->8--- For cargo: --8<---------------cut here---------------start------------->8--- $ file /gnu/store/6fkn8fc0m642xlnbblv3026cpp4i2411-profile/bin/cargo /gnu/store/6fkn8fc0m642xlnbblv3026cpp4i2411-profile/bin/cargo: symbolic link to /gnu/store/vhfdxbxla54n56qggv975c39vyaa0z91-rust-i686-linux-1.54.0-cargo/bin/cargo $ file /gnu/store/vhfdxbxla54n56qggv975c39vyaa0z91-rust-i686-linux-1.54.0-cargo/bin/cargo /gnu/store/vhfdxbxla54n56qggv975c39vyaa0z91-rust-i686-linux-1.54.0-cargo/bin/cargo: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /gnu/store/miwzifnpn3lgzd6kvkcmz1i0hx7vvdfm-glibc-cross-i686-linux-gnu-2.33/lib/ld-linux.so.2, for GNU/Linux 2.6.32, stripped $ /gnu/store/vhfdxbxla54n56qggv975c39vyaa0z91-rust-i686-linux-1.54.0-cargo/bin/cargo --version /gnu/store/vhfdxbxla54n56qggv975c39vyaa0z91-rust-i686-linux-1.54.0-cargo/bin/cargo: error while loading shared libraries: libz.so: wrong ELF class: ELFCLASS64 $ ldd /gnu/store/vhfdxbxla54n56qggv975c39vyaa0z91-rust-i686-linux-1.54.0-cargo/bin/cargo linux-gate.so.1 (0xb7f22000) libz.so => not found libcurl.so.4 => not found libssl.so.1.1 => /lib/i386-linux-gnu/libssl.so.1.1 (0xb71ae000) libcrypto.so.1.1 => /lib/i386-linux-gnu/libcrypto.so.1.1 (0xb6eeb000) libgcc_s.so.1 => /gnu/store/x5y2ngh1asiv3dkcbzaga9ml56xcm3ps-gcc-cross-i686-linux-gnu-10.3.0-lib/lib/gcc/i686-linux-gnu/10.3.0/../../../../i686-linux-gnu/lib/libgcc_s.so.1 (0xb6ecb000) libpthread.so.0 => /gnu/store/miwzifnpn3lgzd6kvkcmz1i0hx7vvdfm-glibc-cross-i686-linux-gnu-2.33/lib/libpthread.so.0 (0xb6eaa000) libm.so.6 => /gnu/store/miwzifnpn3lgzd6kvkcmz1i0hx7vvdfm-glibc-cross-i686-linux-gnu-2.33/lib/libm.so.6 (0xb6da8000) libdl.so.2 => /gnu/store/miwzifnpn3lgzd6kvkcmz1i0hx7vvdfm-glibc-cross-i686-linux-gnu-2.33/lib/libdl.so.2 (0xb6da0000) libc.so.6 => /gnu/store/miwzifnpn3lgzd6kvkcmz1i0hx7vvdfm-glibc-cross-i686-linux-gnu-2.33/lib/libc.so.6 (0xb6bb0000) /gnu/store/miwzifnpn3lgzd6kvkcmz1i0hx7vvdfm-glibc-cross-i686-linux-gnu-2.33/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7f24000) --8<---------------cut here---------------end--------------->8--- To be continued... Maxim