seamonkey 2.53.18.2 and higher fails to build with rust 1.78 due to packed_simd
Categories
(SeaMonkey :: Build Config, defect)
Tracking
(Not tracked)
People
(Reporter: gaston, Unassigned)
References
Details
Attachments
(1 file, 4 obsolete files)
|
155.50 KB,
application/x-zip-compressed
|
Details |
seems a comeback of bug #1860935, log of the failure:
error[E0557]: feature has been removed ] 40/48: rust_url_capi, mp4parse_capi, packed_simd
--> /usr/obj/ports/seamonkey-2.53.18.2/seamonkey-2.53.18.2/third_party/rust/packed_simd/src/lib.rs:218:5
|
218 | platform_intrinsics,
| ^^^^^^^^^^^^^^^^^^^ feature has been removed
|
= note: SIMD intrinsics use the regular intrinsics ABI now
it builds fine with 1.77.. there's https://github.com/rust-lang/packed_simd/issues/360 upstream
This looks like the same issue as bug 1882209. I will attempt to backport that but it does not appear that will be a simple task.
Comment 2•1 year ago
|
||
Well rust is a mess. Such precaion shoukd not happen in minor compiler versions. Any solution must still be comptible with rust 1.73 because we need this compiler version for macOS. If not we can't use it for the official 2.53.x branch, Support for macOS version 10.11 to 10.14 we still support was dropped in 1.74+.
Comment 3•1 year ago
|
||
Mozilla code is using RUSTC_BOOTSTRAP to access unstable features, so it explicitly opts out of any stability guarantees.
Working on this, for now the workarounds are either:
- Build using rust 1.77.2
- add "ac_add_options --disable-rust-simd" to your mozconfig.
| Reporter | ||
Comment 5•1 year ago
|
||
--disable-rust-simd results in configure failing for me:
KeyError: 'Variable RUST_TEST_FEATURES assigned an empty value.'
Comment 6•1 year ago
|
||
You can try this one. We will not putting it in the 2.53 branch because we still support older macOS versions with rust 1.73.
| Reporter | ||
Comment 7•1 year ago
|
||
Comment on attachment 9403797 [details]
1882209-127a1.zip
thanks, after some manual fiddling with the patch (some licences files arent created properly so cargo checksum fails) i've been able to build 2.53.18.2 with rust 1.78 here.
Comment 8•1 year ago
|
||
Patch was done against 2.53.19b1pre so probably some fallout as stated.
Comment 10•1 year ago
|
||
As stated this patch will not go into the 2.53 production branch.We will use Rust 1.73.0 for all our builds for the forseeable future.
Rust 1.74 dropped support for macOS 10.11 which we still support.
Rust 1.78 dropped support for Windows 7 and 8.1. It added a tier 3 compile target for these versions but this is currently more or less unsupported and untested. Server 2012 R2 is still supported with ESU patches for about 2 years and would be affected by this too.
If you need a rebased version for a later release andcan't do i yourself drop me an email.
Comment 11•1 year ago
|
||
This is the minimal change, making it working for me (change in the rust package and one additional dependency).
@frg, is there a chance that this wouldn't work with the older rust, that you're using for building/backwards compatibillity?
Comment 12•1 year ago
•
|
||
Updated patch for 2.53.20. Only tested under Windows with 1.83.0. It must not be applied if you use 1.73.0.
| Reporter | ||
Comment 13•1 year ago
|
||
thanks :frg, i've tried this patch on OpenBSD with rust 1.83 (latest, and we only ship one version) and 2.53.20beta, hoping it would fix the failure reported in https://bugzilla.mozilla.org/show_bug.cgi?id=1939376#c3, and sadly num-traits and any_all_workaround still fail to build:
error: failed to run custom build command for `any_all_workaround v0.1.0 (https://github.com/hsivonen/any_all_workaround?rev=7fb1b7034c9f
172aade21ee1c8554e8d8a48af80#7fb1b703)`
note: To improve backtraces for build dependencies, set the CARGO_PROFILE_RELEASE_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation.
Caused by:
process didn't exit successfully: `/usr/obj/ports/seamonkey-2.53.20beta1/build-amd64/toolkit/library/release/build/any_all_workaround-9
d48204f8b816f35/build-script-build` (signal: 11, SIGSEGV: invalid memory reference)
warning: build failed, waiting for other jobs to finish...
error: failed to run custom build command for `num-traits v0.2.15`), nsstring, cose(build.rs), semver, unicode-bidi
note: To improve backtraces for build dependencies, set the CARGO_PROFILE_RELEASE_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation.
Caused by:
process didn't exit successfully: `/usr/obj/ports/seamonkey-2.53.20beta1/build-amd64/toolkit/library/release/build/num-traits-e7b57dee1
fa85afe/build-script-build` (signal: 11, SIGSEGV: invalid memory reference)
setting CARGO_PROFILE_RELEASE_BUILD_OVERRIDE_DEBUG=true in the build env doesnt provide a more useful traceback..
i have to admit i dont understand the interaction between all those crates and why the rust code now fails to build in 2.53.20b while 2.53.19 builds with the same rust version , but there's no packed_simd crate anymore in third_party/rust.
Comment 14•1 year ago
|
||
d48204f8b816f35/build-script-build` (signal: 11, SIGSEGV: invalid memory reference) warning: build failed, waiting for other jobs to finish.
This is a compiler failure. Make sure you use 8GB of memory or maybe even 16GB. Eventually needs to be reported to the rust maintainers if this is the rust compiler itself.
Comment 15•1 year ago
|
||
(In reply to Landry Breuil (:gaston) from comment #13)
Caused by:
process didn't exit successfully:/usr/obj/ports/seamonkey-2.53.20beta1/build-amd64/toolkit/library/release/build/any_all_workaround-9 d48204f8b816f35/build-script-build(signal: 11, SIGSEGV: invalid memory reference)
warning: build failed, waiting for other jobs to finish...
the segfault is a consequence of the linker used. MOZ_CARGO_WRAP_LDFLAGS contains "-fuse-ld=bfd" which is wrong on OpenBSD x86_64. It makes the generated build-script binary to segfault on exit(3) (and cargo to abort).
I am currently testing with ./configure --enable-linker=lld and it seems working (build isn't finished).
Could you try if it fixes it on your side too ?
| Reporter | ||
Comment 16•1 year ago
•
|
||
it definitely helps here to force the use of lld, and that seems a regression, because with 2.53.19/python 3.11, without explicitely specifying the linker i got this during configure:
checking for linker... lld
js/src> checking for linker... lld
and now with python3.12/2.53.20beta1:
checking for linker... bfd
with --enable-linker=lld (and more horrors for python 3.12 support, cf bug #1939376) the 2.53.20b1 build finally succeeds \o/
(In reply to Frank-Rainer Grahl (:frg) from comment #14)
d48204f8b816f35/build-script-build` (signal: 11, SIGSEGV: invalid memory reference) warning: build failed, waiting for other jobs to finish.
This is a compiler failure. Make sure you use 8GB of memory or maybe even 16GB. Eventually needs to be reported to the rust maintainers if this is the rust compiler itself.
this is on my mozilla builder where all the ulimits are already maxed out...
Comment 17•1 year ago
|
||
On FreeBSD with python 3.11 and rustc 1.81.0
Using a source tarball of 2.53.20, after applying this patch:
9:30.78 error: failed to load source for dependency any_all_workaround
9:30.78 Caused by:
9:30.79 Unable to update https://github.com/hsivonen/any_all_workaround?rev=7fb1b7034c9f172aade21ee1c8554e8d8a48af80#7fb1b703
9:30.79 Caused by:
9:30.79 failed to update replaced source https://github.com/hsivonen/any_all_workaround?rev=7fb1b7034c9f172aade21ee1c8554e8d8a48af80#7fb1b703
9:30.79 Caused by:
9:30.79 failed to parse manifest at /usr/home/multix/code/seamonkey-2.53.20/third_party/rust/packed_simd/Cargo.toml
9:30.79 Caused by:
9:30.79 virtual manifests must be configured with [workspace]
9:30.80 gmake[4]: *** [/usr/home/multix/code/seamonkey-2.53.20/config/makefiles/rust.mk:241: force-cargo-library-build] Error 101
Comment 18•1 year ago
|
||
The patch had 2 renames in it. Seems the stupid patch program ignored these. Not a problem if you apply it with git am or hg so this might be it.
Replaced the rename with delete/create. Windows build against tarball is ok with it.
Updated•11 months ago
|
Comment 19•5 months ago
|
||
Patch rebased for 2.53.22b1 and final. Tested with Rust 1.90 under Windows.
| Reporter | ||
Comment 20•4 months ago
|
||
thanks a lot :frg, that latest patch applies fine and allows me (altogether with a bunch of other hacks for python 3.12/3.13 support) to build 2.53.22 on OpenBSD with rust 1.90 and rust 1.91.
Description
•