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

deps: backport ICU fix for ARM64 Windows #26090

Closed
wants to merge 1 commit into from

Conversation

jkunkee
Copy link
Contributor

@jkunkee jkunkee commented Feb 14, 2019

For ICU to build as part of Node.js, a change to its object file IMAGE_FILE_MACHINE_TYPE logic is needed. This has been upstreamed as unicode-org/icu#412 and should land in ICU v64.1.

This change backports this fix to ICU 63 in the Node.js tree.

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • commit message follows commit guidelines

@jkunkee
Copy link
Contributor Author

jkunkee commented Feb 14, 2019

Please note that, while I would love this to be this easy, I'm happy to do this another way--like maybe bumping to ICU 64.1 when it comes out.

@richardlau
Copy link
Member

Please note that, while I would love this to be this easy, I'm happy to do this another way--like maybe bumping to ICU 64.1 when it comes out.

I think our builds have a patching mechanism for ICU: https://github.com/nodejs/node/blob/master/tools/icu/README.md

cc @srl295

@jasnell jasnell requested a review from srl295 February 14, 2019 15:58
Copy link
Member

@srl295 srl295 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do not patch the ICU sources directly, as @richardlau pointed out.
copy the full file to node/tools/icu/patches/63/source/tools/toolutil/pkg_genc.cpp and then make a change there. Try it out and it should apply both from command line build, and also (importantly) if you start configure --with-intl=full-icu --download=all so that it re-applies to icu 63 sources.

@refack
Copy link
Contributor

refack commented Feb 14, 2019

Wow, node core has a very diverse and idiosyncratic way of floating patches.

Who volunteeres to document and automate the validation of those 🥴

@srl295
Copy link
Member

srl295 commented Feb 14, 2019

Wow, node core has a very diverse and idiosyncratic way of floating patches.

it's because we build against multiple source ICUs. Anyway, I volunteer to document what I wrote above.

@jkunkee
Copy link
Contributor Author

jkunkee commented Feb 15, 2019

@richardlau - Thanks again for a pointer to process docs.

@srl295 - Thanks for the description of how to add a patch to that folder and the process for testing it. It was straightforward to make the change.

Copy link
Member

@srl295 srl295 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm going to approve, but a minor comment on the commit message (can be fixed at landing):

suggested wording:

ICU Issue: https://unicode-org.atlassian.net/browse/ICU-20382
ICU Commit: unicode-org/icu@11e538b

something like that.

@srl295 srl295 added the i18n-api Issues and PRs related to the i18n implementation. label 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. This change backports the ICU 64.1 fix for
this.

ICU Issue: https://unicode-org.atlassian.net/browse/ICU-20382
ICU Commit: unicode-org/icu@11e538b
@jkunkee
Copy link
Contributor Author

jkunkee commented Feb 20, 2019

I updated the commit message as requested so it's less trouble during landing. Also, the CI run scheduled for Linux has been queued for 6 days, so this push will hopefully successfully run that gauntlet.

@richardlau
Copy link
Member

@richardlau richardlau added the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Feb 20, 2019
@richardlau
Copy link
Member

Landed in dec3dad.

@richardlau richardlau closed this Feb 21, 2019
richardlau pushed a commit that referenced this pull request Feb 21, 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. This change backports the ICU 64.1 fix for
this.

ICU Issue: https://unicode-org.atlassian.net/browse/ICU-20382
ICU Commit: unicode-org/icu@11e538b

PR-URL: #26090
Reviewed-By: Steven R Loomis <srloomis@us.ibm.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
addaleax pushed a commit that referenced this pull request Feb 21, 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. This change backports the ICU 64.1 fix for
this.

ICU Issue: https://unicode-org.atlassian.net/browse/ICU-20382
ICU Commit: unicode-org/icu@11e538b

PR-URL: #26090
Reviewed-By: Steven R Loomis <srloomis@us.ibm.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
@BridgeAR BridgeAR mentioned this pull request Feb 26, 2019
rvagg pushed a commit that referenced this pull request Feb 28, 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. This change backports the ICU 64.1 fix for
this.

ICU Issue: https://unicode-org.atlassian.net/browse/ICU-20382
ICU Commit: unicode-org/icu@11e538b

PR-URL: #26090
Reviewed-By: Steven R Loomis <srloomis@us.ibm.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
@jkunkee jkunkee deleted the arm64-icu-backport branch March 8, 2019 02:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
author ready PRs that have at least one approval, no pending requests for changes, and a CI started. i18n-api Issues and PRs related to the i18n implementation.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants