mbox series

[v4,00/10] Stepwise rust upgrade 1.71.1 -> 1.74.1

Message ID 20231229114435.27810-1-alex.kiernan@gmail.com
Headers show
Series Stepwise rust upgrade 1.71.1 -> 1.74.1 | expand

Message

Alex Kiernan Dec. 29, 2023, 11:44 a.m. UTC
This is the 1.74.1 rust series rebased to include a revert of
https://github.com/rust-lang/cc-rs/commit/c4f414f449bb7cffba3bc923f277704d1d08a8ec
which I'm pretty sure is what's causing our filename churn. I've checked
1.72.0 and 1.74.1 for the absvdi2.o intrinsic (one of many intrinsics
which had the issue) and in both cases we're not generating the dirname
based prefix - hopefully that means that the interim commits are fine
too, if not we can do the step back through the commits to find the next
issue.

Changes in v4:
- Mark hello-rs as EXCLUDE_FROM_WORLD as it's not reproducible

Changes in v3:
- Add hello-rs as a replacement for the tests which used zvariant

Changes in v2:
- Skip zvariant based test rather than deleting it.

Alex Kiernan (10):
  devtool: selftest: Fix test_devtool_modify_git_crates_subpath
    inequality
  devtool: selftest: Fix test_devtool_modify_git_crates_subpath bbappend
    check
  meta-selftest: hello-rs: Simple rust test recipe
  devtool: selftest: Swap to hello-rs for crates testing
  zvariant: Drop recipe
  rust: Upgrade 1.71.1 -> 1.72.0
  rust: Upgrade 1.72.0 -> 1.72.1
  rust: Upgrade 1.72.1 -> 1.73.0
  rust: Upgrade 1.73.0 -> 1.74.0
  rust: Upgrade 1.74.0 -> 1.74.1

 .../hello-rs/hello-rs-crates.inc              |    8 +
 .../hello-rs/0001-Greet-OE-Core.patch         |   24 +
 .../hello-rs/hello-rs_0.1.0.bb                |   22 +
 .../zvariant/zvariant-crates.inc              |  258 ----
 .../zvariant/zvariant-git-crates.inc          |   14 -
 .../0001-Tweak-zvariant-crate-config.patch    | 1292 -----------------
 .../zvariant/zvariant_3.12.0.bb               |   37 -
 meta/conf/distro/include/tcmode-default.inc   |    2 +-
 meta/lib/oeqa/selftest/cases/devtool.py       |    6 +-
 .../rust/{cargo_1.71.1.bb => cargo_1.74.1.bb} |    0
 ...-Do-not-use-LFS64-on-linux-with-musl.patch |  164 ---
 ...0001-Don-t-use-LFS64-symbols-on-musl.patch |  163 +++
 ...e-absolute-paths-to-OUT_DIR-as-relat.patch |   67 +
 ...Define-SOCK_NONBLOCK-with-O_NONBLOCK.patch |  122 ++
 ...efine-SOCK_SEQPACKET-in-common-place.patch |  114 --
 ...ine-F_SETLK-F_SETLKW-and-fix-F_GETLK.patch |   41 +
 ...GETLK-F_OFD_SETLK-and-F_OFD_SETLKW-t.patch |  205 +++
 ...-musl-Define-O_LARGEFILE-for-riscv32.patch |   32 +
 ...efine-SOCK_SEQPACKET-in-common-place.patch |  115 ++
 .../rust/files/getrandom-open64.patch         |   50 -
 .../rust/files/hardcodepaths.patch            |   14 +-
 .../rust/files/zlib-off64_t.patch             |   17 +-
 ...ibstd-rs_1.71.1.bb => libstd-rs_1.74.1.bb} |    0
 ....71.1.bb => rust-cross-canadian_1.74.1.bb} |    0
 ...ust-llvm_1.71.1.bb => rust-llvm_1.74.1.bb} |    0
 meta/recipes-devtools/rust/rust-snapshot.inc  |   64 +-
 meta/recipes-devtools/rust/rust-source.inc    |   12 +-
 .../rust/{rust_1.71.1.bb => rust_1.74.1.bb}   |    1 +
 28 files changed, 859 insertions(+), 1985 deletions(-)
 create mode 100644 meta-selftest/recipes-extended/hello-rs/hello-rs-crates.inc
 create mode 100644 meta-selftest/recipes-extended/hello-rs/hello-rs/0001-Greet-OE-Core.patch
 create mode 100644 meta-selftest/recipes-extended/hello-rs/hello-rs_0.1.0.bb
 delete mode 100644 meta-selftest/recipes-extended/zvariant/zvariant-crates.inc
 delete mode 100644 meta-selftest/recipes-extended/zvariant/zvariant-git-crates.inc
 delete mode 100644 meta-selftest/recipes-extended/zvariant/zvariant/0001-Tweak-zvariant-crate-config.patch
 delete mode 100644 meta-selftest/recipes-extended/zvariant/zvariant_3.12.0.bb
 rename meta/recipes-devtools/rust/{cargo_1.71.1.bb => cargo_1.74.1.bb} (100%)
 delete mode 100644 meta/recipes-devtools/rust/files/0001-Do-not-use-LFS64-on-linux-with-musl.patch
 create mode 100644 meta/recipes-devtools/rust/files/0001-Don-t-use-LFS64-symbols-on-musl.patch
 create mode 100644 meta/recipes-devtools/rust/files/0001-Revert-Map-source-absolute-paths-to-OUT_DIR-as-relat.patch
 create mode 100644 meta/recipes-devtools/rust/files/0001-musl-Define-SOCK_NONBLOCK-with-O_NONBLOCK.patch
 delete mode 100644 meta/recipes-devtools/rust/files/0001-musl-Define-SOCK_SEQPACKET-in-common-place.patch
 create mode 100644 meta/recipes-devtools/rust/files/0002-musl-riscv32-Define-F_SETLK-F_SETLKW-and-fix-F_GETLK.patch
 create mode 100644 meta/recipes-devtools/rust/files/0003-musl-Move-F_OFD_GETLK-F_OFD_SETLK-and-F_OFD_SETLKW-t.patch
 create mode 100644 meta/recipes-devtools/rust/files/0004-musl-Define-O_LARGEFILE-for-riscv32.patch
 create mode 100644 meta/recipes-devtools/rust/files/0005-musl-Define-SOCK_SEQPACKET-in-common-place.patch
 delete mode 100644 meta/recipes-devtools/rust/files/getrandom-open64.patch
 rename meta/recipes-devtools/rust/{libstd-rs_1.71.1.bb => libstd-rs_1.74.1.bb} (100%)
 rename meta/recipes-devtools/rust/{rust-cross-canadian_1.71.1.bb => rust-cross-canadian_1.74.1.bb} (100%)
 rename meta/recipes-devtools/rust/{rust-llvm_1.71.1.bb => rust-llvm_1.74.1.bb} (100%)
 rename meta/recipes-devtools/rust/{rust_1.71.1.bb => rust_1.74.1.bb} (99%)

Comments

Richard Purdie Dec. 30, 2023, 11:08 a.m. UTC | #1
On Fri, 2023-12-29 at 11:44 +0000, Alex Kiernan wrote:
> This is the 1.74.1 rust series rebased to include a revert of
> https://github.com/rust-lang/cc-rs/commit/c4f414f449bb7cffba3bc923f277704d1d08a8ec
> which I'm pretty sure is what's causing our filename churn. I've checked
> 1.72.0 and 1.74.1 for the absvdi2.o intrinsic (one of many intrinsics
> which had the issue) and in both cases we're not generating the dirname
> based prefix - hopefully that means that the interim commits are fine
> too, if not we can do the step back through the commits to find the next
> issue.
> 
> Changes in v4:
> - Mark hello-rs as EXCLUDE_FROM_WORLD as it's not reproducible
> 
> Changes in v3:
> - Add hello-rs as a replacement for the tests which used zvariant
> 
> Changes in v2:
> - Skip zvariant based test rather than deleting it.
> 
> Alex Kiernan (10):
>   devtool: selftest: Fix test_devtool_modify_git_crates_subpath
>     inequality
>   devtool: selftest: Fix test_devtool_modify_git_crates_subpath bbappend
>     check
>   meta-selftest: hello-rs: Simple rust test recipe
>   devtool: selftest: Swap to hello-rs for crates testing
>   zvariant: Drop recipe
>   rust: Upgrade 1.71.1 -> 1.72.0
>   rust: Upgrade 1.72.0 -> 1.72.1
>   rust: Upgrade 1.72.1 -> 1.73.0
>   rust: Upgrade 1.73.0 -> 1.74.0
>   rust: Upgrade 1.74.0 -> 1.74.1

Thanks for working through this, I've gone ahead and merged it :)

I am a little worried that:

* the test recipe isn't reproducible
* we still have the tests disabled
* the next version looks problematic

but I think we're at the point it makes sense to move to the newer
version.

Cheers,

Richard
Alex Kiernan Dec. 30, 2023, 3:11 p.m. UTC | #2
On Sat, Dec 30, 2023 at 11:08 AM Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
>
> On Fri, 2023-12-29 at 11:44 +0000, Alex Kiernan wrote:
> > This is the 1.74.1 rust series rebased to include a revert of
> > https://github.com/rust-lang/cc-rs/commit/c4f414f449bb7cffba3bc923f277704d1d08a8ec
> > which I'm pretty sure is what's causing our filename churn. I've checked
> > 1.72.0 and 1.74.1 for the absvdi2.o intrinsic (one of many intrinsics
> > which had the issue) and in both cases we're not generating the dirname
> > based prefix - hopefully that means that the interim commits are fine
> > too, if not we can do the step back through the commits to find the next
> > issue.
> >
> > Changes in v4:
> > - Mark hello-rs as EXCLUDE_FROM_WORLD as it's not reproducible
> >
> > Changes in v3:
> > - Add hello-rs as a replacement for the tests which used zvariant
> >
> > Changes in v2:
> > - Skip zvariant based test rather than deleting it.
> >
> > Alex Kiernan (10):
> >   devtool: selftest: Fix test_devtool_modify_git_crates_subpath
> >     inequality
> >   devtool: selftest: Fix test_devtool_modify_git_crates_subpath bbappend
> >     check
> >   meta-selftest: hello-rs: Simple rust test recipe
> >   devtool: selftest: Swap to hello-rs for crates testing
> >   zvariant: Drop recipe
> >   rust: Upgrade 1.71.1 -> 1.72.0
> >   rust: Upgrade 1.72.0 -> 1.72.1
> >   rust: Upgrade 1.72.1 -> 1.73.0
> >   rust: Upgrade 1.73.0 -> 1.74.0
> >   rust: Upgrade 1.74.0 -> 1.74.1
>
> Thanks for working through this, I've gone ahead and merged it :)
>
> I am a little worried that:
>
> * the test recipe isn't reproducible

This one concerns me... upstream is clearly trying to get
reproducibility yet we're seeing issues. I worry that we're doing
something which means they're not seeing it.

> * we still have the tests disabled

I think we need to find a way to engage with upstream on this - as far
as I can tell they simply don't run the tests on release code, only on
nightlies, so we're really going off-piste here.

> * the next version looks problematic

Hopefully I've found/fixed the issues - it looks like it's bugs from
poor assumptions which don't hold true in our world and at least one
FIXME in the upstream code :| Just tidying the patches and will send
it shortly.

>
> but I think we're at the point it makes sense to move to the newer
> version.
>

Thanks!



--
Alex Kiernan