ICU-20382 ICU4C: pkgdata and genccode support ARM32 but not ARM64 on Windows#412
Merged
jefgen merged 1 commit intounicode-org:masterfrom Feb 11, 2019
Merged
Conversation
…Windows platforms.
axelandrejs
approved these changes
Feb 9, 2019
2 tasks
jkunkee
added a commit
to jkunkee/node
that referenced
this pull request
Feb 15, 2019
ICU 63 as ingested by Node.js does not quite support ARM64 Windows because its OBJ file IMAGE_FILE_MACHINE_TYPE field logic defaults to x86 instead of Unknown. A fix for this has been merged upstream for ICU 64.1: unicode-org/icu#412 This commit backports this change.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The tools
pkgdataandgenccodeon Windows currently support producing ARM 32-bit objects, but not ARM 64-bit objects.However, when building the data .obj files for ARM64, the image file type doesn't actually need to be set.
We can use the unknown type,
IMAGE_FILE_MACHINE_UNKNOWN, since they are data only obj files.(This is what is currently used for AMD64 (x64) architecture.)
We can use this approach to simply the code somewhat, which will also enable support for ARM64 as well.
(Thanks to Jon Kunkee for reporting this bug.)
Note: Unfortunately, the variable name decoration/mangling is different on x86, which means we can't use the UNKNOWN type for all architectures though, and must keep the special case for x86.
Checklist