Commit graph

211 commits

Author SHA1 Message Date
Piotr Kubaj
3a6db341d9 lang/rust: build with Clang on powerpc64 elfv2
It looks like the LLVM bug that made Rust fail to build is gone (or Rust just doesn't trigger it anymore). I tested that Rust itself and Firefox build.

Bump PORTREVISION because of dependency change.

PR:		247388
Approved by:	tobik (maintainer)
2020-06-18 20:36:08 +00:00
Tobias Kortkamp
75b6e79ccf lang/rust: Update to 1.44.1
- Properly fix powerpc64 builds [1]

Changes:	https://blog.rust-lang.org/2020/06/18/Rust.1.44.1.html
PR:		247307 [1]
Submitted by:	pkubaj [1]
Reviewed by:	mikael, pkubaj, tobik
With hat:	rust
Differential Revision:	https://reviews.freebsd.org/D25297
2020-06-18 14:13:38 +00:00
Tobias Kortkamp
d85c40b711 lang/rust-nightly: Update to 1.46.0.20200615
- Try building LLVM with Ninja
- Move post-configure to lang/rust

Changes:	826cb062a6...4fb54ed484
2020-06-15 22:26:47 +00:00
Piotr Kubaj
cf570d9f85 lang/rust: fix build on powerpc64 2020-06-07 23:37:30 +00:00
Tobias Kortkamp
a48473296f lang/rust: Update to 1.44.0
- Remove devel/cargo-tree since it is now integrated into cargo
- Add patch to fix build with LibreSSL 3.1.x and 3.2.0 [1]
- Force rebuild all consumers to catch regressions early

Changes:	https://blog.rust-lang.org/2020/06/04/Rust-1.44.0.html
PR:		246332 [1]
Tested by:	mikael, tobik
With hat:	rust
Differential Revision:	https://reviews.freebsd.org/D25099
2020-06-04 18:08:00 +00:00
Alan Somers
a91e9355f1 lang/rust-nightly: enable the Rust profiler
Enable the rust profiler on rust-nightly (as an unstable feature, it's not
allowed on the stable toolchain). This allows it to generate code coverage
reports.

https://doc.rust-lang.org/unstable-book/compiler-flags/profile.html
https://crates.io/crates/grcov

Reviewed by:	tobik
Approved by:	tobik (maintainer)
Differential Revision:	https://reviews.freebsd.org/D24765
2020-05-18 18:40:41 +00:00
Tobias Kortkamp
9cab4e16c4 lang/rust: Update to 1.43.1
- Remove upstreamed patches
- On ppc64 revert e82ec2315e5adb1c291c3702cd2ac1f46ecd0fcf to fix segfaults

Changes:	https://blog.rust-lang.org/2020/05/07/Rust.1.43.1.html
With hat:	rust
Differential Revision:	https://reviews.freebsd.org/D24734
2020-05-07 15:58:38 +00:00
Tobias Kortkamp
5b8c9933be lang/rust: Let the framework extract the bootstraps
It is possible for lang/python37 to be built in such a way that it
installs an unloadable lzma module which then causes Rust to fallback
to trying to fetch/extract the tar.gz bootstraps instead.

As a workaround and since it also simplifies some things, let the
ports framework extract the bootstraps and "install" them under
WRKDIR.  We point the build to them in config.toml.  This is similar
to how things are hooked up in lang/rust-bootstrap and Rust will
then not try to fetch and extract the bootstraps on its own.

PR:		243766
Reviewed by:	mikael
Differential Revision:	https://reviews.freebsd.org/D24582
2020-04-28 04:33:35 +00:00
Tobias Kortkamp
443b443a1f lang/rust: Go back to static.rust-lang.org 2020-04-23 15:34:59 +00:00
Tobias Kortkamp
5abe8902a5 lang/rust: Update to 1.43.0
- Add workaround to fix build when CC/CXX have "clang" in them [1]
- Respect AR to fix build with external toolchains [2]
- Force rebuild all consumers to catch regressions early

Changes:	https://blog.rust-lang.org/2020/04/23/Rust-1.43.0.html
PR:		238556 [1], 245583 [2]
Reported by:	Matthias Apitz <guru@unixarea.de> [1], Greg V <greg@unrelenting.technology> [2]
Tested by:	mikael, pkubaj, tobik
With hat:	rust
Differential Revision:	https://reviews.freebsd.org/D24521
2020-04-23 15:32:29 +00:00
Tobias Kortkamp
eefc22ffc3 devel/libgit2: Update to 1.0.0
Changes:	https://github.com/libgit2/libgit2/releases/tag/v1.0.0
ABI:		https://abi-laboratory.pro/tracker/timeline/libgit2
Approved by:	mfechner (maintainer)
Differential Revision:	https://reviews.freebsd.org/D24471
2020-04-19 03:55:22 +00:00
Tobias Kortkamp
95ebc1c533 lang/rust-nightly: Update to 1.44.0.20200319
Go back to system libgit2 now that it was updated to 0.99.0.

Changes:	96bb8b31c8...f509b26a77
2020-03-19 07:05:29 +00:00
Tobias Kortkamp
3ca7fb22b4 devel/libgit2: Update to 0.99.0
- Switch to the release tarballs libgit2 now publishes
- Drop CURL option since it is no longer used
- Use system libpcre instead of the bundled one
- Hook up tests
- Bump consumers for ABI changes

Changes:	https://github.com/libgit2/libgit2/releases/tag/v0.99.0
ABI:		https://abi-laboratory.pro/tracker/timeline/libgit2/
2020-03-19 05:47:59 +00:00
Tobias Kortkamp
8f23b03499 lang/rust-bootstrap: Unbreak powerpc64_elfv2 flavor after r528599
error: could not find native static library `stdc++`, perhaps an -L flag is missing?

error: aborting due to previous error

error: could not compile `rustc_llvm`.

PR:		244813
2020-03-17 22:32:20 +00:00
Piotr Kubaj
9f2b11f787 lang/rust: fix build on powerpc64 elfv2
After upgrade to LLVM 10, core in stage 1 fails to compile (no clear reason, rustc crashes):
pid 26828 (rustc), jid 0, uid 0: exited on signal 11 (core dumped)

Compilation with GCC works fine, so switch to GCC for the time being.

PR:		244813
Approved by:	mikael
2020-03-17 19:25:19 +00:00
Tobias Kortkamp
25b7de7213 lang/rust: Update to 1.42.0
- Force rebuild all consumers to catch regressions early

Changes:	https://blog.rust-lang.org/2020/03/12/Rust-1.42.html
Tested by:	mikael, tobik
With hat:	rust
Differential Revision:	https://reviews.freebsd.org/D24020
2020-03-12 19:39:24 +00:00
Tobias Kortkamp
0fadf15072 lang/rust-nightly: Update to 1.43.0.20200306
libgit2-sys is now based on libgit2 0.99.0.  While 0.99.0 is supposed
to be API compatible with 0.28, it has not yet been updated in the
ports tree and the git2 crate now make use of some of the new
function return values.  Stop relying on system libgit2 and use the
bundled one.  Upstream does not make any guarantees about system
libgit2 support in the first place.

Changes:	6d69caba11...96bb8b31c8
2020-03-06 12:43:06 +00:00
Tobias Kortkamp
d0c2a2ceea lang/rust: Attempt to address unreliable rust-lld build
It sometimes fails [0,1] and sometimes succeeds [2,3].  When it
fails it fails with

running: "cmake" "/wrkdirs/usr/ports/lang/rust/work/rustc-1.41.1-src/src/llvm-project/lld" "-DCMAKE_INSTALL_MESSAGE=LAZY" "-DCMAKE_C_COMPILER=cc" "-DCMAKE_CXX_COMPILER=c++" "-DCMAKE_C_FLAGS=-ffunction-sections -fdata-sections -fPIC -m64 -pipe -fstack-protector-strong -fno-strict-aliasing" "-DCMAKE_CXX_FLAGS=-ffunction-sections -fdata-sections -fPIC -m64 -pipe -fstack-protector-strong -fno-strict-aliasing" "-DLLVM_CONFIG_PATH=/wrkdirs/usr/ports/lang/rust/work/rustc-1.41.1-src/build/bootstrap/debug/deps/llvm-config-wrapper" "-DLLVM_INCLUDE_TESTS=OFF" "-DCMAKE_INSTALL_PREFIX=/wrkdirs/usr/ports/lang/rust/work/rustc-1.41.1-src/build/x86_64-unknown-freebsd/lld" "-DCMAKE_BUILD_TYPE=Release"
-- The C compiler identification is Clang 9.0.1
-- The CXX compiler identification is Clang 9.0.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:23 (message):
  llvm-config failed with status No such file or directory

-- Configuring incomplete, errors occurred!

There seems to be some kind of race when using llvm-config-wrapper,
but at the point where LLD is built, both llvm-config and
llvm-config-wrapper should definitely be available.  Both are built
successfully much earlier in the build.  Attempt to improve reliability
by not using the wrapper.  It is a hack in the first place that is
only really needed on Windows.

This is a shot in the dark.  I am unable to reproduce this myself.

[0] http://beefy18.nyi.freebsd.org/data/head-amd64-default/p527397_s358451/logs/errors/rust-1.41.1.log
[1] http://gohan03.nyi.freebsd.org/data/head-amd64-default-baseline/p527486_s358478/logs/errors/rust-1.41.1.log
[2] http://beefy18.nyi.freebsd.org/data/head-amd64-default/p527397_s358451/logs/rust-nightly-1.43.0.20200228.log
[3] http://gohan03.nyi.freebsd.org/data/head-amd64-default-baseline/p527313_s358414/logs/rust-1.41.1.log
2020-03-01 11:09:44 +00:00
Tobias Kortkamp
daf2ea4a45 lang/rust: Update to 1.41.1
- Force rebuild all consumers to fix potential miscompilations with
  1.41.0
- Enable SOURCES by default.  The sources are indexed by RLS and
  required for it to function properly, so they should be available
  by default.  This also makes sure we test the option properly.
- Remove implied --config=config.toml from x.py args
- Switch to the upstreamed backtrace crate patches like rust-nightly
- Enable WASM by default [0]
- Strip libraries (D23650) [1]
- Simplify plist generation (D23735) [2]

Changes:	https://blog.rust-lang.org/2020/02/27/Rust-1.41.1.html
Submitted by:	mikael [0,1,2]
With hat:	rust
Differential Revision:	https://reviews.freebsd.org/D23835
2020-02-27 15:22:28 +00:00
Mikael Urankar
232ad0ecf3 lang/rust: add the WASM option
Add the WASM (WebAssembly) option to build the wasm32-unknown-unknown target, off by default.

Reviewed by:	tobik
Approved by:	tobik, manu (mentor)
Differential Revision:	https://reviews.freebsd.org/D23653
2020-02-16 15:22:07 +00:00
Mikael Urankar
de3daa4dbf Trim whitespace
Reviewed by:	tobik, manu
Approved by:	manu (mentor)
Differential Revision:	https://reviews.freebsd.org/D23649
2020-02-12 16:59:46 +00:00
Tobias Kortkamp
30e19b499b lang/rust: Silence stage-qa warnings when building with SOURCES=on
PR:		243850
2020-02-06 20:51:20 +00:00
Tobias Kortkamp
b807a7b276 lang/rust-nightly: Update to 1.43.0.20200205
Remove some cruft while here.

Changes:	41f41b2354...c9290dceee
2020-02-05 04:29:55 +00:00
Tobias Kortkamp
83209114b8 lang/rust: Update to 1.41.0
- Force rebuild all consumers to catch regressions early
- Switch to cross-compiled (from amd64) bootstraps for all
  architectures generated with the incoming lang/rust-bootstrap
- Update cargo-c to 0.5.2 to unbreak librav1e build
- Make use of regular MAKE_ENV/TEST_ENV in lang/rust
- Turn on RUST_BACKTRACE in lang/rust and USES=cargo to hopefully
  produce more useful failure logs when something panics during
  builds

Changes:	https://blog.rust-lang.org/2020/01/30/Rust-1.41.0.html
Tested by:	mikael, tobik
With hat:	rust
Differential Revision:	https://reviews.freebsd.org/D23385
2020-01-30 20:00:06 +00:00
Tobias Kortkamp
0ff0daf382 Unbreak lang/rust-nightly after r524013 2020-01-27 06:21:25 +00:00
Tobias Kortkamp
3679ebcd64 lang/rust: Apply some of the patches for lang/rust-bootstrap (D23133)
They should not affect the regular lang/rust build.
2020-01-25 05:41:19 +00:00
Tobias Kortkamp
9c9d62dce0 lang/rust-nightly: Update to 1.42.0.20200124
Nightly bootstraps now have the fix from r523512.  Switch to them
for the time being and drop the workaround.
2020-01-24 20:53:31 +00:00
Tobias Kortkamp
d82b187e65 lang/rust-nightly: Unbreak with lld on 13.0 i386
= note: ld: error: relocation R_386_PC32 cannot be used against symbol __rust_probestack; recompile with -fPIC
          >>> defined in /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libcompiler_builtins-6570a75fe85f0e1a.rlib(compiler_builtins-6570a75fe85f0e1a.compiler_builtins.2i519eqi-cgu.15.rcgu.o)
          >>> referenced by std.4xivr03c-cgu.14
          >>>               std-9bd70afd58e204b7.std.4xivr03c-cgu.14.rcgu.o:(_$LT$alloc..boxed..Box$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h1c78ed6e734a2bfc (.llvm.10122419023709863394)) in archive /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libstd-9bd70afd58e204b7.rlib

          ld: error: relocation R_386_PC32 cannot be used against symbol __rust_probestack; recompile with -fPIC
          >>> defined in /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libcompiler_builtins-6570a75fe85f0e1a.rlib(compiler_builtins-6570a75fe85f0e1a.compiler_builtins.2i519eqi-cgu.15.rcgu.o)
          >>> referenced by std.4xivr03c-cgu.14
          >>>               std-9bd70afd58e204b7.std.4xivr03c-cgu.14.rcgu.o:(std::io::util::copy::h9115f048f2203467) in archive /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libstd-9bd70afd58e204b7.rlib
          clang-cpp: error: linker command failed with exit code 1 (use -v to see invocation)

error: aborting due to previous error

http://beefy17.nyi.freebsd.org/data/head-i386-default/p523508_s356869/logs/rust-nightly-1.42.0.20200118.log
2020-01-19 06:53:15 +00:00
Tobias Kortkamp
31a186d154 lang/rust: Simplify makesum and MASTER_SITES 2020-01-18 09:56:06 +00:00
Tobias Kortkamp
50c841a2c2 lang/rust-nightly: Update to 1.42.0.20200118 2020-01-18 09:49:47 +00:00
Tobias Kortkamp
83096313be lang/rust: Add COMPAT_FREEBSD11 canary
This attempts to provide a nicer error message for the subset of
users who build their own kernels without COMPAT_FREEBSD11 and then
attempt to build lang/rust.  The Rust ecosystem currently uses
pre-ino64 syscalls, so building lang/rust without COMPAT_FREEBSD11
is not going to work.

The error message for this is non-obvious and there is a new bug
for this at least every 1-2 months.  Hopefully this will improve
the situation a little.

Cargo and Gecko ports are similarly affected, so add the pre-build
check to them too.

Reviewed by:	jbeich, mikael.urankar@gmail.com
Tested by:	madpilot (negative case)
Approved by:	gecko (jbeich)
Differential Revision:	https://reviews.freebsd.org/D23100
2020-01-13 18:36:04 +00:00
Tobias Kortkamp
cab5226369 lang/rust: increase build verbosity and produce better build logs 2020-01-11 08:35:05 +00:00
Tobias Kortkamp
06ac63b008 lang/rust: fix powerpc64 elfv2 bootstrap
Apparently there were some issues with the previous one.

PR:		243253
Submitted by:	mikael.urankar@gmail.com
Reported by:	jhibbits, pkubaj
Tested by:	pkubaj
2020-01-11 08:24:17 +00:00
Tobias Kortkamp
f998d9199b lang/rust: Simplify do-configure and garbage collect files/config.toml 2020-01-07 07:01:46 +00:00
Tobias Kortkamp
6474c40f73 lang/rust: Update to 1.40.0
- Force rebuild all consumers to catch regressions early

Thanks to Mikaël Urankar for providing updated bootstraps for
aarch64, armv6, armv7, powerpc64.

Changes:	https://blog.rust-lang.org/2019/12/19/Rust-1.40.0.html
Tested by:	mikael.urankar@gmail.com, tobik
With hat:	rust
Differential Revision:	https://reviews.freebsd.org/D22843
2019-12-19 16:14:48 +00:00
Tobias Kortkamp
2436e87863 lang/rust: Respect ONLY_FOR_ARCHS in makesum
lang/rust-nightly does not have powerpc64 in it and unconditionally
running makesum for the powerpc64 ELFv2 bootstraps breaks there.

PR:		242342
Reported by:	jbeich
2019-12-01 18:36:53 +00:00
Tobias Kortkamp
820d36692d lang/rust: Remove PPC_ABI kludge after r518658 2019-11-30 02:02:29 +00:00
Tobias Kortkamp
24db7d8caa lang/rust, Mk/Uses/cargo.mk: Drop gmake build dependency for backtrace-sys
The backtrace-sys crate no longer needs gmake since 0.1.20.
sysutils/flowgger still uses backtrace-sys-0.1.14.  Since it is the
only USES=cargo port left that needs it, move the gmake dependency
directly to it instead.

lang/rust currently has backtrace-sys-0.1.30.  It also vendors
jemalloc-sys (which also needs gmake to build) but it is hidden
behind rustc's jemalloc feature which we do not currently activate.
It should be safe to remove gmake in lang/rust too.

PR:		242267
Reported by:	mikael.urankar@gmail.com
2019-11-29 22:12:35 +00:00
Tobias Kortkamp
04a24a9085 lang/rust: Add missing bits for powerpc64 ELFv2 support via PPC_ABI
Submitted by:	Mikaël Urankar <mikael.urankar@gmail.com>
Differential Revision:	https://reviews.freebsd.org/D20792
2019-11-19 09:28:13 +00:00
Jan Beich
6131485198 lang/rust{,-nightly}: switch to .tar.xz bootstraps
Decreases total size by ~325 MiB in lang/rust.

Approved by:	tobik (rust)
Differential Revision:	https://reviews.freebsd.org/D22422
2019-11-17 08:30:39 +00:00
Tobias Kortkamp
2fe5565445 lang/rust: Update to 1.39.0
- Force rebuild all consumers to catch regressions early
- Partially apply D20792 in preparation for PPC_ABI support
- Add LibreSSL 3.0.x support [1]

Thanks to Mikaël Urankar for providing updated bootstraps for
aarch64, armv6, armv7, powerpc64.

Changes:	https://blog.rust-lang.org/2019/11/07/Rust-1.39.0.html
PR:		241411 [1]
Tested by:	mikael.urankar@gmail.com, tobik
With hat:	rust
Differential Revision:	https://reviews.freebsd.org/D22240
2019-11-07 18:07:20 +00:00
Bryan Drewery
bc8870a852 - Add compat for NOCCACHE -> NO_CCACHE 2019-10-10 20:09:59 +00:00
Bryan Drewery
d500249dad - Add a CCACHE_BIN variable for simplified use where needed. 2019-10-10 20:06:24 +00:00
Tobias Kortkamp
deaa22d85c lang/rust: Update to 1.38.0
- Force rebuild all consumers to catch regressions early

Thanks to Mikaël Urankar for providing updated bootstraps for
aarch64, armv6, armv7, powerpc64.

Changes:	https://blog.rust-lang.org/2019/09/26/Rust-1.38.0.html
Tested by:	jbeich, mikael.urankar@gmail.com, tobik
With hat:	rust
Differential Revision:	https://reviews.freebsd.org/D21778
2019-09-27 09:35:20 +00:00
Tobias Kortkamp
6f2133b9ce lang/rust: Drop unused/unmaintained package-to-bootstraps and related targets
Reviewed by:	mikael.urankar@gmail.com
Differential Revision:	https://reviews.freebsd.org/D21690
2019-09-19 06:23:07 +00:00
Tobias Kortkamp
0d4bd68762 lang/rust: Cleanup part 4
- Spell LICENSE_FILE_APACHE20 correctly
- Move gmake to BUILD_DEPENDS directly.  gmake is called during the
  build by some crates but is not the primary build tool.
- Move variables around to be more in line with the recommendations
  in the Porter's Handbook
- Mark port local non-overridable variables as "private"
- Reduce noise of RUST_ARCH_*: only keep the overrides when they
  differ from ${ARCH}
- Drop unused RUST_TARGET plist sub
- Move post-configure-DOCS-* into do-configure
2019-09-17 16:35:11 +00:00
Tobias Kortkamp
7589599b53 lang/rust: Unbreak on armv6
error: couldn't load codegen backend "/usr/ports/lang/rust/work/rustc-1.37.0-src/build/armv6-unknown-freebsd/stage1/lib/rustlib/armv6-unknown-freebsd/codegen-backends/librustc_codegen_llvm-llvm.so": "/usr/ports/lang/rust/work/rustc-1.37.0-src/build/armv6-unknown-freebsd/stage1/lib/rustlib/armv6-unknown-freebsd/codegen-backends/librustc_codegen_llvm-llvm.so: Undefined symbol \"__clear_cache\""

__clear_cache is implemented in compiler-rt and was dropped upstream with [1]:
aa41e0d25f

For some unknown reason this is a problem on armv6.  Bring back the
compiler-rt submodule for now to workaround this.

Submitted by:	 mikael.urankar_gmail.com
Differential Revision:	https://reviews.freebsd.org/D21415
2019-09-01 07:26:54 +00:00
Tobias Kortkamp
40666d2b8f lang/rust: Update to 1.37.0
- Force rebuild all consumers to catch regressions early

Thanks to Mikaël Urankar for providing updated bootstraps for
aarch64, armv6, armv7, powerpc64.

Changes:	https://blog.rust-lang.org/2019/08/15/Rust-1.37.0.html
Tested by:	jbeich, tobik, greg@unrelenting.technology (aarch64)
With hat:	rust
Differential Revision:	https://reviews.freebsd.org/D21247
2019-08-15 14:30:16 +00:00
Bryan Drewery
83810d6015 NOCCACHE also disables setting CCACHE_WRAPPER_PATH which can break the build. 2019-07-28 20:27:52 +00:00
Gerald Pfeifer
ea8c8ec7da Bump PORTREVISION for ports depending on the canonical version of GCC
as defined in Mk/bsd.default-versions.mk which has moved from GCC 8.3
to GCC 9.1 under most circumstances now after revision 507371.

This includes ports
 - with USE_GCC=yes or USE_GCC=any,
 - with USES=fortran,
 - using Mk/bsd.octave.mk which in turn features USES=fortran, and
 - with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
   c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, everything INDEX-11 shows with a dependency on lang/gcc9 now.

PR:		238330
2019-07-26 20:46:53 +00:00