Uh oh!
There was an error while loading. Please reload this page.
[v20.x] deps: V8: backport build fixes for Xcode 16.3 - #58342
Closed
Bo98 wants to merge 3 commits into
Closed
Conversation
nodejs-github-bot
commented
May 15, 2025
Collaborator
Review requested:
|
marco-ippolito
approved these changes
May 15, 2025
mertcanaltin
approved these changes
May 15, 2025
Member
I confirm this PR fixes the compilation on my machine: Currently the CI for v20.x is broken so errors are unrelated |
marco-ippolitoforce-pushed
the
v20.x-xcode16.3
branch
from
June 3, 2025 13:32
a56d782 to
42c8a36Comparemarco-ippolito
approved these changes
Jun 3, 2025
nodejs-github-bot
commented
Jun 4, 2025
Collaborator
nodejs-github-bot
commented
Jun 4, 2025
Collaborator
nodejs-github-bot
commented
Jun 4, 2025
Collaborator
nodejs-github-bot
commented
Jun 4, 2025
Collaborator
Author
CI probably needs a cherry-pick of 996a774 |
nodejs-github-bot
commented
Jun 5, 2025
Collaborator
Author
(and 8287f67 - I initially missed that there's two tests failing) |
Member
please rebase from v20.x-staging |
Original commit message: [zlib][build] Remove fdopen #defines in zutil.h. The latest version of Clang changed what macros it predefines on Apple targets, causing errors about predefined macros in zlib. See: madler/zlib@4bd9a71 Bug: 1519899 Change-Id: Ie75ef4078f2c86d89ba6c036ddd13e768a40ccbb Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5237020 Reviewed-by: Adenilson Cavalcanti <cavalcantii@chromium.org> Commit-Queue: Hans Wennborg <hans@chromium.org> Cr-Commit-Position: refs/heads/main@{#1253252} NOKEYCHECK=True GitOrigin-RevId: 2f39ac8d0a414dd65c0e1d5aae38c8f97aa06ae9 Refs: https://chromium.googlesource.com/chromium/src/third_party/zlib/+/646b7f569718921d7d4b5b8e22572ff6c76f2596
Original commit message: Define UChar as char16_t We used to have UChar defined as uint16_t which does not go along with STL these days if you try to have an std::basic_string<> of it, as there are no standard std::char_traits<> specialization for uint16_t. This switches UChar to char16_t where practical, introducing a few compatibility shims to keep CL size small, as (1) this would likely have to be back-ported and (2) crdtp extensively uses uint16_t for wide chars. Bug: b:296390693 Change-Id: I66a32d8f0050915225b187de56896c26dd76163d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4789966 Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Auto-Submit: Andrey Kosyakov <caseq@chromium.org> Cr-Commit-Position: refs/heads/main@{#89559} Refs: v8/v8@182d9c0
Original commit message: Fix build issue, remove unneeded include uchar.h. Follow the conversation on: https://groups.google.com/g/v8-dev/c/nsbshwlmP3c. The `uchar.h` include is not necessary. It was added to get the definition of char16_t but that's an intrinsic type in C++. Change-Id: I0aaa11dba0be3ccad15b9e421f8bae71450d443b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4823404 Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Eric Leese <leese@chromium.org> Reviewed-by: Eric Leese <leese@chromium.org> Cr-Commit-Position: refs/heads/main@{#89787} Refs: v8/v8@1a3ecc2 PR-URL: nodejs#49639 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
marco-ippolito
approved these changes
Jun 5, 2025
nodejs-github-bot
commented
Jun 5, 2025
Collaborator
nodejs-github-bot
commented
Jun 5, 2025
Collaborator
nodejs-github-bot
commented
Jun 5, 2025
Collaborator
marco-ippolito
commented
Jun 5, 2025
Member
Landed in ff210ca7f3f9...7b142892c3ed |
marco-ippolito pushed a commit
that referenced
this pull request
Jun 5, 2025
Original commit message: [zlib][build] Remove fdopen #defines in zutil.h. The latest version of Clang changed what macros it predefines on Apple targets, causing errors about predefined macros in zlib. See: madler/zlib@4bd9a71 Bug: 1519899 Change-Id: Ie75ef4078f2c86d89ba6c036ddd13e768a40ccbb Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5237020 Reviewed-by: Adenilson Cavalcanti <cavalcantii@chromium.org> Commit-Queue: Hans Wennborg <hans@chromium.org> Cr-Commit-Position: refs/heads/main@{#1253252} NOKEYCHECK=True GitOrigin-RevId: 2f39ac8d0a414dd65c0e1d5aae38c8f97aa06ae9 Refs: https://chromium.googlesource.com/chromium/src/third_party/zlib/+/646b7f569718921d7d4b5b8e22572ff6c76f2596 PR-URL: #58342 Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
marco-ippolito pushed a commit
that referenced
this pull request
Jun 5, 2025
Original commit message: Define UChar as char16_t We used to have UChar defined as uint16_t which does not go along with STL these days if you try to have an std::basic_string<> of it, as there are no standard std::char_traits<> specialization for uint16_t. This switches UChar to char16_t where practical, introducing a few compatibility shims to keep CL size small, as (1) this would likely have to be back-ported and (2) crdtp extensively uses uint16_t for wide chars. Bug: b:296390693 Change-Id: I66a32d8f0050915225b187de56896c26dd76163d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4789966 Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Auto-Submit: Andrey Kosyakov <caseq@chromium.org> Cr-Commit-Position: refs/heads/main@{#89559} Refs: v8/v8@182d9c0 PR-URL: #58342 Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
marco-ippolito pushed a commit
that referenced
this pull request
Jun 5, 2025
Original commit message: Fix build issue, remove unneeded include uchar.h. Follow the conversation on: https://groups.google.com/g/v8-dev/c/nsbshwlmP3c. The `uchar.h` include is not necessary. It was added to get the definition of char16_t but that's an intrinsic type in C++. Change-Id: I0aaa11dba0be3ccad15b9e421f8bae71450d443b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4823404 Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Eric Leese <leese@chromium.org> Reviewed-by: Eric Leese <leese@chromium.org> Cr-Commit-Position: refs/heads/main@{#89787} Refs: v8/v8@1a3ecc2 PR-URL: #49639 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> PR-URL: #58342 Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Merged
marco-ippolito pushed a commit
that referenced
this pull request
Jun 10, 2025
Original commit message: [zlib][build] Remove fdopen #defines in zutil.h. The latest version of Clang changed what macros it predefines on Apple targets, causing errors about predefined macros in zlib. See: madler/zlib@4bd9a71 Bug: 1519899 Change-Id: Ie75ef4078f2c86d89ba6c036ddd13e768a40ccbb Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5237020 Reviewed-by: Adenilson Cavalcanti <cavalcantii@chromium.org> Commit-Queue: Hans Wennborg <hans@chromium.org> Cr-Commit-Position: refs/heads/main@{#1253252} NOKEYCHECK=True GitOrigin-RevId: 2f39ac8d0a414dd65c0e1d5aae38c8f97aa06ae9 Refs: https://chromium.googlesource.com/chromium/src/third_party/zlib/+/646b7f569718921d7d4b5b8e22572ff6c76f2596 PR-URL: #58342 Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
marco-ippolito pushed a commit
that referenced
this pull request
Jun 10, 2025
Original commit message: Define UChar as char16_t We used to have UChar defined as uint16_t which does not go along with STL these days if you try to have an std::basic_string<> of it, as there are no standard std::char_traits<> specialization for uint16_t. This switches UChar to char16_t where practical, introducing a few compatibility shims to keep CL size small, as (1) this would likely have to be back-ported and (2) crdtp extensively uses uint16_t for wide chars. Bug: b:296390693 Change-Id: I66a32d8f0050915225b187de56896c26dd76163d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4789966 Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Auto-Submit: Andrey Kosyakov <caseq@chromium.org> Cr-Commit-Position: refs/heads/main@{#89559} Refs: v8/v8@182d9c0 PR-URL: #58342 Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
marco-ippolito pushed a commit
that referenced
this pull request
Jun 10, 2025
Original commit message: Fix build issue, remove unneeded include uchar.h. Follow the conversation on: https://groups.google.com/g/v8-dev/c/nsbshwlmP3c. The `uchar.h` include is not necessary. It was added to get the definition of char16_t but that's an intrinsic type in C++. Change-Id: I0aaa11dba0be3ccad15b9e421f8bae71450d443b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4823404 Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Eric Leese <leese@chromium.org> Reviewed-by: Eric Leese <leese@chromium.org> Cr-Commit-Position: refs/heads/main@{#89787} Refs: v8/v8@1a3ecc2 PR-URL: #49639 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> PR-URL: #58342 Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
marco-ippolito pushed a commit
that referenced
this pull request
Jun 11, 2025
Original commit message: [zlib][build] Remove fdopen #defines in zutil.h. The latest version of Clang changed what macros it predefines on Apple targets, causing errors about predefined macros in zlib. See: madler/zlib@4bd9a71 Bug: 1519899 Change-Id: Ie75ef4078f2c86d89ba6c036ddd13e768a40ccbb Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5237020 Reviewed-by: Adenilson Cavalcanti <cavalcantii@chromium.org> Commit-Queue: Hans Wennborg <hans@chromium.org> Cr-Commit-Position: refs/heads/main@{#1253252} NOKEYCHECK=True GitOrigin-RevId: 2f39ac8d0a414dd65c0e1d5aae38c8f97aa06ae9 Refs: https://chromium.googlesource.com/chromium/src/third_party/zlib/+/646b7f569718921d7d4b5b8e22572ff6c76f2596 PR-URL: #58342 Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
marco-ippolito pushed a commit
that referenced
this pull request
Jun 11, 2025
Original commit message: Define UChar as char16_t We used to have UChar defined as uint16_t which does not go along with STL these days if you try to have an std::basic_string<> of it, as there are no standard std::char_traits<> specialization for uint16_t. This switches UChar to char16_t where practical, introducing a few compatibility shims to keep CL size small, as (1) this would likely have to be back-ported and (2) crdtp extensively uses uint16_t for wide chars. Bug: b:296390693 Change-Id: I66a32d8f0050915225b187de56896c26dd76163d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4789966 Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Auto-Submit: Andrey Kosyakov <caseq@chromium.org> Cr-Commit-Position: refs/heads/main@{#89559} Refs: v8/v8@182d9c0 PR-URL: #58342 Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
marco-ippolito pushed a commit
that referenced
this pull request
Jun 11, 2025
Original commit message: Fix build issue, remove unneeded include uchar.h. Follow the conversation on: https://groups.google.com/g/v8-dev/c/nsbshwlmP3c. The `uchar.h` include is not necessary. It was added to get the definition of char16_t but that's an intrinsic type in C++. Change-Id: I0aaa11dba0be3ccad15b9e421f8bae71450d443b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4823404 Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Eric Leese <leese@chromium.org> Reviewed-by: Eric Leese <leese@chromium.org> Cr-Commit-Position: refs/heads/main@{#89787} Refs: v8/v8@1a3ecc2 PR-URL: #49639 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> PR-URL: #58342 Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
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 freeto 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.
Node 20.19.2 currently fails to build from source since Xcode 16.3 (and LLVM Clang 18). This pull request backports three v8 commits that fix the issue:
fdopenis a definition ifTARGET_OS_MACis defined, butfdopenhas never been a definition in the macOS SDK. The latest Clang compiler now definesTARGET_OS_MACglobally, triggering this code and causing a compile error.git-nodedoesn't do backports ofthird_partyrepos so I did this one manuallystd::basic_string<uint16_t>is invalid C++ without a customstd::char_traits. This is now enforced in the latest libc++.All of the above commits are already included in Node 22 and later, hence the 20.x-only PR.