Allow XZ decompression of both ARM and x86 BCJs on all platforms
Categories
(Toolkit :: Application Update, task, P2)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox123 | --- | fixed |
People
(Reporter: bytesized, Assigned: bytesized)
References
Details
(Whiteboard: [fidedi-ope])
Attachments
(1 file)
I just got bitten by accidentally generating a (test) MAR with x86 BCJs and then discovering that when the relevant tests ran on Apple silicon, they failed with an UNEXPECTED_XZ_ERROR (link). It looks like this sort of problem has bitten us before in production (Bug 1677550).
I believe that it is possible to compile the decompression code in the updater such that any platform can successfully decompress MARs using x86 or ARM BCJs. Assuming that this works properly, an expected side effect will be a binary size increase. If, as I suspect, the increase is fairly small, I think that there is no harm in making the change and it has the potential to prevent problems similar to the ones described above from happening again.
| Assignee | ||
Updated•2 years ago
|
Updated•2 years ago
|
Comment 1•2 years ago
|
||
bhearsum: glandium: any reason not to enable at least X86 and ARM BCJs in xz-embedded in Firefox? It's used in mozglue for the linker and the updater.
Comment 2•2 years ago
|
||
For the updater, probably, but the linker actually doesn't need it at all anymore, so I'd rather strip the XZ support entirely from there. I'll do that in a separate bug.
Comment 3•2 years ago
|
||
(In reply to Nick Alexander :nalexander [he/him] from comment #1)
bhearsum: glandium: any reason not to enable at least X86 and ARM BCJs in
xz-embeddedin Firefox? It's used inmozgluefor the linker and theupdater.
I can't think of any reason not to.
| Assignee | ||
Comment 4•2 years ago
|
||
It looks to me like the patch I've got works. In this Try job I put the patch on top of a patch that replaced a test MAR with one that had x86 BCJs, causing it to normally fail on Apple silicon. But with this patch, the tests run successfully on Apple silicon.
So I believe that this patch is correct. I'll go ahead and put it up for review.
| Assignee | ||
Comment 5•2 years ago
|
||
Without this change, MARs compressed with (for example) x86 BCJ filters fail to decompress on Apple Silicon. This change isn't strictly necessary in that we are not planning to need this support, but it has the potential to prevent problems in testing and production. The consequences of turning it on should be minimal.
Comment 7•2 years ago
|
||
| bugherder | ||
Description
•