- 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!
DISTFILES/SUPDISTFILES handling so that non-supported archs dont error
out in dpb with cryptic messages such as 'Incomplete info for
rust/rustc-bootstrap-sparc64-.tar.gz'
Reminder: DISTFILES is supposed to contain the list of files needed *on
the current arch* while SUPDISTFILES should have the list *of all files
that port might use* (think about make makesum)
discussed with semarie@
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.
When using --enable-local-rebuild option, the configure script will
check the existence of rustc binary from the local-rust-root directory
(/usr/local by default). It is the binary the build process will copy in
stage0 directory.
With the diff, we explicity use the bootstrap directory for configuring.
Note that we still we manually copying all the bootstrap files in
post-configure, as the standard build system will *not* copy the
libraries in lib/ which could be required to run rustc binary
(libraries like libc.so used by bootstrapper).
(currently the only arch in ONLY_FOR_ARCHS), otherwise fetch failures are
reported when dpb on any other arch tries to fetch a nonexistent
rustc-bootstrap-<somearch>. ok semarie@ kili@
- 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@