- to keep RUST_BACKTRACE=1 enabled during build, properly separate
MAKE_ENV and TEST_ENV, by introducing a TEST_BIN variable used to
launch rustbuild with TEST_ENV (some tests are failing if RUST_BACKTRACE
is enabled).
- remove llvm-6 backported patches. this version of rustc has full
support of it. Hashes in library names will change when ports llvm
is upgraded, so PLIST will have to be regenerated.
- backport #49140 to be able to run "make test" without installing rustc
- regen amd64 bootstrap (i386 will come later and is marked BROKEN
anyway)
- add MAP_STACK flag for use with sigaltstack() (only used for signal
handler used for stack overflow detection)
- change a bit the way stack overflow is detected
Backports some patches for LLVM6 compatibility.
Note that this is likely to be BROKEN-i386 soonish, i'm giving it a last
chance locally but i never managed to build it here. That also means we
can say goodbye to firefox on i386.
used on i386. Set DPB_PROPERTIES=lonesome on i386 so that no new jobs
are sent to the worker building rust.
Fixes rust packaging on i386 within dpb.
same diff/ok sthen@
Even if it can be made to build eventually after multiple tries (we
occasionally got lucky with chromium before that was disabled, but it
was rare), this isn't sustainable.
In short: you'll need to use amd64 if you want to use one of the more
common web browsers on OpenBSD.
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@
clang/rust finds it when linking some rust code - somewhat needed by
stylo (the css engine written in rust within mozilla). Modeled after
what is done in lang/g77.
From semarie@, who discussed it with espie@.
between command lines inside target rules.
They were added intentionally due to some old habit acquired on
obscure make version which followed POSIX a bit too strictly (POSIX
stands that an empty or blank line *may* begin a new entry).
(Diff from me, commit message from semarie after discussion)
- 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@