mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-27 18:31:15 +08:00
[pthreads] support ARM arch and UWP platform (#16348)
* [pthreads] support ARM/UWP * arm: enable macro __PTW32_PROGCTR * uwp: LINK option /APPCONTAINER * uwp: link with 'kernel32', 'windowsapp' * [pthreads] update baseline and port SHA * [pthreads] extract changes to patch * [pthreads] remove pthreads from ci.baseline.txt * [pthreads] separate uwp patch * update ci.baseline.txt for arm/arm64 * [pthreads] unify patch list * update ci.baseline.txt
This commit is contained in:
parent
7d596220f9
commit
b466bd598e
13
ports/pthreads/fix-arm-macro.patch
Normal file
13
ports/pthreads/fix-arm-macro.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/context.h b/context.h
|
||||
index 33294c1..318b689 100644
|
||||
--- a/context.h
|
||||
+++ b/context.h
|
||||
@@ -62,7 +62,7 @@
|
||||
#endif
|
||||
|
||||
#if defined(_ARM_) || defined(ARM) || defined(_M_ARM) || defined(_M_ARM64)
|
||||
-#define PTW32_PROGCTR(Context) ((Context).Pc)
|
||||
+#define __PTW32_PROGCTR(Context) ((Context).Pc)
|
||||
#endif
|
||||
|
||||
#if !defined (__PTW32_PROGCTR)
|
17
ports/pthreads/fix-uwp-linkage.patch
Normal file
17
ports/pthreads/fix-uwp-linkage.patch
Normal file
@ -0,0 +1,17 @@
|
||||
diff --git a/implement.h b/implement.h
|
||||
index 1579376..3a7d29b 100644
|
||||
--- a/implement.h
|
||||
+++ b/implement.h
|
||||
@@ -36,6 +36,12 @@
|
||||
#if !defined(_IMPLEMENT_H)
|
||||
#define _IMPLEMENT_H
|
||||
|
||||
+#if 1 // The condition should be `defined(__cplusplus_winrt)` when compile option is provided correctly.
|
||||
+// porvide 2 static libs to resolve link error. 'kernel32' and 'windowsapp'
|
||||
+#pragma comment(lib, "kernel32")
|
||||
+#pragma comment(lib, "WindowsApp")
|
||||
+#endif
|
||||
+
|
||||
#if !defined (__PTW32_CONFIG_H)
|
||||
# error "config.h was not #included"
|
||||
#endif
|
@ -3,14 +3,19 @@ if(NOT VCPKG_TARGET_IS_WINDOWS)
|
||||
return()
|
||||
endif()
|
||||
|
||||
vcpkg_fail_port_install(MESSAGE "${PORT} does not currently support UWP platform nor ARM architectures" ON_TARGET "UWP" ON_ARCH "arm" )
|
||||
|
||||
set(PTHREADS4W_VERSION "3.0.0")
|
||||
|
||||
if(VCPKG_TARGET_IS_UWP)
|
||||
list(APPEND PATCH_FILES fix-uwp-linkage.patch)
|
||||
# Inject linker option using the `LINK` environment variable
|
||||
# https://docs.microsoft.com/en-us/cpp/build/reference/linker-options
|
||||
# https://docs.microsoft.com/en-us/cpp/build/reference/linking#link-environment-variables
|
||||
set(ENV{LINK} "/APPCONTAINER")
|
||||
endif()
|
||||
if (VCPKG_CRT_LINKAGE STREQUAL dynamic)
|
||||
set(PATCH_FILE use-md.patch)
|
||||
list(APPEND PATCH_FILES use-md.patch)
|
||||
else()
|
||||
set(PATCH_FILE use-mt.patch)
|
||||
list(APPEND PATCH_FILES use-mt.patch)
|
||||
endif()
|
||||
|
||||
vcpkg_from_sourceforge(
|
||||
@ -18,7 +23,9 @@ vcpkg_from_sourceforge(
|
||||
REPO pthreads4w
|
||||
FILENAME "pthreads4w-code-v${PTHREADS4W_VERSION}.zip"
|
||||
SHA512 49e541b66c26ddaf812edb07b61d0553e2a5816ab002edc53a38a897db8ada6d0a096c98a9af73a8f40c94283df53094f76b429b09ac49862465d8697ed20013
|
||||
PATCHES ${PATCH_FILE}
|
||||
PATCHES
|
||||
fix-arm-macro.patch
|
||||
${PATCH_FILES}
|
||||
)
|
||||
|
||||
find_program(NMAKE nmake REQUIRED)
|
||||
|
@ -1,8 +1,7 @@
|
||||
{
|
||||
"name": "pthreads",
|
||||
"version": "3.0.0",
|
||||
"port-version": 7,
|
||||
"port-version": 8,
|
||||
"description": "pthreads for windows",
|
||||
"homepage": "https://sourceware.org/pub/pthreads-win32/",
|
||||
"supports": "!(uwp | arm | arm64)"
|
||||
"homepage": "https://sourceware.org/pub/pthreads-win32/"
|
||||
}
|
||||
|
@ -118,6 +118,7 @@ chromium-base:x64-linux=skip
|
||||
civetweb:arm64-windows = skip
|
||||
civetweb:arm-uwp = skip
|
||||
civetweb:x64-uwp = skip
|
||||
clamav:arm64-windows=fail
|
||||
clblas:arm64-windows=fail
|
||||
clblast:x64-linux=fail
|
||||
clblast:x64-windows-static=fail
|
||||
@ -177,6 +178,8 @@ cudnn:arm-uwp=fail
|
||||
cudnn:x64-uwp=fail
|
||||
cudnn:x64-windows-static=fail
|
||||
cudnn:x86-windows=fail
|
||||
darknet:arm64-windows=fail
|
||||
darknet:arm-uwp=fail
|
||||
# Since pipeline cannot automatically install dbghelp dependency, skip this detection
|
||||
dbghelp:arm-uwp=skip
|
||||
dbghelp:arm64-windows=skip
|
||||
@ -332,6 +335,9 @@ fmilib:arm64-windows=fail
|
||||
fmilib:arm-uwp=fail
|
||||
fmilib:x64-linux=fail
|
||||
fmilib:x64-uwp=fail
|
||||
fontconfig:x64-uwp=fail
|
||||
fontconfig:arm-uwp=fail
|
||||
fontconfig:arm64-windows=fail
|
||||
foonathan-memory:arm64-windows=fail
|
||||
foonathan-memory:arm-uwp=fail
|
||||
foonathan-memory:x64-uwp=fail
|
||||
@ -1283,9 +1289,6 @@ protobuf-c:x64-windows-static-md=fail
|
||||
protobuf-c:x64-uwp=fail
|
||||
protobuf-c:arm64-windows=fail
|
||||
protobuf-c:arm-uwp=fail
|
||||
pthreads:arm64-windows=fail
|
||||
pthreads:arm-uwp=fail
|
||||
pthreads:x64-uwp=fail
|
||||
python2:arm64-windows=fail
|
||||
python2:arm-uwp=fail
|
||||
python2:x64-linux=fail
|
||||
|
@ -4906,7 +4906,7 @@
|
||||
},
|
||||
"pthreads": {
|
||||
"baseline": "3.0.0",
|
||||
"port-version": 7
|
||||
"port-version": 8
|
||||
},
|
||||
"pugixml": {
|
||||
"baseline": "1.11.4",
|
||||
|
@ -1,5 +1,10 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "e03999fb593f35daefdea06f7c99af233f3a7f3d",
|
||||
"version": "3.0.0",
|
||||
"port-version": 8
|
||||
},
|
||||
{
|
||||
"git-tree": "f76c9c365aff8cf663941bbe6dac93379e856345",
|
||||
"version": "3.0.0",
|
||||
|
Loading…
x
Reference in New Issue
Block a user