Skip to content

rustllvm: Update to LLVM trunk #29272

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Oct 25, 2015
Merged

rustllvm: Update to LLVM trunk #29272

merged 1 commit into from
Oct 25, 2015

Conversation

sanxiyn
Copy link
Member

@sanxiyn sanxiyn commented Oct 24, 2015

cc @zazdxscf

@rust-highfive
Copy link
Contributor

r? @alexcrichton

(rust_highfive has picked a reviewer for you, use r? to override)

@sanxiyn
Copy link
Member Author

sanxiyn commented Oct 24, 2015

Tested with LLVM trunk, which is at r251181 now.

First, r247309 causes Rust bootstrap to fail. (r247352 is a followup warning fix.) Revert the patch to test.

svn diff -c -247352 | patch -p0
svn diff -c -247309 | patch -p0

Second, run-make/target-specs fails. Otherwise, all tests pass.

@ghost
Copy link

ghost commented Oct 24, 2015

tl;dr: If It fails for me at a linking step (eg. ld: cannot find -lLLVMAsmParser) but I'm probably misunderstanding something (like, do I have to revert some llvm patches before testing?)

Testing with system llvm (so, not the llvm that comes with rust)
Note: I'm testing with my current outdated llvm(3.7.0) first, and then with the latest master(aka trunk) llvm.

