full changelog at https://blog.rust-lang.org/2017/11/22/Rust-1.22.html
port changes:
- switch to clang and libc++ (instead of egcc and estdc++)
- use devel/llvm instead of the embedded llvm version
- make i386 produce code for 'pentiumpro' instead of 'pentium4' so that
ppl can use ripgrep on pentium II's (yay!)
- use a hack (codegen-units=16) to fix memory pressure issues on i386.
Might not work forever.....
tested on i386 & amd64, went into an i386 bulk.
all the hard work from semarie@
- stop pruning optimizations coming from the environment (ie OpenBSD's
default -O2 -pipe) when building llvm - this resulted in a very slow
llvm, and in a veeery slow rust build, and an awfully slow rust
compiler. Yay. See https://github.com/rust-lang/rust/issues/39900
- only add cmake to BDEP when rustc is compiled with bundled llvm
- propagate verbose cmake flag to bundled llvm build
tested on i386 and amd64
- switch to rustbuild build system instead of configure (the world
definitely needed one more build system!)
- the build still takes +INF hours, this is being investigated
Note that rust will be a hard-requirement for gecko 54... sigh.
Tested by semarie@ and myself on i386 & amd64.
All the hard work and countless build hours by semarie@, thanks!
For release note see https://blog.rust-lang.org/2016/10/20/Rust-1.12.1.html
Please note, semarie rebuilded the bootstrap due to a bug in rustc: 1.12.0
wasn't able to rebuild 1.12.1 without intrusive patches in the build system
From semarie, ok ajacoutot
use the included libraries. If a system library was bumped, the
binary wouldn't run at the configure stage, even if it ran fine
during the build.
So patch the configure script to pass LD_LIBRARY_PATH as it is done
during the build. From Sebastien Marie.
- changes in Makefile to make it compute itself the RUST_HASH value
- use new configure option --disable-codegen-tests as with don't have FileCheck
(from llvm) binary. remove the patches in configure and src/compiletest/runtest.rs
- disable (for now) two news tests added with unix socket support, that doesn't
pass. I will investigate them later.
- disable run-pass/backtrace test. The support of libbacktrace has been remove
recently.
- std::env::current_exe() returns an error instead of returning wrong
pathname (no complete, but rust build scripts makes (bad)
assumptions that I couldn't patch for now).
- rustc / rustdoc to use CFG_PREFIX (configure --prefix value) when
std::env::current_exe() return an error
- remove the installed wrapper used to pass --sysroot argument to
rustc (the wrapper was used for workaround the problem differently
for rustc, but didn't resolv the problem for rustdoc as it doesn't
have --sysroot argument).
looks ok edd@
- remove now unneeded MAKE_ENV option to pass --sysroot argument to bootstrapper
- backport the latest changes for building rustc under openbsd
- switch the install from installing a stage3 rustc binary to installing a stage2 rustc binary (and all required libraries)
ok juanfra@
Rust is a systems programming language that runs blazingly fast, prevents
almost all crashes, and eliminates data races.
Featuring:
- zero-cost abstractions
- move semantics
- guaranteed memory safety
- threads without data races
- trait-based generics
- pattern matching
- type inference
- minimal runtime
- efficient C bindings
some packaging tweaks by me, ok/testing bcallah@ jca@