Skip to content

Commit 88d0ab7

Browse files
committed
zstd: apply upstream patch to avoid C++
facebook/zstd@769723a facebook/zstd#4357
1 parent e87240b commit 88d0ab7

File tree

4 files changed

+122
-1
lines changed

4 files changed

+122
-1
lines changed

zstd.dev.patch

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
zstd.patch

zstd.patch

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
commit 769723aee2540aaff8951ac432a1babed358aa71
2+
Date: 2025-04-01 22:47:45 +0200
3+
4+
diff --git a/build/cmake/CMakeLists.txt b/build/cmake/CMakeLists.txt
5+
index 347d41c0..f0890534 100644
6+
--- a/build/cmake/CMakeLists.txt
7+
+++ b/build/cmake/CMakeLists.txt
8+
@@ -37,7 +37,6 @@ project(zstd
9+
VERSION "${ZSTD_FULL_VERSION}"
10+
LANGUAGES C # Main library is in C
11+
ASM # And ASM
12+
- CXX # Testing contributed code also utilizes CXX
13+
)
14+
15+
message(STATUS "ZSTD VERSION: ${zstd_VERSION}")
16+
@@ -54,12 +53,6 @@ endif()
17+
18+
include(GNUInstallDirs)
19+
20+
-#-----------------------------------------------------------------------------
21+
-# Add extra compilation flags
22+
-#-----------------------------------------------------------------------------
23+
-include(AddZstdCompilationFlags)
24+
-ADD_ZSTD_COMPILATION_FLAGS()
25+
-
26+
# Always hide XXHash symbols
27+
add_definitions(-DXXH_NAMESPACE=ZSTD_)
28+
29+
@@ -123,6 +116,19 @@ if (MSVC)
30+
option(ZSTD_USE_STATIC_RUNTIME "LINK TO STATIC RUN-TIME LIBRARIES" OFF)
31+
endif ()
32+
33+
+# Enable C++ support for testing.
34+
+set(ZSTD_ENABLE_CXX ${ZSTD_BUILD_TESTS})
35+
+
36+
+if(ZSTD_ENABLE_CXX)
37+
+ enable_language(CXX)
38+
+endif()
39+
+
40+
+#-----------------------------------------------------------------------------
41+
+# Add extra compilation flags
42+
+#-----------------------------------------------------------------------------
43+
+include(AddZstdCompilationFlags)
44+
+ADD_ZSTD_COMPILATION_FLAGS(ON ZSTD_ENABLE_CXX ON) # C CXX LD
45+
+
46+
#-----------------------------------------------------------------------------
47+
# External dependencies
48+
#-----------------------------------------------------------------------------
49+
diff --git a/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake b/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake
50+
index 5f381c65..25231b5e 100644
51+
--- a/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake
52+
+++ b/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake
53+
@@ -49,7 +49,7 @@ function(EnableCompilerFlag _flag _C _CXX _LD)
54+
endif ()
55+
endfunction()
56+
57+
-macro(ADD_ZSTD_COMPILATION_FLAGS)
58+
+macro(ADD_ZSTD_COMPILATION_FLAGS _C _CXX _LD)
59+
# We set ZSTD_HAS_NOEXECSTACK if we are certain we've set all the required
60+
# compiler flags to mark the stack as non-executable.
61+
set(ZSTD_HAS_NOEXECSTACK false)
62+
@@ -63,26 +63,26 @@ macro(ADD_ZSTD_COMPILATION_FLAGS)
63+
# EnableCompilerFlag("-std=c99" true false) # Set C compilation to c99 standard
64+
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND MSVC)
65+
# clang-cl normally maps -Wall to -Weverything.
66+
- EnableCompilerFlag("/clang:-Wall" true true false)
67+
+ EnableCompilerFlag("/clang:-Wall" _C _CXX false)
68+
else ()
69+
- EnableCompilerFlag("-Wall" true true false)
70+
+ EnableCompilerFlag("-Wall" _C _CXX false)
71+
endif ()
72+
- EnableCompilerFlag("-Wextra" true true false)
73+
- EnableCompilerFlag("-Wundef" true true false)
74+
- EnableCompilerFlag("-Wshadow" true true false)
75+
- EnableCompilerFlag("-Wcast-align" true true false)
76+
- EnableCompilerFlag("-Wcast-qual" true true false)
77+
- EnableCompilerFlag("-Wstrict-prototypes" true false false)
78+
+ EnableCompilerFlag("-Wextra" _C _CXX false)
79+
+ EnableCompilerFlag("-Wundef" _C _CXX false)
80+
+ EnableCompilerFlag("-Wshadow" _C _CXX false)
81+
+ EnableCompilerFlag("-Wcast-align" _C _CXX false)
82+
+ EnableCompilerFlag("-Wcast-qual" _C _CXX false)
83+
+ EnableCompilerFlag("-Wstrict-prototypes" _C false false)
84+
# Enable asserts in Debug mode
85+
if (CMAKE_BUILD_TYPE MATCHES "Debug")
86+
- EnableCompilerFlag("-DDEBUGLEVEL=1" true true false)
87+
+ EnableCompilerFlag("-DDEBUGLEVEL=1" _C _CXX false)
88+
endif ()
89+
# Add noexecstack flags
90+
# LDFLAGS
91+
- EnableCompilerFlag("-Wl,-z,noexecstack" false false true)
92+
+ EnableCompilerFlag("-Wl,-z,noexecstack" false false _LD)
93+
# CFLAGS & CXXFLAGS
94+
- EnableCompilerFlag("-Qunused-arguments" true true false)
95+
- EnableCompilerFlag("-Wa,--noexecstack" true true false)
96+
+ EnableCompilerFlag("-Qunused-arguments" _C _CXX false)
97+
+ EnableCompilerFlag("-Wa,--noexecstack" _C _CXX false)
98+
# NOTE: Using 3 nested ifs because the variables are sometimes
99+
# empty if the condition is false, and sometimes equal to false.
100+
# This implicitly converts them to truthy values. There may be
101+
@@ -99,15 +99,15 @@ macro(ADD_ZSTD_COMPILATION_FLAGS)
102+
103+
set(ACTIVATE_MULTITHREADED_COMPILATION "ON" CACHE BOOL "activate multi-threaded compilation (/MP flag)")
104+
if (CMAKE_GENERATOR MATCHES "Visual Studio" AND ACTIVATE_MULTITHREADED_COMPILATION)
105+
- EnableCompilerFlag("/MP" true true false)
106+
+ EnableCompilerFlag("/MP" _C _CXX false)
107+
endif ()
108+
109+
# UNICODE SUPPORT
110+
- EnableCompilerFlag("/D_UNICODE" true true false)
111+
- EnableCompilerFlag("/DUNICODE" true true false)
112+
+ EnableCompilerFlag("/D_UNICODE" _C _CXX false)
113+
+ EnableCompilerFlag("/DUNICODE" _C _CXX false)
114+
# Enable asserts in Debug mode
115+
if (CMAKE_BUILD_TYPE MATCHES "Debug")
116+
- EnableCompilerFlag("/DDEBUGLEVEL=1" true true false)
117+
+ EnableCompilerFlag("/DDEBUGLEVEL=1" _C _CXX false)
118+
endif ()
119+
endif ()
120+

zstd.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ _VER="$1"
2727
cmake build/cmake -B "${_BLDDIR}" ${_CMAKE_GLOBAL} \
2828
-DZSTD_BUILD_CONTRIB=OFF \
2929
-DZSTD_BUILD_TESTS=OFF \
30-
-DZSTD_ENABLE_CXX=OFF \
3130
-DZSTD_LEGACY_SUPPORT=OFF \
3231
-DZSTD_BUILD_PROGRAMS=OFF \
3332
-DZSTD_PROGRAMS_LINK_SHARED=OFF \

zstd.test.patch

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
zstd.patch

0 commit comments

Comments
 (0)