$ llc --version
LLVM (http://llvm.org/):
  LLVM version 3.7.0
  Optimized build.
  Default target: x86_64-pc-linux-gnu
  Host CPU: (unknown)

  Registered Targets:
    amdgcn - AMD GCN GPUs
    cpp    - C++ backend
    r600   - AMD GPUs HD2XXX-HD6XXX
    x86    - 32-bit X86: Pentium-Pro and above
    x86-64 - 64-bit X86: EM64T and AMD64

$ cd /home/zazdxscf/build/1nonpkgs/rust/
$ wget https://patch-diff.githubusercontent.com/raw/rust-lang/rust/pull/29272.patch
$ cd rust/
$ git clean -dfx
...
$ git reset --hard
$ git pull
$ patch -Np1 -i ../llvm_only_x86_64.patch
$ patch -Np1 -i ../29272.patch
$ ./configure --prefix=/home/zazdxscf/build/1nonpkgs/rust/usr/local --enable-rpath --enable-manage-submodules --disable-clang --enable-ccache --enable-dist-host-only --disable-valgrind --disable-helgrind --disable-valgrind-rpass --python=/usr/bin/python2 --enable-optimize --enable-optimize-cxx --enable-optimize-llvm --enable-debug --enable-debuginfo --enable-debug-assertions --enable-debuginfo-tests --enable-llvm-assertions --enable-debug-jemalloc --disable-local-rust --llvm-root=/usr --release-channel=dev --host=x86_64-unknown-linux-gnu --target=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu
...

That llvm_only_x86_64.patch is https://github.com/zazdxscf/gentooskyline/blob/a7c195c38f9315e09976801614760c30ad77dc3f/system/Z575/OSes/gentoo/on_baremetal/filesystem_now/gentoo/home/zazdxscf/build/1nonpkgs/rust/llvm_only_x86_64.patch
which only makes sure rust doesn't compile for any other arch than x86_64 (also applies to the llvm that comes with rust). So in a way, that makes this testing incomplete, for it only tests for x86_64.

...
configure: git: submodule init
configure: git: submodule deinit src/llvm
Cleared directory 'src/llvm'
Submodule 'src/llvm' (https://github.com/rust-lang/llvm.git) unregistered for path 'src/llvm'
...
configure: looking at LLVM
configure: 
configure: not reconfiguring LLVM, external LLVM root
configure: found program '/usr/bin/FileCheck'
configure: 
configure: writing configuration
configure: 
configure: CFG_SRC_DIR          := /home/zazdxscf/build/1nonpkgs/rust/ ...
configure: CFG_SRC_DIR_RELATIVE := ./ 
configure: CFG_BUILD_DIR        := /home/zazdxscf/build/1nonpkgs/rust/ ...
configure: CFG_OSTYPE           := unknown-linux-gnu 
configure: CFG_CPUTYPE          := x86_64 
configure: CFG_CONFIGURE_ARGS   := --prefix=/home/zazdxscf/build/1nonp ...
configure: CFG_PREFIX           := /home/zazdxscf/build/1nonpkgs/rust/ ...
configure: CFG_HOST             := x86_64-unknown-linux-gnu 
configure: CFG_TARGET           := x86_64-unknown-linux-gnu 
configure: CFG_LIBDIR_RELATIVE  := lib 
configure: CFG_DISABLE_MANAGE_SUBMODULES :=  
configure: CFG_AARCH64_LINUX_ANDROID_NDK :=  
configure: CFG_ARM_LINUX_ANDROIDEABI_NDK :=  
configure: CFG_I686_LINUX_ANDROID_NDK :=  
configure: CFG_MANDIR           := /home/zazdxscf/build/1nonpkgs/rust/ ...
configure: CFG_CCACHE_BASEDIR   := /home/zazdxscf/build/1nonpkgs/rust/ ...
configure: CFG_LLVM_SRC_DIR     := /home/zazdxscf/build/1nonpkgs/rust/ ...
configure: CFG_LLVM_BUILD_DIR_x86_64_unknown_linux_gnu :=  
configure: CFG_LLVM_INST_DIR_x86_64_unknown_linux_gnu := /usr 
configure: 
configure: cp -f /home/zazdxscf/build/1nonpkgs/rust/rust/Makefile.in ./Makefile
configure: mv -f config.tmp config.mk
configure: 
configure: complete
...
$ time RUST_LOG=rustc::metadata::loader make -j4 -- VERBOSE=1 TIME_PASSES=1 TIME_LLVM_PASSES=1 'RUSTFLAGS=--verbose -Z print-link-args -Z print-llvm-passes -C debug-assertions=y' RUST_BACKTRACE=1
cfg: version 1.5.0-dev (04e497c00 2015-10-24)
cfg: build triple x86_64-unknown-linux-gnu
cfg: host triples x86_64-unknown-linux-gnu
cfg: target triples x86_64-unknown-linux-gnu
cfg: enabling debug assertions (CFG_ENABLE_DEBUG_ASSERTIONS)
cfg: enabling debuginfo (CFG_ENABLE_DEBUGINFO)
cfg: host for x86_64-unknown-linux-gnu is x86_64
cfg: os for x86_64-unknown-linux-gnu is unknown-linux-gnu
cfg: good valgrind for x86_64-unknown-linux-gnu is 1
cfg: using CC=ccache gcc (CFG_CC)
cfg: disabling valgrind run-pass tests
...
time: 0.069; rss: 112MB variance inference
/home/zazdxscf/build/1nonpkgs/rust/rust/src/rustllvm/RustWrapper.cpp: In function 'LLVMOpaqueValue* LLVMRustBuildLandingPad(LLVMBuilderRef, LLVMTypeRef, LLVMValueRef, unsigned int, const char*, LLVMValueRef)':
/home/zazdxscf/build/1nonpkgs/rust/rust/src/rustllvm/RustWrapper.cpp:972:69: error: invalid conversion from 'LLVMValueRef {aka LLVMOpaqueValue*}' to 'unsigned int' [-fpermissive]
     return LLVMBuildLandingPad(Builder, Ty, PersFn, NumClauses, Name);
                                                                     ^
/home/zazdxscf/build/1nonpkgs/rust/rust/src/rustllvm/RustWrapper.cpp:972:69: error: invalid conversion from 'unsigned int' to 'const char*' [-fpermissive]
/home/zazdxscf/build/1nonpkgs/rust/rust/src/rustllvm/RustWrapper.cpp:972:69: error: too many arguments to function 'LLVMOpaqueValue* LLVMBuildLandingPad(LLVMBuilderRef, LLVMTypeRef, unsigned int, const char*)'
In file included from /usr/include/llvm/IR/Value.h:17:0,
                 from /usr/include/llvm/IR/User.h:24,
                 from /usr/include/llvm/IR/Instruction.h:22,
                 from /usr/include/llvm/IR/BasicBlock.h:19,
                 from /usr/include/llvm/IR/IRBuilder.h:21,
                 from /home/zazdxscf/build/1nonpkgs/rust/rust/src/rustllvm/rustllvm.h:11,
                 from /home/zazdxscf/build/1nonpkgs/rust/rust/src/rustllvm/RustWrapper.cpp:11:
/usr/include/llvm-c/Core.h:2677:14: note: declared here
 LLVMValueRef LLVMBuildLandingPad(LLVMBuilderRef B, LLVMTypeRef Ty,
              ^
/home/zazdxscf/build/1nonpkgs/rust/rust/mk/rustllvm.mk:60: recipe for target 'x86_64-unknown-linux-gnu/rustllvm/RustWrapper.o' failed
make: *** [x86_64-unknown-linux-gnu/rustllvm/RustWrapper.o] Error 1
make: *** Waiting for unfinished jobs....
...
//something error-ed, rerunning with -j1 so to ensure output isn't garbled
$ time RUST_LOG=rustc::metadata::loader make -j1 -- VERBOSE=1 TIME_PASSES=1 TIME_LLVM_PASSES=1 'RUSTFLAGS=--verbose -Z print-link-args -Z print-llvm-passes -C debug-assertions=y' RUST_BACKTRACE=1
...

//ok it's taking too long to reach that error with -j1 so I C-c it mainly because I'm also compiling latest llvm and it will auto-install while rustc compiles, so I'm trying to prevent that...
//rerun with -j4

$ time RUST_LOG=rustc::metadata::loader make -j4 -- VERBOSE=1 TIME_PASSES=1 TIME_LLVM_PASSES=1 'RUSTFLAGS=--verbose -Z print-link-args -Z print-llvm-passes -C debug-assertions=y' RUST_BACKTRACE=1
...
INFO:rustc::metadata::loader: reading "liblog-bb94g++  -O2  -Wall -Werror -g -fPIC -m64 -fno-rtti -c -o  x86_64-unknown-linux-gnu/rustllvm/RustWrapper.o  -I//usr//include -O2 -pipe -march=native -ggdb -fvar-tracking-assignments -fno-omit-frame-pointer -ftrack-macro-expansion=2 -fstack-protector-all -fPIC  -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wno-maybe-uninitialized -Wnon-virtual-dtor -Wno-comment -Werror=date-time -std=c++11 -ffunction-sections -fdata-sections    -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS   -I /usr/include -I /home/zazdxscf/build/1nonpkgs/rust/rust/src/rustllvm/include /home/zazdxscf/build/1nonpkgs/rust/rust/src/rustllvm/RustWrapper.cpp
...
time: 0.466; rss: 128MB match checking
time: 0.021; rss: 128MB liveness checking
/home/zazdxscf/build/1nonpkgs/rust/rust/src/rustllvm/RustWrapper.cpp: In function 'LLVMOpaqueValue* LLVMRustBuildLandingPad(LLVMBuilderRef, LLVMTypeRef, LLVMValueRef, unsigned int, const char*, LLVMValueRef)':
/home/zazdxscf/build/1nonpkgs/rust/rust/src/rustllvm/RustWrapper.cpp:972:69: error: invalid conversion from 'LLVMValueRef {aka LLVMOpaqueValue*}' to 'unsigned int' [-fpermissive]
     return LLVMBuildLandingPad(Builder, Ty, PersFn, NumClauses, Name);
                                                                     ^
/home/zazdxscf/build/1nonpkgs/rust/rust/src/rustllvm/RustWrapper.cpp:972:69: error: invalid conversion from 'unsigned int' to 'const char*' [-fpermissive]
/home/zazdxscf/build/1nonpkgs/rust/rust/src/rustllvm/RustWrapper.cpp:972:69: error: too many arguments to function 'LLVMOpaqueValue* LLVMBuildLandingPad(LLVMBuilderRef, LLVMTypeRef, unsigned int, const char*)'
In file included from /usr/include/llvm/IR/Value.h:17:0,
                 from /usr/include/llvm/IR/User.h:24,
                 from /usr/include/llvm/IR/Instruction.h:22,
                 from /usr/include/llvm/IR/BasicBlock.h:19,
                 from /usr/include/llvm/IR/IRBuilder.h:21,
                 from /home/zazdxscf/build/1nonpkgs/rust/rust/src/rustllvm/rustllvm.h:11,
                 from /home/zazdxscf/build/1nonpkgs/rust/rust/src/rustllvm/RustWrapper.cpp:11:
/usr/include/llvm-c/Core.h:2677:14: note: declared here
 LLVMValueRef LLVMBuildLandingPad(LLVMBuilderRef B, LLVMTypeRef Ty,
              ^
^Cmake: *** Deleting file 'x86_64-unknown-linux-gnu/rustllvm/RustWrapper.o'
/home/zazdxscf/build/1nonpkgs/rust/rust/mk/rustllvm.mk:60: recipe for target 'x86_64-unknown-linux-gnu/rustllvm/RustWrapper.o' failed
make: *** [x86_64-unknown-linux-gnu/rustllvm/RustWrapper.o] Interrupt
/home/zazdxscf/build/1nonpkgs/rust/rust/mk/target.mk:164: recipe for target 'x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/stamp.serialize' failed
make: *** [x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/stamp.serialize] Interrupt

Ok it's not gonna work with system's llvm 3.7.0

Time to test with llvm trunk:

$ llc --version
LLVM (http://llvm.org/):
  LLVM version 3.8.0svn
  Optimized build.
  Default target: x86_64-pc-linux-gnu
  Host CPU: (unknown)

  Registered Targets:
    amdgcn - AMD GCN GPUs
    cpp    - C++ backend
    r600   - AMD GPUs HD2XXX-HD6XXX
    x86    - 32-bit X86: Pentium-Pro and above
    x86-64 - 64-bit X86: EM64T and AMD64

$ cd /home/zazdxscf/build/1nonpkgs/rust/
//already have: $ wget https://patch-diff.githubusercontent.com/raw/rust-lang/rust/pull/29272.patch
$ cd rust/
$ git clean -dfx
...
$ git reset --hard
$ git pull
$ patch -Np1 -i ../llvm_only_x86_64.patch
$ patch -Np1 -i ../29272.patch
$ time ./configure --prefix=/home/zazdxscf/build/1nonpkgs/rust/usr/local --enable-rpath --enable-manage-submodules --disable-clang --enable-ccache --enable-dist-host-only --disable-valgrind --disable-helgrind --disable-valgrind-rpass --python=/usr/bin/python2 --enable-optimize --enable-optimize-cxx --enable-optimize-llvm --enable-debug --enable-debuginfo --enable-debug-assertions --enable-debuginfo-tests --enable-llvm-assertions --enable-debug-jemalloc --disable-local-rust --llvm-root=/usr --release-channel=dev --host=x86_64-unknown-linux-gnu --target=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu
configure: looking for configure programs
configure: found program 'cmp'
configure: found program 'mkdir'
configure: found program 'printf'
configure: found program 'cut'
configure: found program 'head'
configure: found program 'grep'
configure: found program 'xargs'
configure: found program 'cp'
configure: found program 'find'
configure: found program 'uname'
configure: found program 'date'
configure: found program 'tr'
configure: found program 'sed'
configure: found program 'file'
configure: found program 'make'
configure: inspecting environment
configure: recreating config.tmp
configure: 
configure: processing ./configure args
configure: 
configure: CFG_ENABLE_DEBUG     := 1 
configure: CFG_DISABLE_VALGRIND_RPASS := 1 
configure: CFG_ENABLE_DEBUGINFO_TESTS := 1 
configure: CFG_ENABLE_LLVM_ASSERTIONS := 1 
configure: CFG_ENABLE_DEBUG_ASSERTIONS := 1 
configure: CFG_ENABLE_CCACHE    := 1 
configure: CFG_ENABLE_RPATH     := 1 
configure: CFG_ENABLE_DIST_HOST_ONLY := 1 
configure: CFG_LOCALSTATEDIR    := /var/lib 
configure: CFG_SYSCONFDIR       := /etc 
configure: CFG_DATADIR          := /share 
configure: CFG_INFODIR          := /share/info 
configure: CFG_LLVM_ROOT        := /usr 
configure: CFG_PYTHON           := /usr/bin/python2 
configure: CFG_JEMALLOC_ROOT    :=  
configure: CFG_BUILD            := x86_64-unknown-linux-gnu 
configure: CFG_ANDROID_CROSS_PATH := /opt/ndk_standalone 
configure: CFG_I686_LINUX_ANDROID_NDK :=  
configure: CFG_ARM_LINUX_ANDROIDEABI_NDK :=  
configure: CFG_AARCH64_LINUX_ANDROID_NDK :=  
configure: CFG_RELEASE_CHANNEL  := dev 
configure: CFG_MUSL_ROOT        := /usr/local 
configure: CFG_DEFAULT_LINKER   := cc 
configure: CFG_DEFAULT_AR       := ar 
configure: CFG_BUILD            := x86_64-unknown-linux-gnu 
configure: CFG_LIBDIR           := /home/zazdxscf/build/1nonpkgs/rust/ ...
configure: 
configure: validating ./configure args
configure: 
configure: debug mode enabled, setting performance options
configure: CFG_ENABLE_LLVM_ASSERTIONS := 1 
configure: CFG_ENABLE_DEBUG_ASSERTIONS := 1 
configure: CFG_ENABLE_DEBUGINFO := 1 
configure: CFG_ENABLE_DEBUG_JEMALLOC := 1 
configure: CFG_BOOTSTRAP_KEY    := 19:36:47 
configure: 
configure: looking for build programs
configure: 
configure: CFG_CURLORWGET       := /usr/bin/curl (7.45.0)
configure: CFG_GIT              := /usr/bin/git (2.6.2)
configure: CFG_MD5              :=  
configure: CFG_MD5SUM           := /usr/bin/md5sum (8.24)
configure: CFG_HASH_COMMAND     := /usr/bin/md5sum | cut -c 1-8 
configure: CFG_CLANG            :=  
configure: CFG_CCACHE           := /usr/bin/ccache (3.2.4)
configure: CFG_GCC              := /usr/bin/gcc (5.2.0)
configure: CFG_LD               := /usr/bin/ld (2.25.1)
configure: CFG_VALGRIND         :=  
configure: CFG_PERF             :=  
configure: CFG_ISCC             :=  
configure: CFG_ANTLR4           :=  
configure: CFG_GRUN             :=  
configure: CFG_FLEX             := /usr/bin/flex (2.5.39)
configure: CFG_BISON            := /usr/bin/bison (3.0.4)
configure: CFG_GDB              := /usr/bin/gdb (7.10)
configure: CFG_LLDB             :=  
configure: CFG_DISABLE_VALGRIND_RPASS := 1 
configure: CFG_GDB_VERSION      := GNU gdb (Gentoo 7.10 vanilla) 7.10 
configure: 
configure: looking for target specific programs
configure: 
configure: CFG_ADB              :=  
configure: 
configure: using custom LLVM at /usr
configure: 
configure: found ok version of LLVM: 3.8.0svn
configure: CFG_CC               := ccache gcc 
configure: CFG_STDCPP_NAME      := stdc++ 
configure: 
configure: making directories
configure: 
configure: mkdir -p doc
configure: mkdir -p doc/std
configure: mkdir -p doc/extra
configure: mkdir -p dl
configure: mkdir -p tmp
configure: mkdir -p dist
configure: mkdir -p x86_64-unknown-linux-gnu/llvm
configure: mkdir -p x86_64-unknown-linux-gnu/rustllvm
configure: mkdir -p x86_64-unknown-linux-gnu/rt
configure: mkdir -p x86_64-unknown-linux-gnu/rt/stage0
configure: mkdir -p x86_64-unknown-linux-gnu/rt/jemalloc
configure: mkdir -p x86_64-unknown-linux-gnu/rt/compiler-rt
configure: mkdir -p x86_64-unknown-linux-gnu/rt/stage0/isaac
configure: mkdir -p x86_64-unknown-linux-gnu/rt/stage0/sync
configure: mkdir -p x86_64-unknown-linux-gnu/rt/stage0/test
configure: mkdir -p x86_64-unknown-linux-gnu/rt/stage0/arch/x86_64
configure: mkdir -p x86_64-unknown-linux-gnu/rt/stage1
configure: mkdir -p x86_64-unknown-linux-gnu/rt/stage1/isaac
configure: mkdir -p x86_64-unknown-linux-gnu/rt/stage1/sync
configure: mkdir -p x86_64-unknown-linux-gnu/rt/stage1/test
configure: mkdir -p x86_64-unknown-linux-gnu/rt/stage1/arch/x86_64
configure: mkdir -p x86_64-unknown-linux-gnu/rt/stage2
configure: mkdir -p x86_64-unknown-linux-gnu/rt/stage2/isaac
configure: mkdir -p x86_64-unknown-linux-gnu/rt/stage2/sync
configure: mkdir -p x86_64-unknown-linux-gnu/rt/stage2/test
configure: mkdir -p x86_64-unknown-linux-gnu/rt/stage2/arch/x86_64
configure: mkdir -p x86_64-unknown-linux-gnu/rt/stage3
configure: mkdir -p x86_64-unknown-linux-gnu/rt/stage3/isaac
configure: mkdir -p x86_64-unknown-linux-gnu/rt/stage3/sync
configure: mkdir -p x86_64-unknown-linux-gnu/rt/stage3/test
configure: mkdir -p x86_64-unknown-linux-gnu/rt/stage3/arch/x86_64
configure: mkdir -p x86_64-unknown-linux-gnu/stage0/lib
configure: mkdir -p x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/bin
configure: mkdir -p x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib
configure: mkdir -p x86_64-unknown-linux-gnu/stage0/bin
configure: mkdir -p x86_64-unknown-linux-gnu/stage0/test
configure: mkdir -p x86_64-unknown-linux-gnu/stage1/bin
configure: mkdir -p x86_64-unknown-linux-gnu/stage1/lib
configure: mkdir -p x86_64-unknown-linux-gnu/stage1/test
configure: mkdir -p x86_64-unknown-linux-gnu/stage1/lib/rustlib/x86_64-unknown-linux-gnu/bin
configure: mkdir -p x86_64-unknown-linux-gnu/stage1/lib/rustlib/x86_64-unknown-linux-gnu/lib
configure: mkdir -p x86_64-unknown-linux-gnu/stage2/bin
configure: mkdir -p x86_64-unknown-linux-gnu/stage2/lib
configure: mkdir -p x86_64-unknown-linux-gnu/stage2/test
configure: mkdir -p x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/bin
configure: mkdir -p x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib
configure: mkdir -p x86_64-unknown-linux-gnu/stage3/bin
configure: mkdir -p x86_64-unknown-linux-gnu/stage3/lib
configure: mkdir -p x86_64-unknown-linux-gnu/stage3/test
configure: mkdir -p x86_64-unknown-linux-gnu/stage3/lib/rustlib/x86_64-unknown-linux-gnu/bin
configure: mkdir -p x86_64-unknown-linux-gnu/stage3/lib/rustlib/x86_64-unknown-linux-gnu/lib
configure: mkdir -p x86_64-unknown-linux-gnu/test/run-pass
configure: mkdir -p x86_64-unknown-linux-gnu/test/run-pass-valgrind
configure: mkdir -p x86_64-unknown-linux-gnu/test/run-pass-fulldeps
configure: mkdir -p x86_64-unknown-linux-gnu/test/run-fail
configure: mkdir -p x86_64-unknown-linux-gnu/test/run-fail-fulldeps
configure: mkdir -p x86_64-unknown-linux-gnu/test/compile-fail
configure: mkdir -p x86_64-unknown-linux-gnu/test/parse-fail
configure: mkdir -p x86_64-unknown-linux-gnu/test/compile-fail-fulldeps
configure: mkdir -p x86_64-unknown-linux-gnu/test/bench
configure: mkdir -p x86_64-unknown-linux-gnu/test/perf
configure: mkdir -p x86_64-unknown-linux-gnu/test/pretty
configure: mkdir -p x86_64-unknown-linux-gnu/test/debuginfo-gdb
configure: mkdir -p x86_64-unknown-linux-gnu/test/debuginfo-lldb
configure: mkdir -p x86_64-unknown-linux-gnu/test/codegen
configure: mkdir -p x86_64-unknown-linux-gnu/test/rustdoc
configure: 
configure: configuring submodules
configure: 
configure: git: submodule sync
Synchronizing submodule url for 'src/compiler-rt'
Synchronizing submodule url for 'src/jemalloc'
Synchronizing submodule url for 'src/rt/hoedown'
Synchronizing submodule url for 'src/rust-installer'
configure: git: submodule init
Submodule 'src/llvm' (https://github.com/rust-lang/llvm.git) registered for path 'src/llvm'
configure: git: submodule deinit src/llvm
Cleared directory 'src/llvm'
Submodule 'src/llvm' (https://github.com/rust-lang/llvm.git) unregistered for path 'src/llvm'
configure: git: submodule update
configure: git: submodule foreach sync
Entering 'src/compiler-rt'
Entering 'src/jemalloc'
Entering 'src/rt/hoedown'
Entering 'src/rust-installer'
configure: git: submodule foreach update
configure: git: submodule status
 58ab642c30d9f97735d5745b5d01781ee199c6ae src/compiler-rt (remotes/origin/rust-2015-01-08-do-not-delete)
 e24a1a025a1f214e40eedafe3b9c7b1d69937922 src/jemalloc (3.6.0-158-ge24a1a0)
-cde1ed3196ba9b39bcf028e06e08a8722113a5cb src/llvm
 4638c60dedfa581fd5fa7c6420d8f32274c9ca0b src/rt/hoedown (2.0.0-209-g4638c60)
 c37d3747da75c280237dc2d6b925078e69555499 src/rust-installer (remotes/origin/next-27-gc37d374)
-aed73472416064642911af790b25d57c9390b6c7 src/rust-installer/test/rust-installer-v1
-e577c97b494be2815b215e3042207d6d4b7c5516 src/rust-installer/test/rust-installer-v2
configure: git: submodule clobber
Entering 'src/compiler-rt'
Entering 'src/jemalloc'
Removing VERSION
Entering 'src/rt/hoedown'
Entering 'src/rust-installer'
Entering 'src/compiler-rt'
Entering 'src/jemalloc'
Entering 'src/rt/hoedown'
Entering 'src/rust-installer'
configure: 
configure: looking at LLVM
configure: 
configure: not reconfiguring LLVM, external LLVM root
configure: found program '/usr/bin/FileCheck'
configure: 
configure: writing configuration
configure: 
configure: CFG_SRC_DIR          := /home/zazdxscf/build/1nonpkgs/rust/ ...
configure: CFG_SRC_DIR_RELATIVE := ./ 
configure: CFG_BUILD_DIR        := /home/zazdxscf/build/1nonpkgs/rust/ ...
configure: CFG_OSTYPE           := unknown-linux-gnu 
configure: CFG_CPUTYPE          := x86_64 
configure: CFG_CONFIGURE_ARGS   := --prefix=/home/zazdxscf/build/1nonp ...
configure: CFG_PREFIX           := /home/zazdxscf/build/1nonpkgs/rust/ ...
configure: CFG_HOST             := x86_64-unknown-linux-gnu 
configure: CFG_TARGET           := x86_64-unknown-linux-gnu 
configure: CFG_LIBDIR_RELATIVE  := lib 
configure: CFG_DISABLE_MANAGE_SUBMODULES :=  
configure: CFG_AARCH64_LINUX_ANDROID_NDK :=  
configure: CFG_ARM_LINUX_ANDROIDEABI_NDK :=  
configure: CFG_I686_LINUX_ANDROID_NDK :=  
configure: CFG_MANDIR           := /home/zazdxscf/build/1nonpkgs/rust/ ...
configure: CFG_CCACHE_BASEDIR   := /home/zazdxscf/build/1nonpkgs/rust/ ...
configure: CFG_LLVM_SRC_DIR     := /home/zazdxscf/build/1nonpkgs/rust/ ...
configure: CFG_LLVM_BUILD_DIR_x86_64_unknown_linux_gnu :=  
configure: CFG_LLVM_INST_DIR_x86_64_unknown_linux_gnu := /usr 
configure: 
configure: cp -f /home/zazdxscf/build/1nonpkgs/rust/rust/Makefile.in ./Makefile
configure: mv -f config.tmp config.mk
configure: 
configure: complete
configure: 
configure: run `make help`
configure: 

real    0m14.570s
user    0m2.663s
sys 0m9.207s
$ time RUST_LOG=rustc::metadata::loader make -j4 -- VERBOSE=1 TIME_PASSES=1 TIME_LLVM_PASSES=1 'RUSTFLAGS=--verbose -Z print-link-args -Z print-llvm-passes -C debug-assertions=y' RUST_BACKTRACE=1
cfg: version 1.5.0-dev (04e497c00 2015-10-24)
cfg: build triple x86_64-unknown-linux-gnu
cfg: host triples x86_64-unknown-linux-gnu
cfg: target triples x86_64-unknown-linux-gnu
cfg: enabling debug assertions (CFG_ENABLE_DEBUG_ASSERTIONS)
cfg: enabling debuginfo (CFG_ENABLE_DEBUGINFO)
cfg: host for x86_64-unknown-linux-gnu is x86_64
cfg: os for x86_64-unknown-linux-gnu is unknown-linux-gnu
cfg: good valgrind for x86_64-unknown-linux-gnu is 1
cfg: using CC=ccache gcc (CFG_CC)
cfg: disabling valgrind run-pass tests
/usr/bin/python2 /home/zazdxscf/build/1nonpkgs/rust/rust/src/etc/get-snapshot.py x86_64-unknown-linux-gnu 
...
 Pass Configuration
   0.5533 (100.0%)   0.0533 (100.0%)   0.6067 (100.0%)   0.9971 (100.0%)  Total

time: 1.441; rss: 84MB  LLVM passes
"cc" "-Wl,--as-needed" "-m64" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/rustc_llvm-bb943c5a.0.o" "-o" "x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_llvm-bb943c5a.so" "x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/rustc_llvm-bb943c5a.metadata.o" "-Wl,-O1" "-nodefaultlibs" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-l" "std-bb943c5a" "-L" "x86_64-unknown-linux-gnu/rt" "-L" "/usr/lib64" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/.rust/lib/x86_64-unknown-linux-gnu" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/lib/x86_64-unknown-linux-gnu" "-Wl,-Bstatic" "-Wl,--whole-archive" "-l" "rustllvm" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMInterpreter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMCJIT" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMExecutionEngine" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMRuntimeDyld" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMAsmParser" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMLinker" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMipo" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMVectorize" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMProfileData" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Disassembler" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86AsmParser" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86CodeGen" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMSelectionDAG" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMAsmPrinter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMCodeGen" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMTarget" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMScalarOpts" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMInstCombine" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMInstrumentation" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMTransformUtils" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMBitWriter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMAnalysis" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Desc" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMObject" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMCParser" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMBitReader" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMCDisassembler" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Info" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86AsmPrinter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMC" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Utils" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMCore" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMSupport" "-Wl,--no-whole-archive" "-Wl,-Bdynamic" "-l" "rt" "-l" "dl" "-l" "curses" "-l" "pthread" "-l" "z" "-l" "m" "-l" "stdc++" "-l" "dl" "-l" "pthread" "-l" "gcc_s" "-l" "rt" "-l" "c" "-l" "m" "-shared" "-Wl,-rpath,$ORIGIN/" "-Wl,-rpath,/usr/local/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-l" "compiler-rt"
MATCHES=""; if [ -n "$MATCHES" ] ; then echo "warning: removing previous" \'libterm-*.so\' "libraries:" $MATCHES; rm $MATCHES ; fi
MATCHES=""; if [ -n "$MATCHES" ] ; then echo "warning: removing previous" \'libterm-*.rlib\' "libraries:" $MATCHES; rm $MATCHES ; fi
CFG_LLVM_LINKAGE_FILE=/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/rt/llvmdeps.rs LD_LIBRARY_PATH=/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/stage0/lib:$LD_LIBRARY_PATH   x86_64-unknown-linux-gnu/stage0/bin/rustc --cfg stage0 --verbose -Z print-link-args -Z print-llvm-passes -C debug-assertions=y -O --cfg rtopt -C debug-assertions=on -Z time-passes -Z time-llvm-passes -C rpath -C prefer-dynamic -C no-stack-check --target=x86_64-unknown-linux-gnu  -W warnings -L "x86_64-unknown-linux-gnu/rt" -L native="/usr/lib64"     --out-dir x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib -C extra-filename=-bb943c5a src/libterm/lib.rs
  time: 0.157; rss: 84MB    running linker
error: linking with `cc` failed: exit code: 1
note: "cc" "-Wl,--as-needed" "-m64" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/rustc_llvm-bb943c5a.0.o" "-o" "x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_llvm-bb943c5a.so" "x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/rustc_llvm-bb943c5a.metadata.o" "-Wl,-O1" "-nodefaultlibs" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-l" "std-bb943c5a" "-L" "x86_64-unknown-linux-gnu/rt" "-L" "/usr/lib64" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/.rust/lib/x86_64-unknown-linux-gnu" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/lib/x86_64-unknown-linux-gnu" "-Wl,-Bstatic" "-Wl,--whole-archive" "-l" "rustllvm" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMInterpreter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMCJIT" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMExecutionEngine" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMRuntimeDyld" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMAsmParser" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMLinker" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMipo" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMVectorize" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMProfileData" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Disassembler" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86AsmParser" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86CodeGen" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMSelectionDAG" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMAsmPrinter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMCodeGen" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMTarget" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMScalarOpts" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMInstCombine" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMInstrumentation" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMTransformUtils" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMBitWriter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMAnalysis" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Desc" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMObject" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMCParser" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMBitReader" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMCDisassembler" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Info" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86AsmPrinter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMC" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Utils" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMCore" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMSupport" "-Wl,--no-whole-archive" "-Wl,-Bdynamic" "-l" "rt" "-l" "dl" "-l" "curses" "-l" "pthread" "-l" "z" "-l" "m" "-l" "stdc++" "-l" "dl" "-l" "pthread" "-l" "gcc_s" "-l" "rt" "-l" "c" "-l" "m" "-shared" "-Wl,-rpath,$ORIGIN/" "-Wl,-rpath,/usr/local/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-l" "compiler-rt"
note: /usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMInterpreter
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMMCJIT
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMExecutionEngine
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMRuntimeDyld
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMAsmParser
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMLinker
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMipo
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMVectorize
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMProfileData
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86Disassembler
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86AsmParser
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86CodeGen
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMSelectionDAG
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMAsmPrinter
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMCodeGen
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMTarget
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMScalarOpts
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMInstCombine
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMInstrumentation
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMTransformUtils
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMBitWriter
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMAnalysis
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86Desc
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMObject
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMMCParser
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMBitReader
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMMCDisassembler
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86Info
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86AsmPrinter
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMMC
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86Utils
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMCore
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMSupport
collect2: error: ld returned 1 exit status

error: aborting due to previous error
time: 0.038; rss: 25MB  parsing
MATCHES=""; if [ -n "$MATCHES" ] ; then echo "warning: removing previous" \'libserialize-*.so\' "libraries:" $MATCHES; rm $MATCHES ; fi
time: 0.024; rss: 25MB  configuration 1
time: 0.000; rss: 25MB  recursion limit
...
real    3m3.496s
user    3m30.417s
sys 0m32.523s
//something failed after 3 mins(I tried to paste above), rerunning with -j1 to get contigous output
$ time RUST_LOG=rustc::metadata::loader make -j1 -- VERBOSE=1 TIME_PASSES=1 TIME_LLVM_PASSES=1 'RUSTFLAGS=--verbose -Z print-link-args -Z print-llvm-passes -C debug-assertions=y' RUST_BACKTRACE=1
cfg: version 1.5.0-dev (04e497c00 2015-10-24)
cfg: build triple x86_64-unknown-linux-gnu
cfg: host triples x86_64-unknown-linux-gnu
cfg: target triples x86_64-unknown-linux-gnu
cfg: enabling debug assertions (CFG_ENABLE_DEBUG_ASSERTIONS)
cfg: enabling debuginfo (CFG_ENABLE_DEBUGINFO)
cfg: host for x86_64-unknown-linux-gnu is x86_64
cfg: os for x86_64-unknown-linux-gnu is unknown-linux-gnu
cfg: good valgrind for x86_64-unknown-linux-gnu is 1
cfg: using CC=ccache gcc (CFG_CC)
cfg: disabling valgrind run-pass tests
...
"cc" "-Wl,--as-needed" "-m64" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/rustc_llvm-bb943c5a.0.o" "-o" "x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_llvm-bb943c5a.so" "x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/rustc_llvm-bb943c5a.metadata.o" "-Wl,-O1" "-nodefaultlibs" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-l" "std-bb943c5a" "-L" "x86_64-unknown-linux-gnu/rt" "-L" "/usr/lib64" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/.rust/lib/x86_64-unknown-linux-gnu" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/lib/x86_64-unknown-linux-gnu" "-Wl,-Bstatic" "-Wl,--whole-archive" "-l" "rustllvm" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMInterpreter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMCJIT" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMExecutionEngine" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMRuntimeDyld" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMAsmParser" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMLinker" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMipo" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMVectorize" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMProfileData" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Disassembler" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86AsmParser" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86CodeGen" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMSelectionDAG" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMAsmPrinter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMCodeGen" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMTarget" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMScalarOpts" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMInstCombine" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMInstrumentation" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMTransformUtils" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMBitWriter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMAnalysis" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Desc" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMObject" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMCParser" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMBitReader" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMCDisassembler" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Info" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86AsmPrinter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMC" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Utils" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMCore" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMSupport" "-Wl,--no-whole-archive" "-Wl,-Bdynamic" "-l" "rt" "-l" "dl" "-l" "curses" "-l" "pthread" "-l" "z" "-l" "m" "-l" "stdc++" "-l" "dl" "-l" "pthread" "-l" "gcc_s" "-l" "rt" "-l" "c" "-l" "m" "-shared" "-Wl,-rpath,$ORIGIN/" "-Wl,-rpath,/usr/local/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-l" "compiler-rt"
  time: 0.106; rss: 84MB    running linker
error: linking with `cc` failed: exit code: 1
note: "cc" "-Wl,--as-needed" "-m64" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/rustc_llvm-bb943c5a.0.o" "-o" "x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_llvm-bb943c5a.so" "x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/rustc_llvm-bb943c5a.metadata.o" "-Wl,-O1" "-nodefaultlibs" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-l" "std-bb943c5a" "-L" "x86_64-unknown-linux-gnu/rt" "-L" "/usr/lib64" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/.rust/lib/x86_64-unknown-linux-gnu" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/lib/x86_64-unknown-linux-gnu" "-Wl,-Bstatic" "-Wl,--whole-archive" "-l" "rustllvm" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMInterpreter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMCJIT" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMExecutionEngine" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMRuntimeDyld" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMAsmParser" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMLinker" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMipo" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMVectorize" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMProfileData" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Disassembler" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86AsmParser" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86CodeGen" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMSelectionDAG" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMAsmPrinter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMCodeGen" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMTarget" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMScalarOpts" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMInstCombine" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMInstrumentation" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMTransformUtils" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMBitWriter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMAnalysis" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Desc" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMObject" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMCParser" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMBitReader" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMCDisassembler" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Info" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86AsmPrinter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMC" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Utils" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMCore" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMSupport" "-Wl,--no-whole-archive" "-Wl,-Bdynamic" "-l" "rt" "-l" "dl" "-l" "curses" "-l" "pthread" "-l" "z" "-l" "m" "-l" "stdc++" "-l" "dl" "-l" "pthread" "-l" "gcc_s" "-l" "rt" "-l" "c" "-l" "m" "-shared" "-Wl,-rpath,$ORIGIN/" "-Wl,-rpath,/usr/local/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-l" "compiler-rt"
note: /usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMInterpreter
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMMCJIT
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMExecutionEngine
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMRuntimeDyld
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMAsmParser
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMLinker
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMipo
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMVectorize
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMProfileData
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86Disassembler
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86AsmParser
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86CodeGen
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMSelectionDAG
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMAsmPrinter
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMCodeGen
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMTarget
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMScalarOpts
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMInstCombine
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMInstrumentation
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMTransformUtils
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMBitWriter
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMAnalysis
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86Desc
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMObject
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMMCParser
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMBitReader
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMMCDisassembler
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86Info
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86AsmPrinter
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMMC
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86Utils
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMCore
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMSupport
collect2: error: ld returned 1 exit status

error: aborting due to previous error
/home/zazdxscf/build/1nonpkgs/rust/rust/mk/target.mk:164: recipe for target 'x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/stamp.rustc_llvm' failed
make: *** [x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/stamp.rustc_llvm] Error 101

real    6m30.758s
user    6m12.400s
sys 0m14.680s

I'm going to reverse this, just in case:

$ patch -R -p1 -i ../llvm_only_x86_64.patch 
patching file configure
Hunk #1 succeeded at 1359 (offset 1 line).
Hunk #2 succeeded at 1586 (offset 1 line).
patching file mk/main.mk
patching file mk/llvm.mk
patching file src/librustc_llvm/lib.rs
patching file src/librustc_trans/back/write.rs

//actually this reruns configure when I do make, so I might as well do it from the beginning!

$ llc --version
LLVM (http://llvm.org/):
  LLVM version 3.8.0svn
  Optimized build.
  Default target: x86_64-pc-linux-gnu
  Host CPU: (unknown)

  Registered Targets:
    amdgcn - AMD GCN GPUs
    cpp    - C++ backend
    r600   - AMD GPUs HD2XXX-HD6XXX
    x86    - 32-bit X86: Pentium-Pro and above
    x86-64 - 64-bit X86: EM64T and AMD64

$ cd /home/zazdxscf/build/1nonpkgs/rust/
//already have: $ wget https://patch-diff.githubusercontent.com/raw/rust-lang/rust/pull/29272.patch
$ cd rust/
$ git clean -dfx
...
$ git reset --hard
$ git pull
$ patch -Np1 -i ../29272.patch
$ ./configure --prefix=/home/zazdxscf/build/1nonpkgs/rust/usr/local --enable-rpath --enable-manage-submodules --disable-clang --enable-ccache --enable-dist-host-only --disable-valgrind --disable-helgrind --disable-valgrind-rpass --python=/usr/bin/python2 --enable-optimize --enable-optimize-cxx --enable-optimize-llvm --enable-debug --enable-debuginfo --enable-debug-assertions --enable-debuginfo-tests --enable-llvm-assertions --enable-debug-jemalloc --disable-local-rust --llvm-root=/usr --release-channel=dev --host=x86_64-unknown-linux-gnu --target=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu
...
$ time RUST_LOG=rustc::metadata::loader make -j1 -- VERBOSE=1 TIME_PASSES=1 TIME_LLVM_PASSES=1 'RUSTFLAGS=--verbose -Z print-link-args -Z print-llvm-passes -C debug-assertions=y' RUST_BACKTRACE=1
cfg: version 1.5.0-dev (04e497c00 2015-10-24)
cfg: build triple x86_64-unknown-linux-gnu
cfg: host triples x86_64-unknown-linux-gnu
cfg: target triples x86_64-unknown-linux-gnu
cfg: enabling debug assertions (CFG_ENABLE_DEBUG_ASSERTIONS)
cfg: enabling debuginfo (CFG_ENABLE_DEBUGINFO)
cfg: host for x86_64-unknown-linux-gnu is x86_64
cfg: os for x86_64-unknown-linux-gnu is unknown-linux-gnu
cfg: good valgrind for x86_64-unknown-linux-gnu is 1
cfg: using CC=ccache gcc (CFG_CC)
cfg: disabling valgrind run-pass tests
/usr/bin/python2 /home/zazdxscf/build/1nonpkgs/rust/rust/src/etc/get-snapshot.py x86_64-unknown-linux-gnu 
determined most recent snapshot: rust-stage0-2015-08-11-1af31d4-linux-x86_64-7df8ba9dec63ec77b857066109d4b6250f3d222f.tar.bz2
...
g++  -O2  -Wall -Werror -g -fPIC -m64 -fno-rtti -c -o  x86_64-unknown-linux-gnu/rustllvm/ArchiveWrapper.o  -I//usr//include -O2 -pipe -march=native -ggdb -fvar-tracking-assignments -fno-omit-frame-pointer -ftrack-macro-expansion=2 -fstack-protector-all -fPIC  -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wno-maybe-uninitialized -Wnon-virtual-dtor -Wno-comment -Werror=date-time -std=c++11 -ffunction-sections -fdata-sections    -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS   -I /usr/include -I /home/zazdxscf/build/1nonpkgs/rust/rust/src/rustllvm/include /home/zazdxscf/build/1nonpkgs/rust/rust/src/rustllvm/ArchiveWrapper.cpp
ar crus x86_64-unknown-linux-gnu/rt/librustllvm.a x86_64-unknown-linux-gnu/rustllvm/ExecutionEngineWrapper.o x86_64-unknown-linux-gnu/rustllvm/RustWrapper.o x86_64-unknown-linux-gnu/rustllvm/PassWrapper.o x86_64-unknown-linux-gnu/rustllvm/ArchiveWrapper.o
/usr/bin/python2 "/home/zazdxscf/build/1nonpkgs/rust/rust/src/etc/mklldeps.py" "/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/rt/llvmdeps.rs" "x86 arm aarch64 mips powerpc ipo bitreader bitwriter linker asmparser mcjit interpreter instrumentation" "" /usr/bin/llvm-config "stdc++"
failed to run llvm_config: args = `['/usr/bin/llvm-config', '--libs', '--system-libs', 'x86', 'arm', 'aarch64', 'mips', 'powerpc', 'ipo', 'bitreader', 'bitwriter', 'linker', 'asmparser', 'mcjit', 'interpreter', 'instrumentation']`
llvm-config: unknown component name: arm

/home/zazdxscf/build/1nonpkgs/rust/rust/mk/llvm.mk:89: recipe for target '/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/rt/llvmdeps.rs' failed
make: *** [/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/rt/llvmdeps.rs] Error 1

real    10m35.573s
user    9m29.297s
sys 0m45.763s

I forgot why this is happening... but this is why I needed my llvm_only_x86_64.patch to avoid this!
EDIT2: Ah yes, it is because llvm was compiled for host-only (so in gentoo the USE=-multitarget is the default, which means host-only, so no arm, powerpc support unless I recompile with that USE flag turned on)

The latest commit of my installed system llvm is llvm-mirror/llvm@3f3f65a (it doesn't deal with svn on gentoo, which is what I'm using)

Sorry, I did not understand #29272 (comment)
Do I have to revert both or only the first of those patches, before testing rust? (currently reverted neither)
(I forgot how to look at a certain llvm svn revision(on the web), without actually having to clone the entire svn repo locally, in order to then find the llvm commit in the github mirror https://github.com/llvm-mirror/llvm by searching for it by commit description and then getting it as patch by appending .patch to the url, to then use to reverse it from the llvm git that comes with gentoo before recompiling it) EDIT:(I just git log my local gentoo llvm git repo at /usr/portage/distfiles/git3-src/llvm.git and search for revision number)

Oh wait, is 247352 this one? llvm-mirror/llvm@4d0f917

EDIT: 247309 is this: llvm-mirror/llvm@5d8f37f

@ghost
Copy link

ghost commented Oct 24, 2015

I try a simple test (least ./configure args) -- same linking error.

My system's llvm commit is at: llvm-mirror/llvm@3f3f65a

$ llc --version
LLVM (http://llvm.org/):
  LLVM version 3.8.0svn
  Optimized build.
  Default target: x86_64-pc-linux-gnu
  Host CPU: (unknown)

  Registered Targets:
    amdgcn - AMD GCN GPUs
    cpp    - C++ backend
    r600   - AMD GPUs HD2XXX-HD6XXX
    x86    - 32-bit X86: Pentium-Pro and above
    x86-64 - 64-bit X86: EM64T and AMD64
$ cd /home/zazdxscf/build/1nonpkgs/rust/
//already have: $ wget https://patch-diff.githubusercontent.com/raw/rust-lang/rust/pull/29272.patch
$ cd rust/
$ git clean -dfx
$ git reset --hard
$ git pull
$ patch -Np1 -i ../llvm_only_x86_64.patch
$ patch -Np1 -i ../29272.patch
$ ./configure --llvm-root=/usr --enable-ccache --host=x86_64-unknown-linux-gnu --target=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu
...
$ time RUST_LOG=rustc::metadata::loader make -j1 -- VERBOSE=1 TIME_PASSES=1 TIME_LLVM_PASSES=1 'RUSTFLAGS=--verbose -Z print-link-args -Z print-llvm-passes' RUST_BACKTRACE=1
...
...
"cc" "-Wl,--as-needed" "-m64" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/rustc_llvm-bb943c5a.0.o" "-o" "x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_llvm-bb943c5a.so" "x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/rustc_llvm-bb943c5a.metadata.o" "-Wl,-O1" "-nodefaultlibs" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-l" "std-bb943c5a" "-L" "x86_64-unknown-linux-gnu/rt" "-L" "/usr/lib64" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/.rust/lib/x86_64-unknown-linux-gnu" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/lib/x86_64-unknown-linux-gnu" "-Wl,-Bstatic" "-Wl,--whole-archive" "-l" "rustllvm" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMInterpreter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMCJIT" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMExecutionEngine" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMRuntimeDyld" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMAsmParser" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMLinker" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMipo" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMVectorize" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMProfileData" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Disassembler" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86AsmParser" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86CodeGen" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMSelectionDAG" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMAsmPrinter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMCodeGen" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMTarget" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMScalarOpts" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMInstCombine" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMInstrumentation" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMTransformUtils" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMBitWriter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMAnalysis" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Desc" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMObject" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMCParser" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMBitReader" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMCDisassembler" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Info" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86AsmPrinter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMC" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Utils" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMCore" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMSupport" "-Wl,--no-whole-archive" "-Wl,-Bdynamic" "-l" "rt" "-l" "dl" "-l" "curses" "-l" "pthread" "-l" "z" "-l" "m" "-l" "stdc++" "-l" "dl" "-l" "pthread" "-l" "gcc_s" "-l" "rt" "-l" "c" "-l" "m" "-shared" "-l" "compiler-rt"
  time: 0.154; rss: 83MB    running linker
error: linking with `cc` failed: exit code: 1
note: "cc" "-Wl,--as-needed" "-m64" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/rustc_llvm-bb943c5a.0.o" "-o" "x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_llvm-bb943c5a.so" "x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/rustc_llvm-bb943c5a.metadata.o" "-Wl,-O1" "-nodefaultlibs" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-l" "std-bb943c5a" "-L" "x86_64-unknown-linux-gnu/rt" "-L" "/usr/lib64" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/.rust/lib/x86_64-unknown-linux-gnu" "-L" "/home/zazdxscf/build/1nonpkgs/rust/rust/lib/x86_64-unknown-linux-gnu" "-Wl,-Bstatic" "-Wl,--whole-archive" "-l" "rustllvm" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMInterpreter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMCJIT" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMExecutionEngine" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMRuntimeDyld" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMAsmParser" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMLinker" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMipo" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMVectorize" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMProfileData" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Disassembler" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86AsmParser" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86CodeGen" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMSelectionDAG" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMAsmPrinter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMCodeGen" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMTarget" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMScalarOpts" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMInstCombine" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMInstrumentation" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMTransformUtils" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMBitWriter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMAnalysis" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Desc" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMObject" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMCParser" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMBitReader" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMCDisassembler" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Info" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86AsmPrinter" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMMC" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMX86Utils" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMCore" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "-l" "LLVMSupport" "-Wl,--no-whole-archive" "-Wl,-Bdynamic" "-l" "rt" "-l" "dl" "-l" "curses" "-l" "pthread" "-l" "z" "-l" "m" "-l" "stdc++" "-l" "dl" "-l" "pthread" "-l" "gcc_s" "-l" "rt" "-l" "c" "-l" "m" "-shared" "-l" "compiler-rt"
note: /usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMInterpreter
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMMCJIT
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMExecutionEngine
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMRuntimeDyld
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMAsmParser
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMLinker
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMipo
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMVectorize
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMProfileData
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86Disassembler
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86AsmParser
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86CodeGen
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMSelectionDAG
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMAsmPrinter
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMCodeGen
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMTarget
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMScalarOpts
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMInstCombine
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMInstrumentation
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMTransformUtils
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMBitWriter
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMAnalysis
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86Desc
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMObject
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMMCParser
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMBitReader
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMMCDisassembler
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86Info
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86AsmPrinter
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMMC
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86Utils
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMCore
/usr/lib/gcc/x86_64-pc-linux-gnu/5.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMSupport
collect2: error: ld returned 1 exit status

error: aborting due to previous error
/home/zazdxscf/build/1nonpkgs/rust/rust/mk/target.mk:164: recipe for target 'x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/stamp.rustc_llvm' failed
make: *** [x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/stamp.rustc_llvm] Error 101

real    11m48.389s
user    10m31.627s
sys 1m7.457s

@alexcrichton
Copy link
Member

Thanks @sanxiyn! I've actually also been trying to upgrade LLVM to see if we can start using the new SEH instructions support for MSVC 32-bit, and the reason we can't bootstrap is actually quite familiar as the fix is the same as a previous commit basically. For now though seems fine to upgrade our C++ support!

@bors: r+ b285f92

@wthrowe
Copy link
Contributor

wthrowe commented Oct 24, 2015

@zazdxscf The linking failures are the issue discussed in #28327 and at https://internals.rust-lang.org/t/meaning-of-link-kinds/2686.

Edit: And the 3.7.0 compile failure is #28830.

@ghost
Copy link

ghost commented Oct 25, 2015

Thanks so much @wthrowe !

bors added a commit that referenced this pull request Oct 25, 2015
@bors
Copy link
Collaborator

bors commented Oct 25, 2015

⌛ Testing commit b285f92 with merge 92dd81a...

@bors bors merged commit b285f92 into rust-lang:master Oct 25, 2015
@sanxiyn sanxiyn deleted the llvm-update branch October 26, 2015 05:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants