[folly/fizz/wangle/proxygen/fbthrift] Update to latest revision (#13701)

This commit is contained in:
Phoebe 2020-10-28 11:44:41 +08:00 committed by GitHub
parent e765d96d6f
commit c34c4189eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 80 additions and 266 deletions

View File

@ -1,5 +1,5 @@
Source: fbthrift
Version: 2019.11.11.00
Version: 2020.10.19.00
Homepage: https://github.com/facebook/fbthrift
Description: Facebook's branch of Apache Thrift, including a new C++ server.
Build-Depends: openssl, zlib, fmt, gflags, glog, rsocket, fizz, folly, wangle, zstd, boost-context, boost-filesystem, boost-program-options, boost-regex, boost-system, boost-thread

View File

@ -6,8 +6,8 @@ vcpkg_find_acquire_program(BISON)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO facebook/fbthrift
REF 3b56786f0822f78a408addffaf3a54b1b8c86dcd # v2019.11.11.00
SHA512 d892c6825345d2dc68abbe7a0eacb5ee0444fdea328d8d6bbcd512752058a2de715c03567120090a355115bb9d5d41f3f9c8dc2f82b8054d0b5a2fd1621bf473
REF e184b41448dab2f462094fa005ed05269cfba3e3 # v2020.10.19.00
SHA512 df03e1779fd3f1868ed7be21292bcd91ae65bcca591b0265a40391dde7e3b3b81d83fe7eb4ec8dd5c440be471375b8e2c8c24befefaca3ae0cab9ce10bfd362c
HEAD_REF master
)

View File

@ -1,5 +1,5 @@
Source: fizz
Version: 2020.02.03.00
Port-Version: 1
Version: 2020.10.19.00
Homepage: https://github.com/facebookincubator/fizz
Build-Depends: folly, openssl, libsodium, zlib, fmt
Description: a TLS 1.3 implementation by Facebook

View File

@ -1,8 +1,8 @@
diff --git a/fizz/CMakeLists.txt b/fizz/CMakeLists.txt
index 0c95883..52585aa 100644
index 7e3347b..76ee974 100644
--- a/fizz/CMakeLists.txt
+++ b/fizz/CMakeLists.txt
@@ -86,6 +86,9 @@ else()
@@ -89,6 +89,9 @@ else()
list(APPEND FIZZ_INCLUDE_DIRECTORIES ${LIBEVENT_INCLUDE_DIR})
endif()
@ -10,5 +10,5 @@ index 0c95883..52585aa 100644
+list(APPEND FIZZ_SHINY_DEPENDENCIES ZLIB::ZLIB)
+
set(FIZZ_HEADER_DIRS
base
client
crypto

View File

@ -3,8 +3,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO facebookincubator/fizz
REF c0bafd67140e8c6f4f585c1077f2fd89102e4582 # v2020.02.03.00
SHA512 7db706ffdd79f6d753c5530eb67646747d1e7b8b380387f34bd1fc7a06b289a68a6bb4c13faa74e108d4dede72bb2d993d7ad8f60fabcfb3b48abbf4326291c2
REF 1c40fde31b5eff8a05f928497429bffe7425b4fd # v2020.10.19.00
SHA512 9e0de756855941c377f2a52d9b751e6ae066c8d8ae4e7a06211b2537a039e533cbc782cbce947cb703d7bd4c5cb5fb4420e71eeafdcb5f1264d788ca3eb0b76d
HEAD_REF master
PATCHES
find-zlib.patch
@ -41,5 +41,6 @@ file(REMOVE_RECURSE
${CURRENT_PACKAGES_DIR}/debug/include
)
# Handle copyright
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/fizz/tool/test" "${CURRENT_PACKAGES_DIR}/include/fizz/util/test")
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)

View File

