Page MenuHomeFreeBSD

lang/rust: Update to 1.39.0
ClosedPublic

Authored by tobik on Tue, Nov 5, 5:23 AM.

Details

Summary

Scheduled to be released on 2019-11-07.

https://internals.rust-lang.org/t/1-39-0-pre-release-is-ready-for-testing/11234
https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1390-2019-11-07

Other port changes:

  • Maybe adds LibreSSL 3.0.2 support (https://bugs.freebsd.org/241411) based on the relevant openssl-sys commits
  • Move architecture specific patches to separate patch dirs in preparation for D20792
  • Also add the patches from D20792 (PPC_ABI changes later after D22039 lands)
Test Plan

11.3 i386 ok, consumers ok
12.0 amd64 ok, consumers ok
12.0 amd64 + LibreSSL ok
13.0 amd64 ok
13.0 i386 ok
aarch64 in progress
powerpc64 elfv1 ok
powerpc64 elfv2 ok
armv6 ok
armv7 ok

Diff Detail

Repository
rP FreeBSD ports repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

tobik created this revision.Tue, Nov 5, 5:23 AM
tobik added a comment.EditedTue, Nov 5, 5:26 AM

Attaching patch generated with --show-copies-as-adds that might be easier to apply:

Also the thunderbird failure log which Phabricator refused to create a Paste from:

tobik edited the test plan for this revision. (Show Details)Tue, Nov 5, 6:40 AM

The patch doesn't apply here:

root@ppc64-elfv2: /usr/ports svn st lang/rust
M       lang/rust/files/config.toml

root@ppc64-elfv2: /usr/ports svn patch --dry-run D22240.diff
U         lang/rust/Makefile
U         lang/rust/distinfo
D         lang/rust/files/extra-patch-arm-compiler-rt
D         lang/rust/files/patch-src_bootstrap_native.rs
D         lang/rust/files/patch-src_librustc__llvm_build.rs
U         lang/rust/files/patch-src_llvm-project_llvm_utils_llvm-build_llvmbuild_main.py
U         lang/rust/files/patch-vendor_libgit2-sys_lib.rs
U         lang/rust/files/patch-vendor_openssl-sys_build_main.rs
U         lang/rust/files/patch-vendor_openssl-sys_src_ssl.rs
C         lang/rust/files/powerpc64-elfv1/patch-src_bootstrap_native.rs
>         rejected hunk @@ -1,31 +1,7 @@
>         rejected hunk @@ -35,14 +11,3 @@
C         lang/rust/files/powerpc64-elfv1/patch-src_librustc__llvm_build.rs
>         rejected hunk @@ -1,6 +1,6 @@
A         lang/rust/files/powerpc64-elfv2
A         lang/rust/files/powerpc64-elfv2/patch-src_librustc__target_abi_call_powerpc64.rs
A         lang/rust/files/powerpc64-elfv2/patch-src_librustc__target_spec_powerpc64__unknown__freebsd.rs
A         lang/rust/files/powerpc64-elfv2/patch-src_llvm-project_clang_lib_Basic_Targets_PPC.h
A         lang/rust/files/powerpc64-elfv2/patch-src_llvm-project_llvm_lib_Target_PowerPC_PPCTargetMachine.cpp
Summary of conflicts:
  Text conflicts: 2
lang/rust/files/powerpc64-elfv2/patch-src_librustc__target_spec_powerpc64__unknown__freebsd.rs
8 ↗(On Diff #63950)

It should be OSREL and not 13.0. I think this file can be shared between elfv1 and elfv2 as long as OSREL is used.
Why do you prefer patch files instead of patching from the Makefile (like I did in D20792)?

.if ${ARCH} == powerpc64 && ${PPC_ABI} == ELFv2
	@${REINPLACE_CMD} -e \
		's|Endian::Big => ELFv1|Endian::Big => ELFv2|' \
		${WRKSRC}/src/librustc_target/abi/call/powerpc64.rs
	@${REINPLACE_CMD} -e \
		's|powerpc64-unknown-freebsd|powerpc64-unknown-freebsd${OSREL}|' \
		${WRKSRC}/src/librustc_target/spec/powerpc64_unknown_freebsd.rs
.endif
lang/rust/Makefile
95 ↗(On Diff #63950)

Unrelated to this review but this bug was fixed 10 months ago on -current, I think it can be simplified to (dfly doesn't have aarch64 arch):
.if ${ARCH} == aarch64 && ${OSVERSION} < 1200502

tobik added a comment.Tue, Nov 5, 8:13 AM

The patch doesn't apply here:

Probably because of the svn cp/mv that are in this review. Use the --show-copies-as-adds patch I specifically attached for this instead. Here it is again:

tobik updated this revision to Diff 63953.EditedTue, Nov 5, 8:39 AM
  • powerpc64-elfv2/patch-src_librustctarget_spec_powerpc64unknown__freebsd.rs to sed
  • Simplify aarch64 IGNORE

Updated --show-copies-as-adds patch:

tobik updated this revision to Diff 63976.EditedTue, Nov 5, 8:38 PM
  • Unbreak Gecko ports by backporting [1]

[1] https://github.com/rust-lang/rust-bindgen/commit/9696bc1795c75b1b527e2b70d9baf3ced9e3c154

Updated --show-copies-as-adds patch:

tobik edited the test plan for this revision. (Show Details)Tue, Nov 5, 8:58 PM

It's ok on armv6, powerpc64 elfv1 and elfv2. I've launched the build on armv7 and aarch64 but it probably won't be finished until tomorrow.

tobik edited the test plan for this revision. (Show Details)Wed, Nov 6, 7:18 AM
tobik edited the test plan for this revision. (Show Details)Wed, Nov 6, 11:15 AM
lang/rust/Makefile
44 ↗(On Diff #63976)

Why do we need libedit? It builds fine without it, is it a runtime thing?

It's ok on armv7. The build is still ongoing on aarch64...

tobik edited the test plan for this revision. (Show Details)Thu, Nov 7, 2:21 PM
tobik added inline comments.Thu, Nov 7, 3:01 PM
lang/rust/Makefile
44 ↗(On Diff #63976)

AFAICT it's just cruft. I've removed it.

tobik edited the test plan for this revision. (Show Details)Thu, Nov 7, 5:56 PM

It's ok on armv7. The build is still ongoing on aarch64...

How did the build on aarch64 go? Can I commit?

It goes slowly. rust stage2 is almost done, it remains all the tools (cargo, clippy...) You can commit it.

This revision was not accepted when it landed; it landed in state Needs Review.Thu, Nov 7, 6:07 PM
Closed by commit rP516995: lang/rust: Update to 1.39.0 (authored by tobik). · Explain Why
This revision was automatically updated to reflect the committed changes.