Skip to content

Commit ab82b06

Browse files
authored
Make SANITIZER_MIN_OSX_VERSION a cache variable (#74394)
It is desirable to be able to configure the `-mmacosx-version-min` flag for the sanitizers, but this flag was never made a CACHE variable in cmake. By doing this, it will allow developers to select different minimum versions, which results in different interceptors being enabled or disabled on their platforms. This version can now persist between cmake runs, so it can be remembered by cmake, and edited in the cache file.
1 parent 046dffc commit ab82b06

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

compiler-rt/cmake/config-ix.cmake

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -461,29 +461,34 @@ if(APPLE)
461461
set(ORC_SUPPORTED_OS osx)
462462
endif()
463463

464-
# Note: In order to target x86_64h on OS X the minimum deployment target must
465-
# be 10.8 or higher.
466464
set(DEFAULT_SANITIZER_MIN_OSX_VERSION 10.10)
467465
set(DARWIN_osx_MIN_VER_FLAG "-mmacosx-version-min")
468466
if(NOT SANITIZER_MIN_OSX_VERSION)
469467
string(REGEX MATCH "${DARWIN_osx_MIN_VER_FLAG}=([.0-9]+)"
470468
MACOSX_VERSION_MIN_FLAG "${CMAKE_CXX_FLAGS}")
471469
if(MACOSX_VERSION_MIN_FLAG)
472-
set(SANITIZER_MIN_OSX_VERSION "${CMAKE_MATCH_1}")
470+
set(MIN_OSX_VERSION "${CMAKE_MATCH_1}")
473471
elseif(CMAKE_OSX_DEPLOYMENT_TARGET)
474-
set(SANITIZER_MIN_OSX_VERSION ${CMAKE_OSX_DEPLOYMENT_TARGET})
472+
set(MIN_OSX_VERSION ${CMAKE_OSX_DEPLOYMENT_TARGET})
475473
else()
476-
set(SANITIZER_MIN_OSX_VERSION ${DEFAULT_SANITIZER_MIN_OSX_VERSION})
474+
set(MIN_OSX_VERSION ${DEFAULT_SANITIZER_MIN_OSX_VERSION})
477475
endif()
478-
if(SANITIZER_MIN_OSX_VERSION VERSION_LESS "10.7")
476+
477+
# Note: In order to target x86_64h on OS X the minimum deployment target must
478+
# be 10.8 or higher.
479+
if(MIN_OSX_VERSION VERSION_LESS "10.7")
479480
message(FATAL_ERROR "macOS deployment target '${SANITIZER_MIN_OSX_VERSION}' is too old.")
480481
endif()
481-
if(SANITIZER_MIN_OSX_VERSION VERSION_GREATER ${DEFAULT_SANITIZER_MIN_OSX_VERSION})
482+
if(MIN_OSX_VERSION VERSION_GREATER ${DEFAULT_SANITIZER_MIN_OSX_VERSION})
482483
message(WARNING "macOS deployment target '${SANITIZER_MIN_OSX_VERSION}' is too new, setting to '${DEFAULT_SANITIZER_MIN_OSX_VERSION}' instead.")
483-
set(SANITIZER_MIN_OSX_VERSION ${DEFAULT_SANITIZER_MIN_OSX_VERSION})
484+
set(MIN_OSX_VERSION ${DEFAULT_SANITIZER_MIN_OSX_VERSION})
484485
endif()
486+
485487
endif()
486488

489+
set(SANITIZER_MIN_OSX_VERSION "${MIN_OSX_VERSION}" CACHE STRING
490+
"Minimum OS X version to target (e.g. 10.10) for sanitizers.")
491+
487492
# We're setting the flag manually for each target OS
488493
set(CMAKE_OSX_DEPLOYMENT_TARGET "")
489494

0 commit comments

Comments
 (0)