Page MenuHomeFreeBSD

lang/rust: Update to 1.39.0
ClosedPublic

Authored by tobik on Nov 5 2019, 5:23 AM.
Tags
None
Referenced Files
F104039785: D22240.id63953.diff
Mon, Dec 2, 6:52 PM
Unknown Object (File)
Thu, Nov 28, 4:54 PM
Unknown Object (File)
Fri, Nov 22, 3:26 PM
Unknown Object (File)
Thu, Nov 7, 7:46 AM
Unknown Object (File)
Oct 29 2024, 1:36 PM
Unknown Object (File)
Oct 19 2024, 9:15 AM
Unknown Object (File)
Oct 13 2024, 12:00 PM
Unknown Object (File)
Oct 13 2024, 1:21 AM
Subscribers

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
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

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:

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

In D22240#486171, @mikael.urankar_gmail.com wrote:

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:

  • powerpc64-elfv2/patch-src_librustctarget_spec_powerpc64unknown__freebsd.rs to sed
  • Simplify aarch64 IGNORE

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

  • Unbreak Gecko ports by backporting [1]

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

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

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.

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...

lang/rust/Makefile
44 ↗(On Diff #63976)

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

In D22240#486817, @mikael.urankar_gmail.com wrote:

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.Nov 7 2019, 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.