Commit Graph

29 Commits

Author SHA1 Message Date
fwcd
ea6202dc5d
[pcre2] Disable JIT when targeting iOS (#37059)
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):


3f966cf6a8/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.
2024-03-05 02:31:00 -08:00
Theodore Tsirpanis
acc2fb6cce
[pcre2] Fix CMake integration. (#31928)
* Remove dependencies to bzip2 and zlib.

They are used only by pcre2grep which we don't build in the port.

* Fix CMake integration.

The patch has been submitted upstream in PCRE2Project/pcre2#260.

* Add a usage file and use `vcpkg_install_copyright`.

* Bring back patching pcre2.h.

* Bump port version.

* Update version database.

* Fix CRLF damage.

* Fix target capitalization.

* Update version database.

---------

Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2023-09-22 11:35:42 -07:00
Kai Pastor
85ee7ef3cd
[pcre2] Update to 10.42 (#31929)
* [pcre2] Update to 10.42

* CI
2023-06-12 15:57:18 -07:00
talregev
d54600af13
Create JIT as a feature (#31294) 2023-05-11 11:37:21 -07:00
Thomas1664
0641d1be81
[pcre2] Explicitly control dependencies (#27586)
* [pcre2] Explicitly control dependencies

* version

* Fix Windows static

* version

* Fix windows static

* version

* Remove patch

* version

Co-authored-by: Billy O'Neal <bion@microsoft.com>
2022-11-21 08:41:12 -08:00
Kai Pastor
b98afc9f11
[pcre2] Update to 10.40, drop -static suffix (#24505)
* Update to 10.40

* Drop '-static' suffix for MSVC

The suffix breaks pc files. Renaming allowed by maintainer guidelines,
to facilitate downstream usage.

* Update versions
2022-05-02 20:46:25 -07:00
Lars Glud
404819d78f
[Pcre2] Check if files exists before call vcpkg_replace_string. (#22003)
* Check if files exists before call vcpkg_replace_string.

* Update per comments.

Only guard debug.

* Update ports/pcre2/portfile.cmake

Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>

* Bump port-version.

Co-authored-by: GLUD Lars <lars.glud@leica-geosystems.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2021-12-14 10:46:50 -08:00
autoantwort
c53bd66ec2
[pcre2] no absolute paths (#21710) 2021-11-29 17:22:15 -08:00
Cameron Ward
70033dbb31
[vcpkg baseline][pcre2] fix checksum and update to 10.39 (#21248)
* [pcre2] fix checksum

* [pcre2] update to 10.39

* Set static build, format code.

* version

* [pcre2] Add cmake wrapper to use the generated cmake file

* [unicorn-lib] Fix dependency pcre2

* version

* [qt5-base] Fix dependency pcre2

* [pcre2] Fix pcre2-config.cmake

* version

* Re-fix pcre2-config.cmake

* Revert changes about pcre-config.cmake

* version

* remove cmake wrapper

* version

* Fix static name

* version

Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>
2021-11-09 16:29:09 -08:00
Matthias Kuhn
afc6992180
[pcre2] fetch from github (#21193)
* [pcre2] fetch from github

* version
2021-11-05 12:56:10 -07:00
Wolfgang Stöggl
88a341b215
[pcre2] Update to 10.37 (#18547)
- New upstream version 10.37
- Drop patches (fixed upstream):
    pcre2-10.35_add_check_for_Intel_CET.patch
    pcre2-10.35_fix_postfix_for_debug_Windows_builds.patch
    pcre2-10.35_fix-space.patch
- Switch from CONTROL to vcpkg.json
    .\vcpkg format-manifest .\ports\pcre2\CONTROL
2021-06-21 13:30:31 -07:00
Kevin Lu
a4eca5fabc
[libgit2] Devendor bundled dependencies and allow choosing SSL backend (#13074) 2020-10-20 12:23:12 -07:00
Wolfgang Stöggl
a3eee82a38
[pcre2] Fix -mshstk needed with -fcf-protection (#12347)
- Fixes the following error:
  src/sljit/sljitConfigInternal.h:219:2: error:
  #error "-mshstk is needed to compile with -fcf-protection"
- Upstream bug report:
  https://bugs.exim.org/show_bug.cgi?id=2578
- Add patch based on upstream commit:
  https://vcs.pcre.org/pcre2?view=revision&revision=1256
- Fixes #12343
2020-07-13 13:00:43 -07:00
Wolfgang Stöggl
3e615cdb1d
[pcre2] Update to 10.35 (#11754)
- New upstream version 10.35
- Update patches:
  pcre2-10.35_fix-space.patch
  pcre2-10.35_fix-uwp.patch
- Add patch:
  pcre2-10.35_fix_postfix_for_debug_Windows_builds.patch
- Drop patch (fixed upstream):
  fix-arm64-config.patch
- Since 10.35, pkgconfig files are created using CMake
  * fix debug suffix of pkgconfig files under Windows
  * add vcpkg_fixup_pkgconfig()
- Remove bin and debug/bin in case of static build
- Update ci.baseline.txt
  Remove "pcre2:arm-uwp=fail", because arm-uwp passes now
  Add "unicorn-lib:arm-uwp=fail"
2020-07-07 14:54:39 -07:00
Billy O'Neal
3d2a7ca33e
[pcre2] Restore the https://ftp.pcre.org/ mirror in addition to the SourceForge mirrors. (#12233) 2020-07-02 23:52:04 -07:00
Jack·Boos·Yu
a0e0c57f86
[vcpkg] Add vcpkg_from_sourceforge (1/2) (#11899) 2020-06-26 15:06:30 -07:00
alcroito
c5f01e1dee
Add initial iOS support (#6275)
* Add iOS community triplets and toolchain support

Added an iOS toolchain to enable building packages for iOS.
The toolchain is used when a triplet's VCPKG_CMAKE_SYSTEM_NAME is set
to iOS.

To configure which architecture should be built, as well as other
iOS specifics, the following triplet variables can be set:
- VCPKG_TARGET_ARCHITECTURE
- VCPKG_OSX_SYSROOT
- VCPKG_OSX_DEPLOYMENT_TARGET
- VCPKG_OSX_ARCHITECTURES

The following VCPKG_TARGET_ARCHITECTURE values are currently
supported:
 - arm, arm64, x64, x86.

The following VCPKG_OSX_SYSROOT values are currently supported:
 - iphoneos, iphonesimulator, or an absolute path to the device or
   simulator Xcode SDK.

VCPKG_OSX_DEPLOYMENT_TARGET can be set to control the minimum iOS
delopyment target for the built libraries.

CMAKE_OSX_ARCHITECTURES is derived from VCPKG_TARGET_ARCHITECTURE,
so generally it should not be set. In case if someone needs to target
a more specific architecture (like armv7k or arm64e), it can
be set in the triplet via VCPKG_OSX_ARCHITECTURES.

Note that only certain combinations of the architecture and sysroot
will work: simulator SDKs only provide x86-based libraries, etc.

The toolchain also sets CMAKE_SYSTEM_PROCESSOR for certain
configurations, because certain packages (like libpng) depend on the
processor type.

Added 4 community iOS triplets that build static libraries:
- arm-ios, arm64-ios, x86-ios, x64-ios.
The non-arm triplets target the iOS simulator.

The triplets build static libraries because they are easiest to
integrate into an iOS project. Dynamic libraries or frameworks require
code signing on iOS, which complicates integration.

Added heuristics to try and automatically detect what iOS triplet to
use when building your own CMake project (so when a CMake project sets
CMAKE_TOOLCHAIN_FILE to buildsystems/vcpkg.cmake), if no explicit
triplet is provided (VCPKG_TARGET_TRIPLET is undefined).

The heuristic checks for the values of CMAKE_SYSTEM_NAME and
CMAKE_OSX_ARCHITECTURES. Note that for this to work,
CMAKE_OSX_ARCHITECTURES needs to be set before the first project()
call in your CMake project.

Added workaround so find_package finds vcpkg installed packages
when targeting iOS.
This is done by saving / restoring the value of CMAKE_FIND_ROOT_PATH
while also adding the vcpkg package root in the find_package override
macro.
The workaround can be removed once vcpkg upgrades to CMake 3.15.0
or higher where the issue is fixed.

Fixes: #6003

* Fix building libpng and pcre2 targetting iOS

Fixes: #6003
2020-04-15 13:06:55 -07:00
JackBoosY
8445fcce87 [pcre2]Fix uwp build failure. (#8620) 2019-10-29 23:25:56 -07:00
Simon Hausmann
a19151fff1 [pcre2] Fix build with Emscripten/WASM (#7948)
PCRE does not support Just-in-time compilation when targeting
WebAssembly.
2019-09-03 13:37:13 -07:00
pravic
18b029a5e3 [WIP] Add a Homepage URL entry for vcpkg ports (#2933)
* [vcpkg] Add "Homepage" field to the CONTROL files.
2019-06-15 16:54:47 -07:00
Tony Lin
bc4703def1 Update CONTROL
Revert version number since @grdowns already bumps version number
2019-04-11 04:47:12 +00:00
Tony Lin
3e12f3fa57 Update CONTROL
Bump the version in CONTROL file
2019-04-11 04:38:21 +00:00
grdowns
38e473c36c [pcre2] Bump version number 2019-04-10 19:44:34 -07:00
Tony Lin
6166c1509a Enable pcre2:arm64-windows
Update sljitConfigInternal.h for ARM64
2019-04-10 11:21:17 +00:00
LarryIII
78a8de6cf4 [pcre2/caffe2] Fix space issue (#5827)
* [pcre2/caffe2] Fix space issue
2019-03-27 22:02:31 -07:00
Jacob Zhong
f676dbe847 [pcre] fix space issue and add mirror (fix #2751) 2018-02-10 18:50:12 +08:00
Alexander Karatarakis
26516fe485 vcpkg_configure_cmake (and _meson) now embed debug symbols within static libs (/Z7) 2017-09-09 00:12:54 -07:00
codicodi
e4523db1be [pcre2] update to 10.30 2017-08-16 13:10:49 +02:00
codicodi
8b12f81ae2 add pcre2 2017-03-16 00:35:24 +01:00