@ -1,9 +1,8 @@
Source: folly
Version: 2019.10.21.00
Port-Version: 5
Version: 2020.10.19.00
Homepage: https://github.com/facebook/folly
Description: An open-source C++ library developed and used at Facebook. The library is UNSTABLE on Windows
Build-Depends: openssl, libevent, double-conversion, glog, gflags, boost-chrono, boost-context, boost-conversion, boost-crc, boost-date-time, boost-filesystem, boost-multi-index, boost-program-options, boost-regex, boost-system, boost-thread, boost-smart-ptr
Build-Depends: openssl, libevent, double-conversion, glog, gflags, boost-chrono, boost-context, boost-conversion, boost-crc, boost-date-time, boost-filesystem, boost-multi-index, boost-program-options, boost-regex, boost-system, boost-thread, boost-smart-ptr, fmt
Default-Features: zlib
Supports: x64

View File

@ -1,23 +1,22 @@
diff --git a/folly/portability/PThread.cpp b/folly/portability/PThread.cpp
index 5cc3731..86a4a0b 100644
index 2126ec0..ef82ade 100644
--- a/folly/portability/PThread.cpp
+++ b/folly/portability/PThread.cpp
@@ -18,6 +18,9 @@
#if !FOLLY_HAVE_PTHREAD && defined(_WIN32)
#include <boost/thread/tss.hpp> // @manual
+#include <boost/thread/exceptions.hpp>
@@ -20,6 +20,8 @@
#include <boost/thread/exceptions.hpp>
#include <boost/thread/tss.hpp>
#include <boost/version.hpp>
+#include <boost/shared_ptr.hpp>
+#include <boost/thread/thread_only.hpp>
#include <errno.h>
@@ -684,7 +687,7 @@ int pthread_setspecific(pthread_key_t key, const void* value) {
// function, which we don't want to do.
boost::detail::set_tss_data(
realKey,
@@ -691,7 +693,7 @@ int pthread_setspecific(pthread_key_t key, const void* value) {
boost::detail::thread::cleanup_caller_t(),
boost::detail::thread::cleanup_func_t(),
#else
- boost::shared_ptr<boost::detail::tss_cleanup_function>(),
+ 0,0,
#endif
const_cast<void*>(value),
false);
return 0;

View File

@ -1,27 +1,34 @@
diff --git a/folly/portability/Windows.h b/folly/portability/Windows.h
index f7990ca..b22fac5 100644
index 86fd0f9..ccad11e 100644
--- a/folly/portability/Windows.h
+++ b/folly/portability/Windows.h
@@ -26,16 +26,12 @@
// These have to be this way because we define our own versions
// of close(), because the normal Windows versions don't handle
// sockets at all.
@@ -32,24 +32,17 @@
// disabled to ensure all of the normal names get declared properly.
#include <stdio.h>
-#ifndef __STDC__
-/* nolint */
-#define __STDC__ 1
#pragma push_macro("_CRT_DECLARE_NONSTDC_NAMES")
#ifdef _CRT_DECLARE_NONSTDC_NAMES
#undef _CRT_DECLARE_NONSTDC_NAMES
#endif
+
+#include <corecrt.h>
#pragma push_macro("_CRT_INTERNAL_NONSTDC_NAMES")
-#undef _CRT_INTERNAL_NONSTDC_NAMES
-#include <direct.h> // @manual nolint
-#include <io.h> // @manual nolint
-#undef __STDC__
+#define _CRT_INTERNAL_NONSTDC_NAMES 0
+#include <direct.h>
+#include <io.h>
#pragma pop_macro("_CRT_INTERNAL_NONSTDC_NAMES")
-#pragma pop_macro("_CRT_DECLARE_NONSTDC_NAMES")
-#else
-#include <direct.h> // @manual nolint
-#include <io.h> // @manual nolint
-#endif
+#include <corecrt.h>
+#pragma push_macro("_CRT_INTERNAL_NONSTDC_NAMES")
+#define _CRT_INTERNAL_NONSTDC_NAMES 0
+#include <direct.h>
+#include <io.h>
+#pragma pop_macro("_CRT_INTERNAL_NONSTDC_NAMES")
#if defined(min) || defined(max)
#error Windows.h needs to be included by this header, or else NOMINMAX needs \

View File

@ -1,25 +0,0 @@
diff --git a/CMake/folly-deps.cmake b/CMake/folly-deps.cmake
index 1522db2..5ed2ea9 100644
--- a/CMake/folly-deps.cmake
+++ b/CMake/folly-deps.cmake
@@ -17,9 +17,17 @@ find_package(Boost 1.51.0 MODULE
list(APPEND FOLLY_LINK_LIBRARIES ${Boost_LIBRARIES})
list(APPEND FOLLY_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIRS})
-find_package(DoubleConversion MODULE REQUIRED)
-list(APPEND FOLLY_LINK_LIBRARIES ${DOUBLE_CONVERSION_LIBRARY})
-list(APPEND FOLLY_INCLUDE_DIRECTORIES ${DOUBLE_CONVERSION_INCLUDE_DIR})
+find_package(double-conversion CONFIG REQUIRED)
+if (double-conversion_FOUND)
+ message(STATUS "Found double-conversion from package config")
+ set(FOLLY_HAVE_DOUBLE_CONVERSION ON)
+ # How to obtain link libraries from target? double-conversion doesn't set property INTERFACE_LINK_LIBRARIES
+ list(APPEND FOLLY_INCLUDE_DIRECTORIES ${DOUBLE_CONVERSION_INCLUDE_DIR})
+else()
+ find_package(DoubleConversion MODULE)
+ list(APPEND FOLLY_LINK_LIBRARIES ${DOUBLE_CONVERSION_LIBRARY})
+ list(APPEND FOLLY_INCLUDE_DIRECTORIES ${DOUBLE_CONVERSION_INCLUDE_DIR})
+endif()
set(FOLLY_HAVE_LIBGFLAGS OFF)
find_package(gflags CONFIG REQUIRED)

View File

@ -1,15 +0,0 @@
diff --git a/folly/lang/Bits.h b/folly/lang/Bits.h
index f0beb5b..f86a1a3 100644
--- a/folly/lang/Bits.h
+++ b/folly/lang/Bits.h
@@ -64,6 +64,10 @@
#include <folly/lang/Assume.h>
#include <folly/portability/Builtins.h>
+#if __has_include(<bit>)
+#include <bit>
+#endif
+
namespace folly {
#if __cpp_lib_bit_cast

View File

@ -1,48 +0,0 @@
diff --git a/CMake/GenPkgConfig.cmake b/CMake/GenPkgConfig.cmake
index f8701b4..00a1e75 100644
--- a/CMake/GenPkgConfig.cmake
+++ b/CMake/GenPkgConfig.cmake
@@ -92,7 +92,19 @@ function(gen_pkgconfig_vars)
# Set the output variables
string(REPLACE ";" " " cflags "${cflags}")
- set("${var_prefix}_CFLAGS" "${cflags}" PARENT_SCOPE)
string(REPLACE ";" " " private_libs "${private_libs}")
+
+ # Since CMake 3.18 FindThreads may include a generator expression requiring
+ # a target, which gets propagated to us through INTERFACE_COMPILE_OPTIONS.
+ # Before CMake 3.19 there's no way to solve this in a general way, so we
+ # work around the specific case. See #1414 and CMake bug #21074.
+ if(CMAKE_VERSION VERSION_LESS 3.19)
+ string(REPLACE
+ "<COMPILE_LANG_AND_ID:CUDA,NVIDIA>" "<COMPILE_LANGUAGE:CUDA>"
+ cflags "${cflags}"
+ )
+ endif()
+
+ set("${var_prefix}_CFLAGS" "${cflags}" PARENT_SCOPE)
set("${var_prefix}_PRIVATE_LIBS" "${private_libs}" PARENT_SCOPE)
endfunction()
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2de9298..950dd76 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -414,10 +414,18 @@ configure_file(
${CMAKE_CURRENT_BINARY_DIR}/libfolly.pc.gen
@ONLY
)
+
+# Specify target to allow resolving generator expressions requiring
+# a target for CMake >=3.19. See #1414.
+if(NOT CMAKE_VERSION VERSION_LESS 3.19)
+ set(target_arg TARGET folly_deps)
+endif()
+
file(
GENERATE
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/libfolly.pc
INPUT ${CMAKE_CURRENT_BINARY_DIR}/libfolly.pc.gen
+ ${target_arg}
)
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/libfolly.pc

View File

@ -1,50 +0,0 @@
diff --git a/folly/portability/Builtins.h b/folly/portability/Builtins.h
index 971cb88..7894333 100644
--- a/folly/portability/Builtins.h
+++ b/folly/portability/Builtins.h
@@ -41,7 +41,7 @@ FOLLY_ALWAYS_INLINE void __builtin___clear_cache(char* begin, char* end) {
}
}
-#if !defined(_MSC_VER) || (_MSC_VER < 1923)
+// #if !defined(_MSC_VER) || (_MSC_VER < 1923)
FOLLY_ALWAYS_INLINE int __builtin_clz(unsigned int x) {
unsigned long index;
return int(_BitScanReverse(&index, (unsigned long)x) ? 31 - index : 32);
@@ -93,7 +93,7 @@ FOLLY_ALWAYS_INLINE int __builtin_ctzll(unsigned long long x) {
return int(_BitScanForward64(&index, x) ? index : 64);
}
#endif
-#endif // !defined(_MSC_VER) || (_MSC_VER < 1923)
+// #endif // !defined(_MSC_VER) || (_MSC_VER < 1923)
FOLLY_ALWAYS_INLINE int __builtin_ffs(int x) {
unsigned long index;
@@ -119,15 +119,15 @@ FOLLY_ALWAYS_INLINE int __builtin_popcount(unsigned int x) {
return int(__popcnt(x));
}
-#if !defined(_MSC_VER) || (_MSC_VER < 1923)
+// #if !defined(_MSC_VER) || (_MSC_VER < 1923)
FOLLY_ALWAYS_INLINE int __builtin_popcountl(unsigned long x) {
static_assert(sizeof(x) == 4, "");
return int(__popcnt(x));
}
-#endif // !defined(_MSC_VER) || (_MSC_VER < 1923)
+// #endif // !defined(_MSC_VER) || (_MSC_VER < 1923)
#endif
-#if !defined(_MSC_VER) || (_MSC_VER < 1923)
+// #if !defined(_MSC_VER) || (_MSC_VER < 1923)
#if defined(_M_IX86)
FOLLY_ALWAYS_INLINE int __builtin_popcountll(unsigned long long x) {
return int(__popcnt((unsigned int)(x >> 32))) +
@@ -138,7 +138,7 @@ FOLLY_ALWAYS_INLINE int __builtin_popcountll(unsigned long long x) {
return int(__popcnt64(x));
}
#endif
-#endif // !defined(_MSC_VER) || (_MSC_VER < 1923)
+// #endif // !defined(_MSC_VER) || (_MSC_VER < 1923)
FOLLY_ALWAYS_INLINE void* __builtin_return_address(unsigned int frame) {
// I really hope frame is zero...

View File

@ -12,17 +12,14 @@ vcpkg_add_to_path("${PYTHON3_DIR}")
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO facebook/folly
REF 8874256376d2f8a32867f17c9472a446d6707604 #2019.10.21.00
SHA512 96dfdde34697b72e8eb88431d742fffa337fc9146677d63cf0331dc5e4cd341fb00b88edf3781488e3194fa41525e70a6729e1bb6657f224cd1969deea9b468c
REF 430aa0d8db79989dd56f8a0361fcb1c305618e41 # v2020.10.19.00
SHA512 d9f6aa0f7a8aee044c01af289d71e4c80d63e40ff128ac840663e3103d19cdd0da161a0b0d106493d950b9ac9a905c5e2abf8c1970c2f16b94dd95c0d1b1943e
HEAD_REF master
PATCHES
missing-include-atomic.patch
reorder-glog-gflags.patch
disable-non-underscore-posix-names.patch
boost-1.70.patch
fix-addbit.patch
folly_c3861.patch
fix-cmake-3.18.patch # Remove this patch on the next update
)
file(COPY

View File

@ -1,22 +1,22 @@
diff --git a/CMake/folly-deps.cmake b/CMake/folly-deps.cmake
index e0bbcbb..fb45331 100644
index 92b8ce7..04589ed 100644
--- a/CMake/folly-deps.cmake
+++ b/CMake/folly-deps.cmake
@@ -24,6 +24,11 @@ find_package(DoubleConversion MODULE REQUIRED)
@@ -52,6 +52,11 @@ find_package(DoubleConversion MODULE REQUIRED)
list(APPEND FOLLY_LINK_LIBRARIES ${DOUBLE_CONVERSION_LIBRARY})
list(APPEND FOLLY_INCLUDE_DIRECTORIES ${DOUBLE_CONVERSION_INCLUDE_DIR})
+find_package(Glog MODULE)
+find_package(Glog CONFIG REQUIRED)
+set(FOLLY_HAVE_LIBGLOG ${GLOG_FOUND})
+list(APPEND FOLLY_LINK_LIBRARIES ${GLOG_LIBRARY})
+list(APPEND FOLLY_LINK_LIBRARIES glog::glog)
+list(APPEND FOLLY_INCLUDE_DIRECTORIES ${GLOG_INCLUDE_DIR})
+
find_package(Gflags MODULE)
set(FOLLY_HAVE_LIBGFLAGS ${LIBGFLAGS_FOUND})
list(APPEND FOLLY_LINK_LIBRARIES ${LIBGFLAGS_LIBRARY})
@@ -31,11 +36,6 @@ list(APPEND FOLLY_INCLUDE_DIRECTORIES ${LIBGFLAGS_INCLUDE_DIR})
list(APPEND CMAKE_REQUIRED_LIBRARIES ${LIBGFLAGS_LIBRARY})
list(APPEND CMAKE_REQUIRED_INCLUDES ${LIBGFLAGS_INCLUDE_DIR})
if(LIBGFLAGS_FOUND)
@@ -61,11 +66,6 @@ if(LIBGFLAGS_FOUND)
set(FOLLY_LIBGFLAGS_INCLUDE ${LIBGFLAGS_INCLUDE_DIR})
endif()
-find_package(Glog MODULE)
-set(FOLLY_HAVE_LIBGLOG ${GLOG_FOUND})

View File

@ -1,5 +1,6 @@
Source: proxygen
Version: 2019.10.21.00
Version: 2020.10.19.00
Homepage: https://github.com/facebook/proxygen
Description: It comprises the core C++ HTTP abstractions used at Facebook.
Build-Depends: folly, fizz, wangle, zstd, zlib, openssl, boost-iostreams, boost-context, boost-date-time, boost-filesystem, boost-program-options, boost-regex, boost-system, boost-thread
Supports: !windows&!osx

View File

@ -1,49 +0,0 @@
diff --git a/proxygen/httpserver/CMakeLists.txt b/proxygen/httpserver/CMakeLists.txt
index 40046e5..ab53b06 100644
--- a/proxygen/httpserver/CMakeLists.txt
+++ b/proxygen/httpserver/CMakeLists.txt
@@ -45,7 +45,7 @@ target_link_libraries(
install(
TARGETS proxygen_push
EXPORT proxygen-exports
- DESTINATION bin
+ DESTINATION tools
)
add_executable(proxygen_proxy
@@ -66,7 +66,7 @@ target_link_libraries(
install(
TARGETS proxygen_proxy
EXPORT proxygen-exports
- DESTINATION bin
+ DESTINATION tools
)
add_executable(proxygen_static
@@ -87,7 +87,7 @@ target_link_libraries(
install(
TARGETS proxygen_static
EXPORT proxygen-exports
- DESTINATION bin
+ DESTINATION tools
)
add_executable(proxygen_echo
@@ -108,7 +108,7 @@ target_link_libraries(
install(
TARGETS proxygen_echo
EXPORT proxygen-exports
- DESTINATION bin
+ DESTINATION tools
)
if (BUILD_QUIC)
@@ -140,7 +140,7 @@ if (BUILD_QUIC)
install(
TARGETS hq
EXPORT proxygen-exports
- DESTINATION bin
+ DESTINATION tools
)
endif()

View File

@ -3,10 +3,9 @@ vcpkg_fail_port_install(ON_TARGET "Windows")
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO facebook/proxygen
REF ac8a0f520b1d5fb91cd3f3ef681d4b37053b09f0 #v2019.10.21.00
SHA512 2a76fed7cf9947e1096b36d25fe7886c06655fa2faf6d4829fd07c682efdf2bd9003a4c9e4772a4ccfd72df81e7066df736d2330a5edf0e836da30dcc81d3b5f
REF bb2b1f2b3660fa1f15bbdff14ddba2a4ff5c43fa #v2020.10.19.00
SHA512 8547a8c329764f8448a9f294811ef1dfcfcfa77a15fa2fdd9ab25a5f7ab8d40c9932348d3a1b16b87ba56844c13ebf918e7080f247ff7fadad7363a70e2d0fe2
HEAD_REF master
PATCHES fix-tools-path.patch
)
vcpkg_find_acquire_program(PYTHON3)
@ -31,9 +30,11 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
vcpkg_copy_tools(TOOL_NAMES proxygen_curl proxygen_echo proxygen_proxy proxygen_push proxygen_static AUTO_CLEAN)
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/proxygen)
vcpkg_copy_pdbs()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
#Handle copyright
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)

View File

@ -1,4 +1,5 @@
Source: wangle
Version: 2020.02.03.00
Version: 2020.10.19.00
Homepage: https://github.com/facebook/wangle
Build-Depends: fizz, folly, openssl, glog, libevent, double-conversion, boost-system, boost-thread, boost-filesystem, boost-regex, boost-context
Description: Wangle is a framework providing a set of common client/server abstractions for building services in a consistent, modular, and composable way.

View File

@ -1,12 +1,10 @@
include(vcpkg_common_functions)
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO facebook/wangle
REF 95f14ac0f628cea685bf39eaf511816320696ba1 # v2020.02.03.00
SHA512 3894839b7be1aa0d845f1e461b0a303e09a9d75f3d1fb470bd5304022da7e9060d9e941cdc9d4e5878ab0ae8099477aeceae92d4d4eb80a7de264f81ac8ebf32
REF 4bf3896ad5e938a01ba20efaf1ea59317d846fb2 # v2020.10.19.00
SHA512 1c21199225ebfe9a95391c2bb607412ebadc7aac326373e30dc9d49223a2437b382b4c3160fb2147a505bc2182f03f651c95f7c67f916e336ac81af76884f5fa
HEAD_REF master
PATCHES
build.patch
@ -41,6 +39,6 @@ file(REMOVE_RECURSE
${CURRENT_PACKAGES_DIR}/include/wangle/deprecated/rx/test
)
# Handle copyright
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/wangle RENAME copyright)
file(INSTALL ${CURRENT_PORT_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/wangle)
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
file(INSTALL ${CURRENT_PORT_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})

View File

@ -1297,9 +1297,6 @@ protobuf-c:x64-windows-static=fail
protobuf-c:x64-uwp=fail
protobuf-c:arm64-windows=fail
protobuf-c:arm-uwp=fail
# proxygen fails with "Target 'Windows' not supported by proxygen!"
proxygen:x64-windows=fail
proxygen:x64-windows-static=fail
pthreads:arm64-windows=fail
pthreads:arm-uwp=fail
pthreads:x64-uwp=fail