-
Notifications
You must be signed in to change notification settings - Fork 6.4k
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
[pcre2] Disable JIT when targeting iOS #37059
Merged
Merged
Conversation
This file contains 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
WangWeiLin-MV
added
category:port-bug
The issue is with a library, which is something the port should already support
category:community-triplet
A PR or issue related to community triplets not officially validated by the vcpkg team.
labels
Mar 1, 2024
P.S. According to the comment PCRE2Project/pcre2#212 (comment) from upstream, |
WangWeiLin-MV
approved these changes
Mar 4, 2024
JonLiu1993
approved these changes
Mar 4, 2024
WangWeiLin-MV
added
the
info:reviewed
Pull Request changes follow basic guidelines
label
Mar 4, 2024
fwcd
added a commit
to fwcd/vcpkg
that referenced
this pull request
Mar 5, 2024
PCRE2 JIT compilation is unsupported on iOS as per https://codereview.qt-project.org/c/qt/qtbase/+/204514 Since our Qt port uses the separately built `pcre2` port (instead of the bundled version): https://github.com/microsoft/vcpkg/blob/3f966cf6a8654a0bc067738bcb95d489e197ad68/ports/qtbase/portfile.cmake#L315 ...the linked Qt fix doesn't apply to us, so we'll have to disable it explicitly. ### Background I ran into this today while debugging a crash of a Qt app built for the iOS simulator (using vcpkg-built libraries): <details> <summary>Crash Log</summary> ``` Exception Type: EXC_BAD_ACCESS (SIGBUS) Exception Subtype: KERN_PROTECTION_FAILURE at 0x000000010dbb8008 Exception Codes: 0x0000000000000002, 0x000000010dbb8008 VM Region Info: 0x10dbb8008 is in 0x10dbb8000-0x10dbc8000; bytes after start: 8 bytes before end: 65527 REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL ColorSync 10dbb0000-10dbb8000 [ 32K] r--/r-- SM=PRV ---> VM_ALLOCATE 10dbb8000-10dbc8000 [ 64K] rwx/rwx SM=PRV GAP OF 0x38000 BYTES MALLOC_TINY 10dc00000-10dd00000 [ 1024K] rw-/rwx SM=PRV Termination Reason: SIGNAL 10 Bus error: 10 Terminating Process: exc handler [98229] Triggered by Thread: 0 Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 Mixxx 0x107b8ec24 sljit_malloc_exec + 236 1 Mixxx 0x107b8ea80 pcre2_jit_compile_16 + 160 2 Mixxx 0x104ec52d4 QRegularExpressionPrivate::compilePattern() + 252 3 Mixxx 0x104ec6058 QRegularExpression::isValid() const + 24 4 Mixxx 0x104e30194 QtPrivate::contains(QStringView, QString const*, QRegularExpression const&, QRegularExpressionMatch*) + 52 5 Mixxx 0x10599a8ec QIOSScreen::QIOSScreen(UIScreen*) + 1060 6 Mixxx 0x105998850 QIOSIntegration::initialize() + 272 7 Mixxx 0x104d8165c QCoreApplicationPrivate::init() + 1640 8 Mixxx 0x1076c80e0 QGuiApplicationPrivate::init() + 60 9 Mixxx 0x105d9d20c QApplicationPrivate::init() + 24 10 Mixxx 0x105d9d1e0 QApplication::QApplication(int&, char**, int) + 140 ``` </details> This fixes the problem. ### Checklist - [x] Changes comply with the [maintainer guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md). - [x] SHA512s are updated for each updated download (not applicable). - [x] The "supports" clause reflects platforms that may be fixed by this new version. - [x] Any fixed [CI baseline](https://github.com/microsoft/vcpkg/blob/master/scripts/ci.baseline.txt) entries are removed from that file (not applicable). - [x] Any patches that are no longer applied are deleted from the port's directory (not applicable). - [x] The version database is fixed by rerunning `./vcpkg x-add-version --all` and committing the result. - [x] Only one version is added to each modified port's versions file.
JoergAtGithub
added a commit
to mixxxdj/vcpkg
that referenced
this pull request
Mar 6, 2024
[pcre2] Disable JIT when targeting iOS (microsoft#37059)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
category:community-triplet
A PR or issue related to community triplets not officially validated by the vcpkg team.
category:port-bug
The issue is with a library, which is something the port should already support
info:reviewed
Pull Request changes follow basic guidelines
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.
PCRE2 JIT compilation is unsupported on iOS as per https://codereview.qt-project.org/c/qt/qtbase/+/204514
Since our Qt port uses the separately built
pcre2
port (instead of the bundled version):vcpkg/ports/qtbase/portfile.cmake
Line 315 in 3f966cf
...the linked Qt fix doesn't apply to us, so we'll have to disable it explicitly.
Background
I ran into this today while debugging a crash of a Qt app built for the iOS simulator (using vcpkg-built libraries):
Crash Log
This fixes the problem.
Checklist
./vcpkg x-add-version --all
and committing the result.