Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Minimum ARM64 support for Window #1130

Open
yukawa opened this issue Dec 3, 2024 · 0 comments
Open

Minimum ARM64 support for Window #1130

yukawa opened this issue Dec 3, 2024 · 0 comments
Assignees

Comments

@yukawa
Copy link
Collaborator

yukawa commented Dec 3, 2024

Description

This follows up to the following issue.

The goal here is to introduce an official ARM64 support for Windows at the minimal implementation and maintenance cost.

  • Make the existing installer (MSI) file compatible with both X64 and ARM64 machines rather than building two different installer files.
  • Build only the TIP file as an ARM64 executable. Rely on X64 emulation for other executables on ARM64 environment.

Here are how TIP files will be reorganized.

  • mozc_tip_arm64.dll: newly introduced. build as an ARM64 executable
  • mozc_tip_x64.dll: renamed from mozc_tip64.dll
  • mozc_tip_x86.dll: renamed from mozc_tip32.dll
  • mozc_tip_shim_arm64.dll: newly introduced. build as an ARM64X forwarder DLL towards mozc_tip_arm64.dll and mozc_tip_x64.dll. installed only on ARM64 machines.
  • mozc_tip_shim_x64.dll: newly introduced. build as an X64 forwarder DLL towards mozc_tip_x64.dll. installed only on X64 machines.

Version or commit-id

006ed69

Environment

  • OS: Windows 11 24H2
yukawa added a commit to yukawa/mozc that referenced this issue Dec 3, 2024
The current implementation of

  ProgramFilesX86Cache::TryProgramFilesPath

is unnecessarily complex. We can always use CSIDL_PROGRAM_FILESX86 not
only within 64-bit processes but also within 32-bit processes.

There must be no observable behavior change in this commit.

This is a preparation to build Mozc as an ARM64 executable (google#1130).

See google#1086 for how and when we can stop relying on this historical
installation location.
yukawa added a commit to yukawa/mozc that referenced this issue Dec 3, 2024
This commit removes the dependency on platform macros such as _M_X64 and
_M_IX86 from tip_text_service.cc.

There must be no change in the final artifacts.

This is a preparation to build Mozc for ARM64 (google#1130).
yukawa added a commit to yukawa/mozc that referenced this issue Dec 3, 2024
This follows up to my previous commit [1] for google#835.

This option (/CETCOMPAT) is not compatible with ARM64 builds.

As a preparation to build Mozc executables for ARM64 (google#1130) let's
specify it in 'x86_Base' and 'x64_Base' instead of globally defining it.

There must be no change in the final artifacts.

 [1]: a0133fb
@yukawa yukawa self-assigned this Dec 3, 2024
yukawa added a commit to yukawa/mozc that referenced this issue Dec 4, 2024
This commit removes the dependency on platform macros such as _M_X64 and
_M_IX86 from tip_text_service.cc.

There must be no change in the final artifacts.

This is a preparation to build Mozc for ARM64 (google#1130).
hiroyuki-komatsu pushed a commit that referenced this issue Dec 4, 2024
This follows up to my previous commit [1] for #835.

This option (/CETCOMPAT) is not compatible with ARM64 builds.

As a preparation to build Mozc executables for ARM64 (#1130) let's
specify it in 'x86_Base' and 'x64_Base' instead of globally defining it.

There must be no change in the final artifacts.

 [1]: a0133fb

PiperOrigin-RevId: 702630613
hiroyuki-komatsu pushed a commit that referenced this issue Dec 4, 2024
The current implementation of

  ProgramFilesX86Cache::TryProgramFilesPath

is unnecessarily complex. We can always use CSIDL_PROGRAM_FILESX86 not
only within 64-bit processes but also within 32-bit processes.

There must be no observable behavior change in this commit.

This is a preparation to build Mozc as an ARM64 executable (#1130).

See #1086 for how and when we can stop relying on this historical
installation location.

PiperOrigin-RevId: 702632385
yukawa added a commit to yukawa/mozc that referenced this issue Dec 4, 2024
As a preparation to build Mozc for ARM64 in Windows (google#1130), this commit
aims to simplify UpdateEnvironmentFilesForWindows in build_mozc.py so
that we can tweak environment file for ARM64 build configurations in a
subsequent commit easily.

This is still a mechanical code clean up. There must be no difference
in the final artifacts.
hiroyuki-komatsu pushed a commit that referenced this issue Dec 7, 2024
This commit removes the dependency on platform macros such as _M_X64 and
_M_IX86 from tip_text_service.cc.

There must be no change in the final artifacts.

This is a preparation to build Mozc for ARM64 (#1130).

PiperOrigin-RevId: 703735488
hiroyuki-komatsu pushed a commit that referenced this issue Dec 7, 2024
As a preparation to build Mozc for ARM64 in Windows (#1130), this commit
aims to simplify UpdateEnvironmentFilesForWindows in build_mozc.py so
that we can tweak environment file for ARM64 build configurations in a
subsequent commit easily.

This is still a mechanical code clean up. There must be no difference
in the final artifacts.

PiperOrigin-RevId: 703739072
yukawa added a commit to yukawa/mozc that referenced this issue Dec 15, 2024
As a preparation to build Mozc for ARM64 in Windows (google#1130), this commit
demonstrates that it is technically possible for us to build
'mozc_tip64.dll' as an ARM64 DLL with GYP even though GYP itself does
not officially support it.

With this commit you need to install the following additional Visual
Studio components even when you do not build Mozc for ARM64 Windows.

  * Microsoft.VisualStudio.Component.VC.Redist.14.Latest
  * Microsoft.VisualStudio.Component.VC.ATL
  * Microsoft.VisualStudio.Component.VC.Tools.x86.x64
  * Microsoft.VisualStudio.Component.VC.ATL.ARM64
  * Microsoft.VisualStudio.Component.VC.Tools.ARM64

Note that 'mozc_tip64.dll' for ARM64 will be built only when explicitly
specified in 'build_mozc.py build'. There must be no change in the final
artifacts when just building the installer package.

Note also that we still need to build ARM64X DLL to actually support
ARM64 Windows environment.
yukawa added a commit to yukawa/mozc that referenced this issue Dec 16, 2024
As a preparation to build Mozc for ARM64 in Windows (google#1130), this commit
demonstrates that it is technically possible for us to build
'mozc_tip64.dll' as an ARM64 DLL with GYP even though GYP itself does
not officially support it.

With this commit you need to install the following additional Visual
Studio components even when you do not build Mozc for ARM64 Windows.

  * Microsoft.VisualStudio.Component.VC.Redist.14.Latest
  * Microsoft.VisualStudio.Component.VC.ATL
  * Microsoft.VisualStudio.Component.VC.Tools.x86.x64
  * Microsoft.VisualStudio.Component.VC.ATL.ARM64
  * Microsoft.VisualStudio.Component.VC.Tools.ARM64

Note that 'mozc_tip64.dll' for ARM64 will be built only when explicitly
specified in 'build_mozc.py build'. There must be no change in the final
artifacts when just building the installer package.

Note also that we still need to build ARM64X DLL to actually support
ARM64 Windows environment.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant