Cf https://blog.rust-lang.org/2018/05/10/Rust-1.26.html
- add arm64 support, tested by phessler@
- respect MAKE_JOBS again
- use lld on i386 to support 128 bits integers
- cleanup old patches
- only build what we actually package
- 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