mirror of
https://github.com/microsoft/vcpkg.git
synced 2026-01-18 01:11:23 +01:00
[sleef] Use SEH on Windows while checking for CPU extensions (#48143)
This commit is contained in:
@@ -9,6 +9,7 @@ vcpkg_from_github(
|
||||
exclude-testerutil.diff
|
||||
export-link-libs.diff
|
||||
sleefdft.pc.diff
|
||||
seh-cpu-ext.diff
|
||||
)
|
||||
|
||||
vcpkg_check_features(OUT_FEATURE_OPTIONS options
|
||||
|
||||
26
ports/sleef/seh-cpu-ext.diff
Normal file
26
ports/sleef/seh-cpu-ext.diff
Normal file
@@ -0,0 +1,26 @@
|
||||
diff --git a/src/libm/dispatcher.h b/src/libm/dispatcher.h
|
||||
index 41b69d9..4d395c3 100644
|
||||
--- a/src/libm/dispatcher.h
|
||||
+++ b/src/libm/dispatcher.h
|
||||
@@ -27,6 +27,14 @@ NOEXPORT int Sleef_internal_cpuSupportsExt(void (*tryExt)(), int *cache) {
|
||||
static int cache = -1;
|
||||
if (cache != -1) return cache;
|
||||
|
||||
+#ifdef _MSC_VER
|
||||
+ __try {
|
||||
+ (*tryExt)();
|
||||
+ cache = 1;
|
||||
+ } __except(1) {
|
||||
+ cache = 0;
|
||||
+ }
|
||||
+#else
|
||||
void (*org);
|
||||
org = signal(SIGILL, sighandler);
|
||||
|
||||
@@ -38,5 +46,6 @@ NOEXPORT int Sleef_internal_cpuSupportsExt(void (*tryExt)(), int *cache) {
|
||||
}
|
||||
|
||||
signal(SIGILL, org);
|
||||
+#endif
|
||||
return cache;
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"name": "sleef",
|
||||
"version": "3.9.0",
|
||||
"port-version": 1,
|
||||
"description": "SIMD Library for Evaluating Elementary Functions, vectorized libm and DFT",
|
||||
"homepage": "https://sleef.org/",
|
||||
"license": "BSL-1.0",
|
||||
|
||||
@@ -9046,7 +9046,7 @@
|
||||
},
|
||||
"sleef": {
|
||||
"baseline": "3.9.0",
|
||||
"port-version": 0
|
||||
"port-version": 1
|
||||
},
|
||||
"sleepy-discord": {
|
||||
"baseline": "2025-02-08",
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "c20095f0ab0040ddf9f28377e35d670fbc720daa",
|
||||
"version": "3.9.0",
|
||||
"port-version": 1
|
||||
},
|
||||
{
|
||||
"git-tree": "afcb099ce882dcb1b316af9efa306b6d9ec3ba69",
|
||||
"version": "3.9.0",
|
||||
|
||||
Reference in New Issue
Block a user