Open Bug 1480548 (aarch64-windows) Opened 2 years ago Updated 3 days ago

enable building Firefox on aarch64 windows

Categories

(Firefox Build System :: General, enhancement)

ARM64
Windows
enhancement
Not set
normal

Tracking

(Not tracked)

People

(Reporter: froydnj, Unassigned)

References

(Depends on 20 open bugs, Blocks 1 open bug)

Details

AArch64 Windows is a thing.  We should make Firefox run on it.
Depends on: 1480549
Depends on: 1480550
Depends on: 1480552
Depends on: 1480553
Depends on: 1480558
Depends on: 1480577
Depends on: 1480578
Depends on: 1480581
Depends on: 1480587
Depends on: 1480588
Depends on: 1480590
Depends on: 1480592
Depends on: 1480594
Depends on: 1480595
Depends on: 1480598
Depends on: 1480652
Depends on: 1480732
Depends on: 1480915
Depends on: 1481504
Depends on: 1481505
Depends on: 1481512
Depends on: 1481513
Depends on: 1481515
Depends on: 1481518
Depends on: 1481534
The necessary Rust support is landing in https://github.com/rust-lang/rust/pull/53173.  Thanks to Alex Crichton for writing it and pushing it upstream!

Compiling Rust crates with that preliminary support is another story.  The current sticking point is winapi-rs, which doesn't have any aarch64 support at the moment.  I've opened https://github.com/retep998/winapi-rs/issues/659 to start discussing that.
Depends on: 1481864
Depends on: 1482238
Depends on: 1482257
Depends on: 1482294
Depends on: 1483344
Depends on: 1484184
Depends on: 1484835
Depends on: 1477680
Depends on: 1485367
Depends on: 1485696
Depends on: 1485701
Depends on: 1485716
Depends on: 1485751
Depends on: 1485765
Depends on: 1485767
Depends on: 1486028
Depends on: 1486038
Depends on: 1486039
Depends on: 1486040
Depends on: 1486055
Depends on: 1486056
Depends on: 1486068
Depends on: 1486478
Depends on: 1485946
Depends on: 1486512
Depends on: 1486859
Depends on: 1486882
Depends on: 1486898
Depends on: 1486905
Depends on: 1486906
Depends on: 1486925
Depends on: 1487109
Depends on: 1487122
Depends on: 1488763
Depends on: 1489601
Depends on: 1494384
Depends on: 1494386
Depends on: 1494389
Depends on: 1494392
Depends on: 1494503
Depends on: 1494509
Depends on: 1494511
Depends on: 1494712
Depends on: 1494717
Status update: Firefox builds for ARM64 (yay!), but crashes immediately on startup (boo!)

I've attempted to distill everything needed to build things not-on-my-machine into https://github.com/froydnj/FF-arm64  Following the instructions therein *should* enable somebody to build on their machine.

dmajor is going to start debugging things and will ideally resolve the crashes in short order. =D

The remaining bugs at this point do not need to be solved for the MVP.

The non-exhaustive next steps are, in no particular order:

1. Debug startup problems.
2. Integrate Microsoft's patches for libffi so ctypes starts working.
3. Make the whole thing buildable on infra, which implies changing a lot of things about our Windows builds.
4. Fixing any compilation issues with vendored third-party code (e.g. webrtc).
5. Adding in AArch64-specific optimizations to vendored third-party code where applicable.
6. Reactivate any disabled components (e.g. sandboxing).
7. Make aarch64-pc-windows-msvc stdlib available with Nightly rustc (https://github.com/rust-lang/rust/issues/53864), so people don't have to build their own rustc to get the stdlib.
8. ...
Oh, we should also make sure that the JIT is disabled-by-default on AArch64 Windows.
I guess we'd also need to create atomicops_internals_aarch64_msvc.h or using the mutex impl instead of reusing the x86 one.
Ref: bug 1480732 comment #7
Depends on: 1495871
Depends on: 1495874
Depends on: 1495878
Depends on: 1495879
Depends on: 1496173
Depends on: 1496588
Depends on: 1496591
Depends on: 1497583
Depends on: 1501269
Depends on: 1501301
Depends on: 1502095
Depends on: 1502421
Depends on: 1502964
Depends on: 1503366
Depends on: 1503992
Depends on: 1504016
Depends on: 1504017
Depends on: 1505819
Depends on: 1506138
Depends on: 1508710
Depends on: 1512822
Depends on: 1513287
Depends on: 1513293
Depends on: 1513313
Depends on: 1514085
Depends on: 1514407
Depends on: 1514414
Depends on: 1514988
Depends on: aarch64-eme
Depends on: 1515210
Depends on: 1513725
Depends on: arm64-windows-bugs
No longer depends on: 1513725
Depends on: 1515528
No longer depends on: arm64-windows-bugs
Depends on: 1516214
Depends on: 1516543
No longer depends on: 1516543
No longer depends on: 1515387
Depends on: 1520686
Depends on: 1521944
Depends on: 1522507
Depends on: 1525066
Depends on: 1486994
Depends on: 1525069
No longer depends on: 1486994
Depends on: 1525111
Depends on: 1525630
Depends on: 1526052
Depends on: 1526383
Depends on: 1526737
Depends on: 1527011
Depends on: 1527471
Depends on: 1530507
Depends on: 1531689
Depends on: 1531537
Depends on: 1532470
Depends on: 1533071
Depends on: 1288219
Depends on: 1526982
Depends on: 1541081
Depends on: 1542827
Depends on: 1598286
Depends on: 1639315
Depends on: 1652032
You need to log in before you can comment on or make changes to this bug.