summaryrefslogtreecommitdiff
path: root/sys-devel/mold/files/mold-1.4.1-tbb-flags-stripping.patch
diff options
context:
space:
mode:
Diffstat (limited to 'sys-devel/mold/files/mold-1.4.1-tbb-flags-stripping.patch')
-rw-r--r--sys-devel/mold/files/mold-1.4.1-tbb-flags-stripping.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/sys-devel/mold/files/mold-1.4.1-tbb-flags-stripping.patch b/sys-devel/mold/files/mold-1.4.1-tbb-flags-stripping.patch
new file mode 100644
index 000000000000..58cfca04132e
--- /dev/null
+++ b/sys-devel/mold/files/mold-1.4.1-tbb-flags-stripping.patch
@@ -0,0 +1,28 @@
+https://github.com/oneapi-src/oneTBB/pull/716
+https://bugs.gentoo.org/865837
+
+From 9595b9699ae6863d1e0cf770a89728eafcaf8845 Mon Sep 17 00:00:00 2001
+From: Christoph Erhardt <github@sicherha.de>
+Date: Wed, 5 Jan 2022 15:13:32 +0100
+Subject: [PATCH] Fix overeager stripping of compile flag
+
+The existing regex strips all occurrences of the given string from
+`${CMAKE_CXX_FLAGS}`, regardless of whether it is just a substring of a
+flag. For instance, `-Werror=format-security` gets truncated to
+`=format-security`.
+
+The new regex makes sure that only whole words get replaced.
+
+Signed-off-by: Christoph Erhardt <github@sicherha.de>
+--- a/third-party/tbb/cmake/utils.cmake
++++ b/third-party/tbb/cmake/utils.cmake
+@@ -18,7 +18,7 @@ macro(tbb_remove_compile_flag flag)
+ set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY COMPILE_OPTIONS ${_tbb_compile_options})
+ unset(_tbb_compile_options)
+ if (CMAKE_CXX_FLAGS)
+- string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
++ string(REGEX REPLACE "(^|[ \t\r\n]+)${flag}($|[ \t\r\n]+)" " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
+ endif()
+ endmacro()
+
+