[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

Debbugs page

D
D
Danny Milosavljevic wrote on 12 Sep 2017 09: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 07: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 07: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 01: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 03: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 04: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 04: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 11: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 11: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 04: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 08: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 09: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 12: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 02: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 00: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 14:18
(no subject)
(address . control@debbugs.gnu.org)
20171223231806.621a018f@scratchpost.org
close 28433
?
Your comment

This issue is archived.

To comment on this conversation send an email to 28433@patchwise.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 28433
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch