Page MenuHomeFreeBSD

lang/rust: Update to 1.35.0
ClosedPublic

Authored by tobik on May 21 2019, 10:53 AM.

Details

Summary
Test Plan

11.2/i386 ok
12.0/amd64 ok
12.0/i386 ok
13.0/amd64 ok
aarch64 ok (tested by @mikael.urankar_gmail.com)
powerpc64 ok (tested by @pkubaj)

@pkubaj @mikael.urankar_gmail.com Please let me now before release date if you want to do test builds on powerpc64, arm and need more time for it. Otherwise this will land on 2019-05-23 or 2019-05-24 assuming QA on amd64 and i386 is 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.May 21 2019, 10:53 AM
tobik added a reviewer: rust.May 21 2019, 10:54 AM

Building on powerpc64 now.

tobik updated this revision to Diff 57621.May 21 2019, 11:01 AM
  • Remove upstreamed libc patches

Build failed:

   Compiling petgraph v0.4.13
error[E0428]: the name `c_char` is defined multiple times
  --> /usr/local/poudriere/ports/default/lang/rust/work/rustc-1.35.0-src/vendor/libc/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs:32:1
   |
1  | pub type c_char = u8;
   | --------------------- previous definition of the type `c_char` here
...
32 | pub type c_char = u8;
   | ^^^^^^^^^^^^^^^^^^^^^ `c_char` redefined here
   |
   = note: `c_char` must be defined only once in the type namespace of this module

error[E0428]: the name `c_long` is defined multiple times
  --> /usr/local/poudriere/ports/default/lang/rust/work/rustc-1.35.0-src/vendor/libc/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs:33:1
   |
2  | pub type c_long = i64;
   | ---------------------- previous definition of the type `c_long` here
...
33 | pub type c_long = i64;
   | ^^^^^^^^^^^^^^^^^^^^^^ `c_long` redefined here
   |
   = note: `c_long` must be defined only once in the type namespace of this module

error[E0428]: the name `c_ulong` is defined multiple times
  --> /usr/local/poudriere/ports/default/lang/rust/work/rustc-1.35.0-src/vendor/libc/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs:34:1
   |
3  | pub type c_ulong = u64;
   | ----------------------- previous definition of the type `c_ulong` here
...
34 | pub type c_ulong = u64;
   | ^^^^^^^^^^^^^^^^^^^^^^^ `c_ulong` redefined here
   |
   = note: `c_ulong` must be defined only once in the type namespace of this module

error[E0428]: the name `time_t` is defined multiple times
  --> /usr/local/poudriere/ports/default/lang/rust/work/rustc-1.35.0-src/vendor/libc/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs:35:1
   |
4  | pub type time_t = i64;
   | ---------------------- previous definition of the type `time_t` here
...
35 | pub type time_t = i64;
   | ^^^^^^^^^^^^^^^^^^^^^^ `time_t` redefined here
   |
   = note: `time_t` must be defined only once in the type namespace of this module

error[E0428]: the name `suseconds_t` is defined multiple times
  --> /usr/local/poudriere/ports/default/lang/rust/work/rustc-1.35.0-src/vendor/libc/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs:36:1
   |
5  | pub type suseconds_t = i64;
   | --------------------------- previous definition of the type `suseconds_t` here
...
36 | pub type suseconds_t = i64;
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ `suseconds_t` redefined here
   |
   = note: `suseconds_t` must be defined only once in the type namespace of this module

error[E0428]: the name `stat` is defined multiple times
  --> /usr/local/poudriere/ports/default/lang/rust/work/rustc-1.35.0-src/vendor/libc/src/macros.rs:78:13
   |
78 |               pub struct $i { $($field)* }
   |               -------------
   |               |
   |               `stat` redefined here
   |               previous definition of the type `stat` here
   |
  ::: /usr/local/poudriere/ports/default/lang/rust/work/rustc-1.35.0-src/vendor/libc/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs:7:1
   |
7  | / s! {
8  | |     pub struct stat {
9  | |         pub st_dev: ::dev_t,
10 | |         pub st_ino: ::ino_t,
...  |
30 | |     }
31 | | }
   | |_- in this macro invocation
   |
   = note: `stat` must be defined only once in the type namespace of this module

   Compiling cmake v0.1.33
error[E0119]: conflicting implementations of trait `core::marker::Copy` for type `unix::bsd::freebsdlike::freebsd::powerpc64::stat`:
  --> /usr/local/poudriere/ports/default/lang/rust/work/rustc-1.35.0-src/vendor/libc/src/macros.rs:80:9
   |
80 |           impl ::Copy for $i {}
   |           ^^^^^^^^^^^^^^^^^^
   |           |
   |           first implementation here
   |           conflicting implementation for `unix::bsd::freebsdlike::freebsd::powerpc64::stat`
   |
  ::: /usr/local/poudriere/ports/default/lang/rust/work/rustc-1.35.0-src/vendor/libc/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs:38:1
   |
38 | / s! {
39 | |     pub struct stat {
40 | |         pub st_dev: ::dev_t,
41 | |         pub st_ino: ::ino_t,
...  |
61 | |     }
62 | | }
   | |_- in this macro invocation

error[E0119]: conflicting implementations of trait `core::clone::Clone` for type `unix::bsd::freebsdlike::freebsd::powerpc64::stat`:
  --> /usr/local/poudriere/ports/default/lang/rust/work/rustc-1.35.0-src/vendor/libc/src/macros.rs:81:9
   |
81 |           impl ::Clone for $i {
   |           ^^^^^^^^^^^^^^^^^^^
   |           |
   |           first implementation here
   |           conflicting implementation for `unix::bsd::freebsdlike::freebsd::powerpc64::stat`
   |
  ::: /usr/local/poudriere/ports/default/lang/rust/work/rustc-1.35.0-src/vendor/libc/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs:38:1
   |
38 | / s! {
39 | |     pub struct stat {
40 | |         pub st_dev: ::dev_t,
41 | |         pub st_ino: ::ino_t,
...  |
61 | |     }
62 | | }
   | |_- in this macro invocation

error: aborting due to 8 previous errors

Some errors occurred: E0119, E0428.
For more information about an error, try `rustc --explain E0119`.
error: Could not compile `libc`.
warning: build failed, waiting for other jobs to finish...
tobik updated this revision to Diff 57622.May 21 2019, 11:11 AM
  • Crank bootstraps

We need updated bootstraps for armv6, armv7, aarch64, powerpc64. rustc 1.34.2 (though probably 1.34.0 and 1.34.1 would also be ok) and cargo 0.35.0.

Harbormaster completed remote builds in B24352: Diff 57622.
tobik updated this revision to Diff 57626.May 21 2019, 11:58 AM
  • Rebase for dns/doh-proxy update

Build failed:

Sorry about that. I forgot to remove a bunch of patches. It builds
fine on 12.0/amd64 now so please retry. The distcache has probably also
caught up with my ~/public_distfiles for the tier 2 bootstraps now.

  • www/seamonkey needs PORTREVISION bump for RUST option
  • lang/rust fails check-plist due to orphaned files from bundled LLVM, see P260

Looks like there's some change in Altivec code:

error[E0432]: unresolved import `mem`
  --> src/libstd/../stdsimd/crates/std_detect/src/detect/os/freebsd/auxvec.rs:45:9
   |
45 |     use mem;
   |         ^^^ no `mem` external crate

error: aborting due to previous error

For more information about this error, try `rustc --explain E0432`.
error: Could not compile `std`.
tobik added a comment.May 22 2019, 8:07 AM

Looks like there's some change in Altivec code:

error[E0432]: unresolved import `mem`
  --> src/libstd/../stdsimd/crates/std_detect/src/detect/os/freebsd/auxvec.rs:45:9
   |
45 |     use mem;
   |         ^^^ no `mem` external crate
error: aborting due to previous error
For more information about this error, try `rustc --explain E0432`.
error: Could not compile `std`.

Try changing use mem; to use crate::mem;.

tobik updated this revision to Diff 57683.May 22 2019, 8:29 AM
  • Bump revision of www/seamonkey too
  • Attempt to fix build on powerpc64 (use mem -> use crate::mem)
  • Apply band-aid and avoid restarting the LLVM build during the install phase and staging it badly (fix check-plist)

@jbeich Thanks for pointing this out. It seems that Rust is now always assuming that it needs to rebuild LLVM during install when it is not being built from a Git checkout. And since we are passing DESTDIR=${STAGEDIR} explicitly in do-install it gets copied into STAGEDIR the second time around.

tobik edited the test plan for this revision. (Show Details)May 22 2019, 8:36 AM

It's ok on aarch64, I won't have time to check the other arches.

pkubaj accepted this revision.May 22 2019, 7:08 PM

OK for me, I successfully built on 12.0-RELEASE/powerpc64.

tobik edited the test plan for this revision. (Show Details)May 23 2019, 3:10 AM
tobik accepted this revision.May 24 2019, 3:24 AM
This revision was not accepted when it landed; it landed in state Needs Review.May 24 2019, 3:25 AM
Closed by commit rP502416: lang/rust: Update to 1.35.0 (authored by tobik). · Explain Why
This revision was automatically updated to reflect the committed changes.