[WIP] Rust update

  • Done
  • quality assurance status badge
Details
5 participants
  • Danny Milosavljevic
  • Ludovic Courtès
  • ng0
  • ng0
  • Ricardo Wurmus
Owner
unassigned
Submitted by
Danny Milosavljevic
Severity
normal
D
D
Danny Milosavljevic wrote on 12 Sep 2017 18:50
(address . guix-patches@gnu.org)
20170912185023.7de883ff@scratchpost.org
I'm trying to update our Rust. I've got it to work further than the text "package bootstrap" once, but I can't find how I did it anymore. See below.

Help?

Toggle diff (172 lines)
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 652686e06..a0d4554d6 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -25,6 +25,7 @@
#:use-module (gnu packages bootstrap)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages cross-base)
#:use-module (gnu packages curl)
#:use-module (gnu packages elf)
#:use-module (gnu packages flex)
@@ -47,7 +48,7 @@
#:use-module (srfi srfi-26))
;; Should be one less than the current released version.
-(define %rust-bootstrap-binaries-version "1.15.0")
+(define %rust-bootstrap-binaries-version "1.17.0")
(define %rust-bootstrap-binaries
(origin
@@ -58,7 +59,7 @@
"-i686-unknown-linux-gnu.tar.gz"))
(sha256
(base32
- "0wmkfx8pxmkkw021mrq9s3xhra8f0daqdl6j56pxyn4w39i0rzrw"))))
+ "1svbg96gjkfk40hgyhgkm5mqxlx24943xf1423p3gfhqyvh6rl9r"))))
(define (increment-rust-version rust-version major patch)
(match (string-split rust-version #\.)
@@ -208,7 +209,7 @@ rustc-bootstrap and cargo-bootstrap packages.")
"rustc-" version "-src.tar.gz"))
(sha256
(base32
- "1d78jq7mc34n265by68amr9r4nzbiqrilfbwh7gx56ydn4gb6rpr"))
+ "04b1qd4zy9x0hax0rxzd0gg6nki37kjdvk9bid46j8lykglkdp6j"))
(modules '((guix build utils)))
(snippet
`(begin
@@ -222,16 +223,26 @@ rustc-bootstrap and cargo-bootstrap packages.")
("git" ,git)
("procps" ,procps) ; For the tests
("python-2" ,python-2)
+ ("cargo-bootstrap" ,cargo-bootstrap)
("rust-bootstrap" ,rust-bootstrap)
- ("which" ,which)))
+ ("which" ,which)
+ ("strace" ,strace)
+ ("cross-gcc" ,(cross-gcc "i686-linux-gnu"
+ #:xbinutils (cross-binutils "i686-linux-gnu")
+ #:libc (cross-libc "i686-linux-gnu")))
+ ("cross-libc" ,(cross-libc "i686-linux-gnu"))))
(inputs
`(("jemalloc" ,jemalloc)
("llvm" ,llvm-3.9.1)))
(arguments
`(#:phases
(modify-phases %standard-phases
+ ;; Avoid cargo complaining about mismatched checksums.
+ (delete 'patch-source-shebangs)
+ (delete 'patch-generated-file-shebangs)
+ (delete 'patch-usr-bin-file)
(add-after 'unpack 'patch-configure
- (lambda _
+ (lambda* (#:key inputs #:allow-other-keys)
(substitute* "configure"
(("/usr/bin/env") (which "env")) ; Detect target CPU correctly.
(("probe_need CFG_CURL curl") "") ; Avoid curl build dependency.
@@ -247,14 +258,46 @@ rustc-bootstrap and cargo-bootstrap packages.")
(substitute* "src/tools/compiletest/src/util.rs"
(("(\"amd64\", \"x86_64\"),") "(\"amd64\", \"x86_64\"),
(\"nvptx\", \"nvptx\"),")) ; Make LLVM >= 3.8.1 work.
- (substitute* "mk/main.mk"
- (("LLVM_OPTIONAL_COMPONENTS=")
- "LLVM_OPTIONAL_COMPONENTS=nvptx ")) ; Make LLVM >= 3.8.1 work.
+ ;(system* "mv" "src/bootstrap/config.toml.example"
+ ; "src/bootstrap/config.toml")
+ (mkdir-p "src/bootstrap/.cargo")
+ (call-with-output-file "src/bootstrap/.cargo/config"
+ (lambda (p)
+ (format p "
+[source.crates-io]
+registry = 'https://github.com/rust-lang/crates.io-index'
+replace-with = 'vendored-sources'
+
+[source.vendored-sources]
+directory = 'src/vendor'
+
+[target.i686-linux-gnu]
+linker = \"~a/bin/i686-linux-gnu-gcc\"
+
+" (assoc-ref inputs "cross-gcc"))))
+
#t))
(add-after 'unpack 'set-env
(lambda _
+ (define (cross? x)
+ (string-contains x "cross-"))
(setenv "SHELL" (which "sh"))
(setenv "CONFIG_SHELL" (which "sh"))
+ (setenv "VERBOSE" "1")
+ (setenv "CROSS_C_INCLUDE_PATH" (getenv "C_INCLUDE_PATH"))
+ (setenv "CROSS_CPLUS_INCLUDE_PATH" (getenv "CPLUS_INCLUDE_PATH"))
+ (setenv "CROSS_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
+ (for-each
+ (lambda (env-name)
+ (let* ((env-value (getenv env-name))
+ (search-path (search-path-as-string->list env-value))
+ (new-search-path (filter (lambda (e) (not (cross? e)))
+ search-path))
+ (new-env-value (list->search-path-as-string
+ new-search-path ":")))
+ (setenv env-name new-env-value)))
+ '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH" "LIBRARY_PATH"))
+
#t))
(add-after 'unpack 'patch-tests
(lambda* (#:key inputs #:allow-other-keys)
@@ -284,6 +327,7 @@ fn test_process_mask"))
(rustc (assoc-ref inputs "rustc-bootstrap"))
(llvm (assoc-ref inputs "llvm"))
(jemalloc (assoc-ref inputs "jemalloc"))
+ ;; TODO make bootstrapper use i686 libraries! (-lutil, -ldl, ...).
(flags (list
(string-append "--prefix=" out)
(string-append "--datadir=" out "/share")
@@ -291,16 +335,43 @@ fn test_process_mask"))
(string-append "--default-linker=" gcc "/bin/gcc")
(string-append "--default-ar=" binutils "/bin/ar")
(string-append "--python=" python "/bin/python2")
+ ; FIXME /gnu/store/6rri0kxb9q1gz6lv1dgdwjh41aa9ijdl-rustc-bootstrap-1.17.0/bin/cargo is wrong.
(string-append "--local-rust-root=" rustc)
(string-append "--llvm-root=" llvm)
(string-append "--jemalloc-root=" jemalloc "/lib")
"--release-channel=stable"
"--enable-rpath"
"--enable-local-rust"
- "--disable-rustbuild" ; rustbuild doesn't work yet.
"--disable-manage-submodules")))
+ (mkdir "Xcargo")
+ (call-with-output-file "Xcargo/config"
+ (lambda (p)
+ (format p "
+[source.crates-io]
+registry = 'https://github.com/rust-lang/crates.io-index'
+replace-with = 'vendored-sources'
+
+[source.vendored-sources]
+directory = 'src/vendor'
+
+[target.i686-linux-gnu]
+linker = \"~a/bin/i686-linux-gnu-gcc\"
+
+" (assoc-ref inputs "cross-gcc"))))
+ (setenv "CARGO_HOME" (string-append (getcwd) "/Xcargo"))
+ (substitute* "src/bootstrap/bootstrap.py"
+ (("/etc/NIXOS")
+ (getcwd))
+ (("config [+] '/bin/cargo'")
+ (string-append "'" (assoc-ref inputs "cargo-bootstrap")
+ "/bin/cargo'"))
+ (("cargo[(][)], \"build\"") "cargo(), \"build\", \"--verbose\""))
;; Rust uses a custom configure script (no autoconf).
- (zero? (apply system* "./configure" flags)))))
+ (let ((status (zero? (apply system* (which "sh") "./configure" flags))))
+ (substitute* "Makefile"
+ (("[$][(]Q[)][$][(]BOOTSTRAP[)] build [$][(]BOOTSTRAP_ARGS[)]")
+ "$(Q)$(BOOTSTRAP) build $(BOOTSTRAP_ARGS)"))
+ status))))
(add-after 'install 'wrap-rustc
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
R
R
Ricardo Wurmus wrote on 25 Oct 2017 16:19
(name . Danny Milosavljevic)(address . dannym@scratchpost.org)(address . 28433@debbugs.gnu.org)
873767cnsu.fsf@elephly.net
Danny Milosavljevic <dannym@scratchpost.org> writes:

Toggle quote (6 lines)
> I'm trying to update our Rust. I've got it to work further than the
> text "package bootstrap" once, but I can't find how I did it anymore.
> See below.
>
> Help?

Could you tell us what you’ve tried and what the error means?

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC
R
R
Ricardo Wurmus wrote on 25 Oct 2017 16:19
control message for bug #28433
(address . control@debbugs.gnu.org)
E1e7MmL-0008Gk-TO@debbugs.gnu.org
tags 28433 moreinfo
D
D
Danny Milosavljevic wrote on 26 Oct 2017 10:17
Re: [bug#28433] [WIP] Rust update
(name . Ricardo Wurmus)(address . rekado@elephly.net)(address . 28433@debbugs.gnu.org)
20171026101728.6493ef46@scratchpost.org
Hi,

Rust as I posted it fails with the text below. It tries to compile and link rustc via bootstrap rustc and gcc, via a i686 compiler (also on x86_64). What the error message means is that it is only picking up the x86_64 glibc - and not the i686 glibc - even though the "cc" command line contains "-m32". I've even added a custom linker command to the rust config (also in the patch) but that doesn't help either - apparently that setting is not even picked up. Maybe that's the reason...

Rust has support for Nix somewhat, and I've enabled it in the bootstrapper. I've also added cross-libc for i686 and fixed up environment variables (in a hacky way - maybe that's the reason).

So I guess my actual question is how to do this cross compilation correctly. Note that the rust bootstrap compiler are binaries from upstream. (There's a project "mrust" https://github.com/thepowersgang/mrustc that is a reimplementation of Rust in C++ that we could use in the long term in order to remove this binary)

----------------------------------------------------------
Running `/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/bin/rustc --crate-name rustdoc src/bootstrap/bin/rustdoc.rs --crate-type bin --emit=dep-info,link -C
debug-assertions=off -C metadata=83218ce7652a40a2 -C extra-filename=-83218ce7652a40a2 --out-dir /tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps -L depe
ndency=/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps --extern rustc_serialize=/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/deb
ug/deps/librustc_serialize-5c8c719f8cb442df.rlib --extern getopts=/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libgetopts-781edef4d7eacd14.rlib --ex
tern gcc=/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libgcc-3c79a13fa356000a.rlib --extern libc=/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src
/build/bootstrap/debug/deps/liblibc-1ece201356dd0812.rlib --extern toml=/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libtoml-3495572d91ba2dfe.rlib -
-extern num_cpus=/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libnum_cpus-d81d39a56ecc4645.rlib --extern build_helper=/tmp/guix-build-rustc-1.18.0.d
rv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libbuild_helper-d1189496287db707.rlib --extern filetime=/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libfiletime-1fba24aeada37bf3.rlib --extern cmake=/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libcmake-4feacbf6844c5e86.rlib --extern bootstrap=/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libbootstrap-3ebfecab87ea2884.rlib`
error: linking with `cc` failed: exit code: 1
|
= note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m32" "-L" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/rustdoc-83218ce7652a40a2.0.o" "-o" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/rustdoc-83218ce7652a40a2" "-Wl,--gc-sections" "-pie" "-nodefaultlibs" "-L" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps" "-L" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib" "-Wl,-Bstatic" "-Wl,-Bdynamic" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libbootstrap-3ebfecab87ea2884.rlib" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libtoml-3495572d91ba2dfe.rlib" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/librustc_serialize-5c8
c719f8cb442df.rlib" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libnum_cpus-d81d39a56ecc4645.rlib" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libcmake-4feacbf6844c5e86.rlib" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libgcc-3c79a13fa356000a.rlib" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libbuild_helper-d1189496287db707.rlib" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libfiletime-1fba24aeada37bf3.rlib" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/liblibc-1ece201356dd0812.rlib" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libgetopts-781edef4d7eacd14.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/libstd-f4594d3e53dcb114.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq
-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/libpanic_unwind-a0157c0ca919c364.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/libunwind-488b4ab4bd53a138.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/librand-1efbcfd8938372b6.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/libcollections-532a3dbf317eff86.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/liballoc-ca07b617414dd0fa.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/liballoc_jemalloc-492d8ea7fa3384ff.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/liblibc-88c194c15fdb6521.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-ru
stc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/libstd_unicode-cfbd6648f7db2ee5.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/libcore-687e6a964d22cbb4.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/libcompiler_builtins-987729be881d4d32.rlib" "-l" "util" "-l" "dl" "-l" "rt" "-l" "pthread" "-l" "gcc_s" "-l" "pthread" "-l" "c" "-l" "m" "-l" "rt" "-l" "util"

= note: ld: skipping incompatible /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/libutil.so when searching for -lutil
ld: skipping incompatible /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/libutil.a when searching for -lutil
ld: skipping incompatible /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/libutil.so when searching for -lutil
ld: skipping incompatible /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/libutil.a when searching for -lutil
ld: cannot find -lutil
ld: skipping incompatible /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/libdl.so when searching for -ldl
ld: skipping incompatible /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/libdl.a when searching for -ldl
ld: skipping incompatible /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/libdl.so when searching for -ldl
ld: skipping incompatible /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/libdl.a when searching for -ldl
ld: cannot find -ldl
ld: skipping incompatible /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/librt.so when searching for -lrt
ld: skipping incompatible /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/librt.a when searching for -lrt
ld: skipping incompatible /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/librt.so when searching for -lrt
ld: skipping incompatible /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/librt.a when searching for -lrt
ld: cannot find -lrt
ld: skipping incompatible /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/libpthread.so when searching for -lpthread
ld: skipping incompatible /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/libpthread.a when searching for -lpthread
ld: skipping incompatible /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/libpthread.so when searching for -lpthread
ld: skipping incompatible /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/libpthread.a when searching for -lpthread
ld: cannot find -lpthread
ld: skipping incompatible /gnu/store/3x53yv4v144c9xp02rs64z7j597kkqax-gcc-5.4.0-lib/lib/gcc/x86_64-unknown-linux-gnu/5.4.0/../../../libgcc_s.so when searching for -lgcc_s
ld: cannot find -lgcc_s
----------------------------------------------------------
D
D
Danny Milosavljevic wrote on 28 Oct 2017 12:42
(name . Ricardo Wurmus)(address . rekado@elephly.net)(address . 28433@debbugs.gnu.org)
20171028124258.22553eee@scratchpost.org
Aha! I digged some more and found that rust-bootstrap doesn't specify #:system "i686-linux", while rustc-bootstrap does.

Symptom:

$ guix environment --pure rustc
[env]$ ls -l /gnu/store/15hcgm941wgxfk08w0wrwpd9p7wjbq87-profile/bin/cc
lrwxrwxrwx 2 root root 72 Jan 1 1970 /gnu/store/15hcgm941wgxfk08w0wrwpd9p7wjbq87-profile/bin/cc -> /gnu/store/a3gr3imzn6nqzs9q1ql0pilr0dnbpps4-rust-bootstrap-1.15.0/bin/cc
[env]$ file /gnu/store/a3gr3imzn6nqzs9q1ql0pilr0dnbpps4-rust-bootstrap-1.15.0/bin/cc
/gnu/store/a3gr3imzn6nqzs9q1ql0pilr0dnbpps4-rust-bootstrap-1.15.0/bin/cc: symbolic link to /gnu/store/8yxpqz65fgvcab60ypih009xv777ni66-gcc-5.4.0/bin/gcc
[env]$ file /gnu/store/8yxpqz65fgvcab60ypih009xv777ni66-gcc-5.4.0/bin/gcc
/gnu/store/8yxpqz65fgvcab60ypih009xv777ni66-gcc-5.4.0/bin/gcc: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /gnu/store/3h31zsqxjjg52da5gp3qmhkh4x8klhah-glibc-2.25/lib/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, not stripped, with debug_info

Note "x86-64".

On the other hand:

[env]$ file -L /gnu/store/15hcgm941wgxfk08w0wrwpd9p7wjbq87-profile/bin/rustc
/gnu/store/15hcgm941wgxfk08w0wrwpd9p7wjbq87-profile/bin/rustc: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /gnu/store/kzkgc8avgnanrv3ab2g3g8yj7l4bcavj-glibc-2.25/lib/ld-linux.so.2, for GNU/Linux 2.6.9, not stripped, with debug_info

[env]$ file -L /gnu/store/kzkgc8avgnanrv3ab2g3g8yj7l4bcavj-glibc-2.25/lib/ld-linux.so.2
/gnu/store/kzkgc8avgnanrv3ab2g3g8yj7l4bcavj-glibc-2.25/lib/ld-linux.so.2: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped, with debug_info

Note "32-bit", "80386".

But when I change rust-bootstrap to specify #:system "i686-linux", then I get:

|
= note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m32" "-L" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/rustc-f53d5ba9fb00bcc2.0.o" "-o" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/rustc-f53d5ba9fb00bcc2" "-Wl,--gc-sections" "-pie" "-nodefaultlibs" "-L" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps" "-L" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib" "-Wl,-Bstatic" "-Wl,-Bdynamic" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libbootstrap-3ebfecab87ea2884.rlib" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libtoml-3495572d91ba2dfe.rlib" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/librustc_serialize-5c8c719
f8cb442df.rlib" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libnum_cpus-d81d39a56ecc4645.rlib" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libcmake-4feacbf6844c5e86.rlib" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libgcc-3c79a13fa356000a.rlib" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libbuild_helper-d1189496287db707.rlib" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libfiletime-1fba24aeada37bf3.rlib" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/liblibc-1ece201356dd0812.rlib" "/tmp/guix-build-rustc-1.18.0.drv-0/rustc-1.18.0-src/build/bootstrap/debug/deps/libgetopts-781edef4d7eacd14.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/libstd-f4594d3e53dcb114.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rus
tc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/libpanic_unwind-a0157c0ca919c364.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/libunwind-488b4ab4bd53a138.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/librand-1efbcfd8938372b6.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/libcollections-532a3dbf317eff86.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/liballoc-ca07b617414dd0fa.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/liballoc_jemalloc-492d8ea7fa3384ff.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/liblibc-88c194c15fdb6521.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-
bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/libstd_unicode-cfbd6648f7db2ee5.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/libcore-687e6a964d22cbb4.rlib" "/gnu/store/zmcc9gizicl91qvpcnl7ric2klnqhsdq-rustc-bootstrap-1.17.0/lib/rustlib/i686-unknown-linux-gnu/lib/libcompiler_builtins-987729be881d4d32.rlib" "-l" "util" "-l" "dl" "-l" "rt" "-l" "pthread" "-l" "gcc_s" "-l" "pthread" "-l" "c" "-l" "m" "-l" "rt" "-l" "util"
= note: ld: /gnu/store/w8swvn15kqzzl3q5d0d9zjnhg5pk9ksw-gcc-5.4.0/libexec/gcc/i686-unknown-linux-gnu/5.4.0/liblto_plugin.so: error loading plugin: /gnu/store/w8swvn15kqzzl3q5d0d9zjnhg5pk9ksw-gcc-5.4.0/libexec/gcc/i686-unknown-linux-gnu/5.4.0/liblto_plugin.so: wrong ELF class: ELFCLASS32
D
D
Danny Milosavljevic wrote on 28 Oct 2017 13:31
(name . Ricardo Wurmus)(address . rekado@elephly.net)(address . 28433@debbugs.gnu.org)
20171028133157.4dc52bd9@scratchpost.org
And gcc picks up ld from PATH, which is a x86_64 ld. Bad.
D
D
Danny Milosavljevic wrote on 28 Oct 2017 13:57
(name . Ricardo Wurmus)(address . rekado@elephly.net)(address . 28433@debbugs.gnu.org)
20171028135726.76e5a14e@scratchpost.org
Do we support lib32 a la "gcc -m32" ? How can we provide a working glibc for that? It seems that rustc bootstrap is trying to use that option.
N
(name . Danny Milosavljevic)(address . dannym@scratchpost.org)
20171028153623.jpup557ubcbo6xlw@abyayala
Danny Milosavljevic transcribed 8.7K bytes:
Toggle quote (1 lines)
> Hi,
Toggle quote (1 lines)
> So I guess my actual question is how to do this cross compilation correctly.
Note that the rust bootstrap compiler are binaries from upstream.
(There's a project "mrust" https://github.com/thepowersgang/mrustc
that is a reimplementation of Rust in C++ that we could use in the long
term in order to remove this binary)

In the long term this would be nice. It was my first idea when
I learned about this project, but as you can read in the
bug I opened in the last 2(?) months in the mrustc bugtracker
it still requires rustc to work.
--
ng0
GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
https://www.infotropique.orghttps://ng0.infotropique.org
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEqIyK3RKYKNfqwC5S4i+bv+40hYgFAln0o/cACgkQ4i+bv+40
hYgaOQ/+NGN9JpARPzkGmzINORAj3XS/Wi0pvNKLOdOtKSNlownPWPfpWUjzzGyj
l1Eb/Bhy3XW3xHYEBDFSLt/6PM9K4/sqmFIC5wUs/n6Awzh9A0VZBlYw73Rllfgl
ySxhflFbzCIzzL6pNMAR5mQ/f11YBqoNAF4Ke04WMQ+bETMwWG+1creL8Rj2KbNC
elA8rhaVqcOHPAM2zC5mHsPEZgFURcN58z0LsCjASpy07p8Td/z3v9E9RKohMmRa
jvEG43xoxJlwJ+iiln3V1yRah6uO6e+//DapzJp2XtDxOcIlHo14gM++Gszmj8kL
mBAprHalVfFvrSmZHHxxm91br8oEobcLrzJmuxd6VVKJTN0R+je1veWQfae3Q4I1
4HGoTONlqAqSPkr7t+sl9QN6/fbfow/iU/rb+NV+wh9hGhHNKI1XO0QAiLySOVZz
BDV2M0kXikLSNkFEU+9uzTua5C2EFW8MVyV+9M3hFIsS0CfueQo4jqda5BEV4QEv
JuWO/UkkvOI2DifeadGi45k53BQBwlTQuLFsLUbsHz4kNYL5y1eiIukJvnM2POfL
/DV/jJhFBquCAvJzKGOI3yeMBHQ61zjueKuF8NZbbjBNNtfr52nukMMKBQCVR6w8
8n+7NMg/UzhlC8z3UyNupZDvrXq9UkhkmIagc+L976KfOSm6HHg=
=eCFk
-----END PGP SIGNATURE-----


L
L
Ludovic Courtès wrote on 28 Oct 2017 20:26
(name . Danny Milosavljevic)(address . dannym@scratchpost.org)
87d1575dsw.fsf@gnu.org
Hi,

Danny Milosavljevic <dannym@scratchpost.org> skribis:

Toggle quote (2 lines)
> Do we support lib32 a la "gcc -m32" ? How can we provide a working glibc for that? It seems that rustc bootstrap is trying to use that option.

We don’t support multilib, so glibc provides only 64-bit headers on
x86_64 (if you try -m32 there you’ll get an error about missing
<gnu/stubs-32.h> or something like that.)

Ludo’.
L
L
Ludovic Courtès wrote on 28 Oct 2017 20:32
(name . ng0)(address . ng0@infotropique.org)
878tfv5dj4.fsf@gnu.org
ng0 <ng0@infotropique.org> skribis:

Toggle quote (4 lines)
> (There's a project "mrust" https://github.com/thepowersgang/mrustc
> that is a reimplementation of Rust in C++ that we could use in the long
> term in order to remove this binary)

At GPCE I also talked with someone who implements a compiler for a
Rust-like language (Rust with some extensions, minus a few features, so
not directly usable but might be worth keeping in mind):


Ludo’.
D
D
Danny Milosavljevic wrote on 30 Oct 2017 12:35
(name . Ludovic Courtès)(address . ludo@gnu.org)
20171030123501.66cebab2@scratchpost.org
On Sat, 28 Oct 2017 20:26:39 +0200
ludo@gnu.org (Ludovic Courtès) wrote:

Toggle quote (8 lines)
> Danny Milosavljevic <dannym@scratchpost.org> skribis:
>
> > Do we support lib32 a la "gcc -m32" ? How can we provide a working glibc for that? It seems that rustc bootstrap is trying to use that option.
>
> We don’t support multilib, so glibc provides only 64-bit headers on
> x86_64 (if you try -m32 there you’ll get an error about missing
> <gnu/stubs-32.h> or something like that.)

Yeah.

What happens when I use an i686 host/target gcc and use "-m32" (rustbuild does that)? Will it just ignore the option?
L
L
Ludovic Courtès wrote on 30 Oct 2017 16:38
(name . Danny Milosavljevic)(address . dannym@scratchpost.org)
8760aw7ijp.fsf@gnu.org
Danny Milosavljevic <dannym@scratchpost.org> skribis:

Toggle quote (15 lines)
> On Sat, 28 Oct 2017 20:26:39 +0200
> ludo@gnu.org (Ludovic Courtès) wrote:
>
>> Danny Milosavljevic <dannym@scratchpost.org> skribis:
>>
>> > Do we support lib32 a la "gcc -m32" ? How can we provide a working glibc for that? It seems that rustc bootstrap is trying to use that option.
>>
>> We don’t support multilib, so glibc provides only 64-bit headers on
>> x86_64 (if you try -m32 there you’ll get an error about missing
>> <gnu/stubs-32.h> or something like that.)
>
> Yeah.
>
> What happens when I use an i686 host/target gcc and use "-m32" (rustbuild does that)? Will it just ignore the option?

Yes, I think -m32 is a no-op in this case.

Ludo’.
D
D
Danny Milosavljevic wrote on 30 Oct 2017 17:14
(name . Ludovic Courtès)(address . ludo@gnu.org)
20171030171415.0cf6c27d@scratchpost.org
Hi Ludo,

Toggle quote (2 lines)
> Yes, I think -m32 is a no-op in this case.

Yep. I just got rustc to build a bootstrap executable (which fails when executing it [*], but hey, progress) by making a union-build with all the i686 libs.

Feels kinda icky, but it seems that propagated-inputs don't remember the #:system it was for, so for example if A propagates B and A specifies system i686, and X specifies system x86_64 and X depends on A, then X's B will be x86_64. Weird but understandable I guess...

Details:

A:
propagated-inputs
B
arguments system i686

X:
native-inputs
A
arguments system x86_64

Now X's B is x86_64...

The workaround is this:

A:
arguments system i686
native-inputs
B
union-build out/lib from B (etc)

X:
native-inputs
A
arguments system x86_64

That works.

In our specific case A = "rust-bootstrap", X = "rustc", B = "glibc", "gcc:lib" etc.

[*] Tries to load libgcc_s.so.1 from the glibc store directory. WTF?
D
D
Danny Milosavljevic wrote on 30 Oct 2017 20:18
[WIP] v2 Rust update
(address . 28433@debbugs.gnu.org)
20171030201820.6e2aa96d@scratchpost.org
New patch (relative to master) attached. Result:

...
Compiling bootstrap v0.0.0 (file:///tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/src/bootstrap)
...
Running `/gnu/store/vqqyfd20cci8ngffx8ip30xj1zghj3d3-rustc-bootstrap-1.20.0/bin/rustc --crate-name rustdoc src/bootstrap/bin/rustdoc.rs --crate-type bin --emit=dep-info,link -C debug-assertions=off -C overflow-checks=on -C metadata=be82d62669cb1c84 -C extra-filename=-be82d62669cb1c84 --out-dir /tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/build/bootstrap/debug/deps -L dependency=/tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/build/bootstrap/debug/deps --extern serde=/tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/build/bootstrap/debug/deps/libserde-632d9b22ceaaf392.rlib --extern getopts=/tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/build/bootstrap/debug/deps/libgetopts-3bd92ee3d46aec42.rlib --extern filetime=/tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/build/bootstrap/debug/deps/libfiletime-c92abda52111c8f6.rlib --extern lazy_static=/tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/build/bootstrap/debug/deps/liblazy_static-2aedc8916caa605d.rlib --ex
tern cmake=/tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/build/bootstrap/debug/deps/libcmake-cb4e4459aab5227f.rlib --extern build_helper=/tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/build/bootstrap/debug/deps/libbuild_helper-a3d8a479aaa255b5.rlib --extern toml=/tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/build/bootstrap/debug/deps/libtoml-9a87f4f0395599e4.rlib --extern gcc=/tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/build/bootstrap/debug/deps/libgcc-f472059c4232400f.rlib --extern serde_derive=/tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/build/bootstrap/debug/deps/libserde_derive-46fcba9d518ff59d.so --extern serde_json=/tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/build/bootstrap/debug/deps/libserde_json-d578450b81b0fe32.rlib --extern num_cpus=/tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/build/bootstrap/debug/deps/libnum_cpus-c524032e97e252a3.rlib --extern libc=/tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/build/bootstrap/debug/de
ps/liblibc-785194da5730896d.rlib --extern bootstrap=/tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/build/bootstrap/debug/deps/libbootstrap-5489136beef8bcf0.rlib`
Finished dev [unoptimized] target(s) in 95.84 secs
running: /tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/build/bootstrap/debug/bootstrap build -v
/tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/build/bootstrap/debug/bootstrap: error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory
Traceback (most recent call last):
File "/tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/src/bootstrap/bootstrap.py", line 816, in <module>
main()
File "/tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/src/bootstrap/bootstrap.py", line 799, in main
bootstrap()
File "/tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/src/bootstrap/bootstrap.py", line 790, in bootstrap
run(args, env=env, verbose=build.verbose)
File "/tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/src/bootstrap/bootstrap.py", line 148, in run
raise RuntimeError(err)
RuntimeError: failed to run: /tmp/guix-build-rustc-1.21.0.drv-0/rustc-1.21.0-src/build/bootstrap/debug/bootstrap build -v
make: *** [Makefile:24: all] Error 1
phase `build' failed after 96.3 seconds
Attachment: RUST
N
Re: [bug#28433] [WIP] Rust update
(name . Danny Milosavljevic)(address . dannym@scratchpost.org)
20171128063517.yrkmqip2mjh4kudn@abyayala
Hey Danny,

what's missing here? rustc has been released as 1.22.1 since this thread
started. I hope to introduce some people in January at our GNUnet
workshop to the open tasks on the Guix rust-build-system and - depending
on how they judge their own abilities - get them to work on this throughout
the year.

Danny Milosavljevic transcribed 0.9K bytes:
Toggle quote (45 lines)
> Hi Ludo,
>
> > Yes, I think -m32 is a no-op in this case.
>
> Yep. I just got rustc to build a bootstrap executable (which fails when executing it [*], but hey, progress) by making a union-build with all the i686 libs.
>
> Feels kinda icky, but it seems that propagated-inputs don't remember the #:system it was for, so for example if A propagates B and A specifies system i686, and X specifies system x86_64 and X depends on A, then X's B will be x86_64. Weird but understandable I guess...
>
> Details:
>
> A:
> propagated-inputs
> B
> arguments system i686
>
> X:
> native-inputs
> A
> arguments system x86_64
>
> Now X's B is x86_64...
>
> The workaround is this:
>
> A:
> arguments system i686
> native-inputs
> B
> union-build out/lib from B (etc)
>
> X:
> native-inputs
> A
> arguments system x86_64
>
> That works.
>
> In our specific case A = "rust-bootstrap", X = "rustc", B = "glibc", "gcc:lib" etc.
>
> [*] Tries to load libgcc_s.so.1 from the glibc store directory. WTF?
>
>
>
>

--
GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEqIyK3RKYKNfqwC5S4i+bv+40hYgFAlodA6UACgkQ4i+bv+40
hYheiw/+MFnToTUP7pqzzBUWHSdaLL2AzY9GoRxD0bYvSdhSFoZzbKj6uD/fGbbt
BnjFiNckmXbQ6RXJ8p3TkRK+0P00D3qNU5tBH9Qo3Tu0hSfpfc3RA+RZpwfb2LUe
DzkCN6cV5QVGZ07p+Qqx1aaI9jTeK3HXCI884GAbnm+I42hIbBMKq8WFQrFVwto2
ZlYoxZZQ9t8v8Sovb6juj2bUVLLQ5YBUzz988fTcrecuOYG/QQ73os1sI2dtt5A3
/akoxe3EVItxgPAIczUv0MbMuMBxboDxWnpkw1pbQrtCGhCwe0+ep+FKqK+D1W0b
2macpBnt4NU0J6naPPJZquA/gAIJCilyemEDWN6ipkwDE8R1zbbCK0ad4yrtGHHj
lyv/QMtkg4wf6o50HzyVTPBOo7RxMGZ+li2sdQjayMjlcKOffCRVENxnsPFjxZw+
eyJvajiCJdyyCfKHwtJLGOeWlPZtzpI/Ybv2mkquMoO+c1+Yy3qFPqCAjLLEP1ka
3ouna9oofEI9HzyEo0/JJdOQmgm167m/7JIRsA0pSVDr4AWHKR5nBgNfr47jqs9i
xVGsNMEn0vP5C1i8GVI3LE4fOVpY7TyijFsQG6l2NI/9eBgdwximjPt0WiD9OMQd
vd3SI+VBy4CFy1zkXlosfQCXQJsgthGECqVAnyZn5ToL7zk2GbE=
=uDr5
-----END PGP SIGNATURE-----


D
D
Danny Milosavljevic wrote on 28 Nov 2017 11:12
(name . ng0)(address . ng0@n0.is)
20171128111208.34e2d910@scratchpost.org
Hi ng0,

I've attached the current version of gnu/packages/rust.scm .

For some reason, Rust bootstrap ignores the environment variable AR_x86_64_unknown_linux_gnu even though it doesn't ignore other similar variables (CC_x86_64_unknown_linux_gnu etc). It also ignored config.toml's [target.x86_64-unknown-linux-gnu]. Therefore, the bootstrapping fails when trying to compile the x86_64 version (the i686 version works).

To try it, copy the attached file to gnu/packages/rust.scm , overwriting the latter file.

Then just invoke

$ ./pre-inst-env guix build rustc

It will fail like explained above, with the log message:

------------------------------------------------------------------------------------------------------
running: /tmp/guix-build-rustc-1.22.0.drv-0/rustc-1.22.0-src/build/bootstrap/debug/bootstrap build -v
finding compilers
CC_x86_64-unknown-linux-gnu = "/gnu/store/5sv5zy2kgg6iaqyv8zw49w4243j0xkd0-gcc-5.4.0/bin/gcc"
AR_x86_64-unknown-linux-gnu = "/gnu/store/5sv5zy2kgg6iaqyv8zw49w4243j0xkd0-gcc-5.4.0/bin/ar"
CC_x86_64-unknown-linux-gnu = "/gnu/store/5sv5zy2kgg6iaqyv8zw49w4243j0xkd0-gcc-5.4.0/bin/gcc"
AR_x86_64-unknown-linux-gnu = "/gnu/store/5sv5zy2kgg6iaqyv8zw49w4243j0xkd0-gcc-5.4.0/bin/ar"
CC_x86_64-unknown-linux-gnu = "/gnu/store/5sv5zy2kgg6iaqyv8zw49w4243j0xkd0-gcc-5.4.0/bin/gcc"
AR_x86_64-unknown-linux-gnu = "/gnu/store/5sv5zy2kgg6iaqyv8zw49w4243j0xkd0-gcc-5.4.0/bin/ar"
CXX_x86_64-unknown-linux-gnu = "/gnu/store/5sv5zy2kgg6iaqyv8zw49w4243j0xkd0-gcc-5.4.0/bin/g++"
CXX_x86_64-unknown-linux-gnu = "/gnu/store/5sv5zy2kgg6iaqyv8zw49w4243j0xkd0-gcc-5.4.0/bin/g++"
running sanity check
thread 'main' panicked at '

couldn't find required command: "/gnu/store/5sv5zy2kgg6iaqyv8zw49w4243j0xkd0-gcc-5.4.0/bin/ar"
------------------------------------------------------------------------------------------------------

I've had something similar before - see CFG_LOCAL_RUST_ROOT substitution in rust.scm - but I thought I fixed it.

So the next step would have someone find out why it doesn't pick up the value from the environment variable "AR_x86_64_unknown_linux_gnu".
Attachment: rust.scm
D
D
Danny Milosavljevic wrote on 29 Nov 2017 09:04
(name . ng0)(address . ng0@n0.is)
20171129090431.5fe37e26@scratchpost.org
New version attached...

Rust's libbacktrace now picks up the x86_64 gcc but then that uses the i686 ld.
Attachment: rust.scm
D
D
Danny Milosavljevic wrote on 23 Dec 2017 23:18
(no subject)
(address . control@debbugs.gnu.org)
20171223231806.621a018f@scratchpost.org
close 28433
?