Skip to content

Commit 824fb12

Browse files
committed
build-script: Permit to build compiler-rt with LLVM_ENABLE_RUNTIMES
LLVM-21 plans to remove the legacy method for building compiler-rt in the same invocation as LLVM using `LLVM_ENABLED_PROJECTS` and `LLVM_BUILD_EXTERNAL_COMPILER_RT`. Support the new way of building compiler-rt with a new build-script opt-in flag `--llvm-build-compiler-rt-with-use-runtimes` -- this will allow a staged introduction, and will ensure we can revert back to the old behaviour temporarily in case of unforeseen regression. Since this flag is meant to be short lived, in an attempt to keep the logic simple we are gating on it only the CMake cache entries that strictly control the compilation mode, all the other entries used for configuring are added in both modes. Take this chance to remove some stale code from `build-script-impl`, and move some code in the generic CMake product to the LLVM one. Addresses rdar://147505298
1 parent a829fa2 commit 824fb12

File tree

10 files changed

+193
-42
lines changed

10 files changed

+193
-42
lines changed

utils/build-script-impl

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -803,20 +803,6 @@ function set_build_options_for_host() {
803803
esac
804804

805805

806-
# We don't currently support building compiler-rt for cross-compile targets.
807-
# It's not clear that's useful anyway.
808-
if [[ $(is_cross_tools_host "${host}") ]] ; then
809-
llvm_cmake_options+=(
810-
-DLLVM_TOOL_COMPILER_RT_BUILD:BOOL=FALSE
811-
-DLLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL=FALSE
812-
)
813-
else
814-
llvm_cmake_options+=(
815-
-DLLVM_TOOL_COMPILER_RT_BUILD:BOOL="$(false_true ${SKIP_BUILD_COMPILER_RT})"
816-
-DLLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL="$(false_true ${SKIP_BUILD_COMPILER_RT})"
817-
)
818-
fi
819-
820806
# If we are asked to not generate test targets for LLVM and or Swift,
821807
# disable as many LLVM tools as we can. This improves compile time when
822808
# compiling with LTO.

utils/build_swift/build_swift/defaults.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,8 @@ def llvm_install_components():
122122
"""Convenience function for getting the default llvm install components for
123123
platforms.
124124
"""
125+
# llvm build product will take care of replacing compiler-rt with
126+
# builtins,runtimes if need be
125127
components = ['llvm-ar', 'llvm-cov', 'llvm-profdata', 'IndexStore', 'clang',
126128
'clang-resource-headers', 'compiler-rt', 'clangd', 'LTO',
127129
'lld']

utils/build_swift/build_swift/driver_arguments.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1398,6 +1398,11 @@ def create_argument_parser():
13981398
'separated options "-DCMAKE_VAR1=YES,-DCMAKE_VAR2=/tmp". Can '
13991399
'be called multiple times to add multiple such options.')
14001400

1401+
option('--llvm-build-compiler-rt-with-use-runtimes', toggle_true,
1402+
help='Switch to LLVM_ENABLE_RUNTIMES as the mechanism to build compiler-rt'
1403+
'It will become the default with LLVM 21, this flag is '
1404+
'meant to stage its introduction and account for edge cases')
1405+
14011406
# -------------------------------------------------------------------------
14021407
in_group('Build settings for Android')
14031408

utils/build_swift/tests/expected_options.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,7 @@
232232
'lldb_build_variant': 'Debug',
233233
'lldb_build_with_xcode': '0',
234234
'llvm_assertions': True,
235+
'llvm_build_compiler_rt_with_use_runtimes': False,
235236
'llvm_build_variant': 'Debug',
236237
'llvm_cmake_options': [],
237238
'llvm_enable_modules': False,
@@ -853,6 +854,7 @@ class BuildScriptImplOption(_BaseOption):
853854
AppendOption('--llvm-ninja-targets'),
854855
AppendOption('--llvm-ninja-targets-for-cross-compile-hosts'),
855856
AppendOption('--llvm-cmake-options'),
857+
EnableOption('--llvm-build-compiler-rt-with-use-runtimes'),
856858
AppendOption('--darwin-symroot-path-filters'),
857859

858860
UnsupportedOption('--build-jobs'),

utils/swift_build_support/swift_build_support/products/cmake_product.py

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -381,19 +381,6 @@ def host_cmake_options(self, host_target):
381381
# in the compiler checks CMake performs
382382
swift_cmake_options.define('CMAKE_OSX_ARCHITECTURES', arch)
383383

384-
# We don't currently support building compiler-rt for cross-compile targets.
385-
# It's not clear that's useful anyway.
386-
if self.is_cross_compile_target(host_target):
387-
llvm_cmake_options.define('LLVM_TOOL_COMPILER_RT_BUILD:BOOL', 'FALSE')
388-
llvm_cmake_options.define('LLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL', 'FALSE')
389-
else:
390-
llvm_cmake_options.define('LLVM_TOOL_COMPILER_RT_BUILD:BOOL',
391-
cmake.CMakeOptions.true_false(
392-
self.args.build_compiler_rt))
393-
llvm_cmake_options.define('LLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL',
394-
cmake.CMakeOptions.true_false(
395-
self.args.build_compiler_rt))
396-
397384
# If we are asked to not generate test targets for LLVM and or Swift,
398385
# disable as many LLVM tools as we can. This improves compile time when
399386
# compiling with LTO.
@@ -428,4 +415,8 @@ def host_cmake_options(self, host_target):
428415

429416
llvm_cmake_options.define('COVERAGE_DB', self.args.coverage_db)
430417

431-
return (llvm_cmake_options, swift_cmake_options)
418+
# This provides easier access to certain settings
419+
# users may need without having to use CMakeOptions interface
420+
relevant_options = {'CMAKE_OSX_SYSROOT': cmake_os_sysroot}
421+
422+
return (llvm_cmake_options, swift_cmake_options, relevant_options)

utils/swift_build_support/swift_build_support/products/llvm.py

Lines changed: 83 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ def build(self, host_target):
225225

226226
(platform, arch) = host_target.split('-')
227227

228-
llvm_cmake_options = self.host_cmake_options(host_target)[0]
228+
llvm_cmake_options, _, relevant_options = self.host_cmake_options(host_target)
229229
llvm_cmake_options.extend_raw(self.args.llvm_cmake_options)
230230

231231
# TODO: handle cross compilation
@@ -291,18 +291,78 @@ def build(self, host_target):
291291
llvm_cmake_options.define('LLVM_INCLUDE_DOCS:BOOL', 'TRUE')
292292
llvm_cmake_options.define('LLVM_ENABLE_LTO:STRING', self.args.lto_type)
293293
llvm_cmake_options.define('COMPILER_RT_INTERCEPT_LIBDISPATCH', 'ON')
294+
# Swift expects the old layout for the runtime directory
295+
# updating this in tracked in #80180
296+
llvm_cmake_options.define('LLVM_ENABLE_PER_TARGET_RUNTIME_DIR', 'OFF')
297+
if host_target.startswith('linux'):
298+
# This preserves the behaviour we had when using
299+
# LLVM_BUILD_EXTERNAL COMPILER_RT --
300+
# that is, having the linker not complaing if symbols used
301+
# by TSan are undefined (namely the ones for Blocks Runtime)
302+
# In the long term, we want to remove this and
303+
# build Blocks Runtime before LLVM
304+
llvm_cmake_options.define(
305+
'SANITIZER_COMMON_LINK_FLAGS:STRING', '-Wl,-z,undefs')
306+
307+
builtins_runtimes_target_for_darwin = 'arm64-apple-darwin'
308+
if system() == "Darwin":
309+
llvm_cmake_options.define(
310+
f'BUILTINS_{builtins_runtimes_target_for_darwin}_'
311+
'CMAKE_OSX_SYSROOT',
312+
relevant_options['CMAKE_OSX_SYSROOT'])
313+
llvm_cmake_options.define(
314+
f'RUNTIMES_{builtins_runtimes_target_for_darwin}_'
315+
'CMAKE_OSX_SYSROOT',
316+
relevant_options['CMAKE_OSX_SYSROOT'])
317+
llvm_cmake_options.define(
318+
'LLVM_BUILTIN_TARGETS', builtins_runtimes_target_for_darwin)
319+
llvm_cmake_options.define(
320+
'LLVM_RUNTIME_TARGETS', builtins_runtimes_target_for_darwin)
321+
llvm_cmake_options.define('RUNTIMES_BUILD_ALLOW_DARWIN', 'ON')
322+
# Build all except rtsan
323+
llvm_cmake_options.define(
324+
f'RUNTIMES_{builtins_runtimes_target_for_darwin}_'
325+
'COMPILER_RT_SANITIZERS_TO_BUILD',
326+
'asan;dfsan;msan;hwasan;tsan;safestack;cfi;scudo_standalone;'
327+
'ubsan_minimal;gwp_asan;nsan;asan_abi')
294328

295329
if self.args.build_embedded_stdlib and system() == "Darwin":
296330
# Ask for Mach-O cross-compilation builtins (for Embedded Swift)
297331
llvm_cmake_options.define(
298332
'COMPILER_RT_FORCE_BUILD_BAREMETAL_MACHO_BUILTINS_ARCHS:STRING',
299333
'armv6 armv6m armv7 armv7m armv7em')
334+
llvm_cmake_options.define(
335+
f'BUILTINS_{builtins_runtimes_target_for_darwin}_'
336+
'COMPILER_RT_FORCE_BUILD_BAREMETAL_MACHO_BUILTINS_ARCHS:'
337+
'STRING', 'armv6 armv6m armv7 armv7m armv7em')
300338

301339
llvm_enable_projects = ['clang']
340+
llvm_enable_runtimes = []
302341

303342
if self.args.build_compiler_rt and \
304343
not self.is_cross_compile_target(host_target):
305-
llvm_enable_projects.append('compiler-rt')
344+
if self.args.llvm_build_compiler_rt_with_use_runtimes:
345+
llvm_enable_runtimes.append('compiler-rt')
346+
# This accounts for previous incremental runs that may have set
347+
# those in the LLVM CMakeCache.txt
348+
llvm_cmake_options.undefine('LLVM_TOOL_COMPILER_RT_BUILD')
349+
llvm_cmake_options.undefine('LLVM_BUILD_EXTERNAL_COMPILER_RT')
350+
else:
351+
# No need to unset anything,
352+
# since we set LLVM_ENABLE_RUNTIMES explicitly
353+
llvm_enable_projects.append('compiler-rt')
354+
llvm_cmake_options.define(
355+
'LLVM_TOOL_COMPILER_RT_BUILD:BOOL', 'TRUE')
356+
llvm_cmake_options.define(
357+
'LLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL', 'TRUE')
358+
else:
359+
if not self.args.llvm_build_compiler_rt_with_use_runtimes:
360+
# No need to unset anything,
361+
# since we set LLVM_ENABLE_RUNTIMES explicitly
362+
llvm_cmake_options.define(
363+
'LLVM_TOOL_COMPILER_RT_BUILD:BOOL', 'FALSE')
364+
llvm_cmake_options.define(
365+
'LLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL', 'FALSE')
306366

307367
if self.args.build_clang_tools_extra:
308368
llvm_enable_projects.append('clang-tools-extra')
@@ -316,18 +376,15 @@ def build(self, host_target):
316376
if self.args.build_lld:
317377
llvm_enable_projects.append('lld')
318378

379+
if self.args.test:
380+
# LLVMTestingSupport is not built at part of `all`
381+
# and is required by some Swift tests
382+
build_targets.append('LLVMTestingSupport')
383+
319384
llvm_cmake_options.define('LLVM_ENABLE_PROJECTS',
320385
';'.join(llvm_enable_projects))
321-
322-
# In the near future we are aiming to build compiler-rt with
323-
# LLVM_ENABLE_RUNTIMES
324-
# Until that happens, we need to unset this variable from
325-
# LLVM CMakeCache.txt for two reasons
326-
# * prevent PRs testing this variable to affect other runs landing
327-
# unrelated features
328-
# * avoid fallouts should we land such change and then have to revert
329-
# it to account for unforeseen regressions
330-
llvm_cmake_options.undefine('LLVM_ENABLE_RUNTIMES')
386+
llvm_cmake_options.define('LLVM_ENABLE_RUNTIMES',
387+
';'.join(llvm_enable_runtimes))
331388

332389
# NOTE: This is not a dead option! It is relied upon for certain
333390
# bots/build-configs!
@@ -491,9 +548,21 @@ def install(self, host_target):
491548
self.args.llvm_install_components != 'all':
492549
install_targets = []
493550
components = self.args.llvm_install_components.split(';')
551+
if self.args.llvm_build_compiler_rt_with_use_runtimes and \
552+
'compiler-rt' in components:
553+
# This is a courtesy fallback to avoid breaking downstream presets
554+
# we are not aware of
555+
components.remove('compiler-rt')
556+
components.append('builtins')
557+
components.append('runtimes')
558+
print('warning: replaced legacy LLVM component compiler-rt '
559+
'with builtins;runtimes -- consider updating your preset',
560+
flush=True)
561+
494562
for component in components:
495-
if self.is_cross_compile_target(host_target):
496-
if component == 'compiler-rt':
563+
if self.is_cross_compile_target(host_target) \
564+
or not self.args.build_compiler_rt:
565+
if component in ['compiler-rt', 'builtins', 'runtimes']:
497566
continue
498567
install_targets.append('install-{}'.format(component))
499568

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# REQUIRES: standalone_build
2+
# REQUIRES: OS=linux-gnu
3+
4+
# RUN: %empty-directory(%t)
5+
# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --skip-build --llvm-build-compiler-rt-with-use-runtimes --cmake %cmake 2>&1 | %FileCheck --check-prefix=LINUX %s
6+
# RUN: %empty-directory(%t)
7+
# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --skip-build --llvm-build-compiler-rt-with-use-runtimes=1 --cmake %cmake 2>&1 | %FileCheck --check-prefix=LINUX %s
8+
# RUN: %empty-directory(%t)
9+
# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --skip-build --cmake %cmake 2>&1 | %FileCheck --check-prefix=LINUX %s
10+
# RUN: %empty-directory(%t)
11+
# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --skip-build --llvm-build-compiler-rt-with-use-runtimes=0 --cmake %cmake 2>&1 | %FileCheck --check-prefix=LINUX %s
12+
13+
# LINUX: Building llvm
14+
# LINUX-DAG: cmake -G Ninja
15+
# LINUX-SAME: -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR{{[^ ]*}}=OFF
16+
# LINUX-SAME: -DSANITIZER_COMMON_LINK_FLAGS{{[^ ]*}}=-Wl,-z,undefs
17+
# LINUX-SAME: llvm
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# REQUIRES: standalone_build
2+
# REQUIRES: OS=macosx
3+
4+
# RUN: %empty-directory(%t)
5+
# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --skip-build --llvm-build-compiler-rt-with-use-runtimes --cmake %cmake 2>&1 | %FileCheck --check-prefix=LLVM-USE-RUNTIMES %s
6+
# RUN: %empty-directory(%t)
7+
# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --skip-build --llvm-build-compiler-rt-with-use-runtimes=1 --cmake %cmake 2>&1 | %FileCheck --check-prefix=LLVM-USE-RUNTIMES %s
8+
9+
# LLVM-USE-RUNTIMES: Building llvm
10+
# LLVM-USE-RUNTIMES-DAG: cmake -G Ninja
11+
# LLVM-USE-RUNTIMES-SAME: -DBUILTINS_{{[^ ]*}}_CMAKE_OSX_SYSROOT
12+
# LLVM-USE-RUNTIMES-SAME: -DRUNTIMES_{{[^ ]*}}_CMAKE_OSX_SYSROOT
13+
# LLVM-USE-RUNTIMES-SAME: -DLLVM_BUILTIN_TARGETS
14+
# LLVM-USE-RUNTIMES-SAME: -DLLVM_RUNTIME_TARGETS
15+
# LLVM-USE-RUNTIMES-SAME: -DRUNTIMES_{{[^ ]*}}_COMPILER_RT_SANITIZERS_TO_BUILD
16+
# LLVM-USE-RUNTIMES-NOT: rtsan
17+
# LLVM-USE-RUNTIMES-SAME: -DBUILTINS_{{[^ ]*}}_COMPILER_RT_FORCE_BUILD_BAREMETAL_MACHO_BUILTINS_ARCHS
18+
# LLVM-USE-RUNTIMES-SAME: llvm
19+
20+
# RUN: %empty-directory(%t)
21+
# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --skip-build --cmake %cmake 2>&1 | %FileCheck --check-prefix=EXTERNAL-COMPILER-RT %s
22+
# RUN: %empty-directory(%t)
23+
# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --skip-build --llvm-build-compiler-rt-with-use-runtimes=0 --cmake %cmake 2>&1 | %FileCheck --check-prefix=EXTERNAL-COMPILER-RT %s
24+
25+
# EXTERNAL-COMPILER-RT: Building llvm
26+
# EXTERNAL-COMPILER-RT-DAG: cmake -G Ninja
27+
# EXTERNAL-COMPILER-RT-SAME: -DCOMPILER_RT_FORCE_BUILD_BAREMETAL_MACHO_BUILTINS_ARCHS
28+
# EXTERNAL-COMPILER-RT-SAME: llvm
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# REQUIRES: standalone_build
2+
3+
# RUN: %empty-directory(%t)
4+
# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --skip-build --cmake %cmake 2>&1 | %FileCheck --check-prefix=EXTERNAL-COMPILER-RT-CHECK %s
5+
# RUN: %empty-directory(%t)
6+
# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --skip-build --llvm-build-compiler-rt-with-use-runtimes=0 --cmake %cmake 2>&1 | %FileCheck --check-prefix=EXTERNAL-COMPILER-RT-CHECK %s
7+
8+
# EXTERNAL-COMPILER-RT-CHECK: Building llvm
9+
# EXTERNAL-COMPILER-RT-CHECK-DAG: cmake -G Ninja
10+
# EXTERNAL-COMPILER-RT-CHECK-SAME: -DLLVM_TOOL_COMPILER_RT_BUILD:BOOL=TRUE
11+
# EXTERNAL-COMPILER-RT-CHECK-SAME: -DLLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL=TRUE
12+
# EXTERNAL-COMPILER-RT-CHECK-SAME: -DLLVM_ENABLE_PROJECTS{{[^ ]*}}={{[^ ]*}}compiler-rt
13+
# EXTERNAL-COMPILER-RT-CHECK-SAME: llvm
14+
15+
# RUN: %empty-directory(%t)
16+
# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --skip-build --skip-build-compiler-rt --cmake %cmake 2>&1 | %FileCheck --check-prefix=DONT-BUILD-COMPILER-RT %s
17+
# RUN: %empty-directory(%t)
18+
# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --skip-build --llvm-build-compiler-rt-with-use-runtimes=0 --skip-build-compiler-rt --cmake %cmake 2>&1 | %FileCheck --check-prefix=DONT-BUILD-COMPILER-RT %s
19+
20+
# DONT-BUILD-COMPILER-RT: Building llvm
21+
# DONT-BUILD-COMPILER-RT-DAG: cmake -G Ninja
22+
# DONT-BUILD-COMPILER-RT-SAME: -DLLVM_TOOL_COMPILER_RT_BUILD:BOOL=FALSE
23+
# DONT-BUILD-COMPILER-RT-SAME: -DLLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL=FALSE
24+
# DONT-BUILD-COMPILER-RT-NOT: compiler-rt
25+
# DONT-BUILD-COMPILER-RT-SAME: llvm
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# REQUIRES: standalone_build
2+
3+
# RUN: %empty-directory(%t)
4+
# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --skip-build --llvm-build-compiler-rt-with-use-runtimes --cmake %cmake 2>&1 | %FileCheck --check-prefix=LLVM-USE-RUNTIMES %s
5+
# RUN: %empty-directory(%t)
6+
# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --skip-build --llvm-build-compiler-rt-with-use-runtimes=1 --cmake %cmake 2>&1 | %FileCheck --check-prefix=LLVM-USE-RUNTIMES %s
7+
8+
# LLVM-USE-RUNTIMES: Building llvm
9+
# LLVM-USE-RUNTIMES-DAG: cmake -G Ninja
10+
# LLVM-USE-RUNTIMES-SAME: -ULLVM_TOOL_COMPILER_RT_BUILD
11+
# LLVM-USE-RUNTIMES-SAME: -ULLVM_BUILD_EXTERNAL_COMPILER_RT
12+
# LLVM-USE-RUNTIMES-SAME: -DLLVM_ENABLE_RUNTIMES{{[^ ]*}}={{[^ ]*}}compiler-rt
13+
# LLVM-USE-RUNTIMES-SAME: runtimes
14+
# LLVM-USE-RUNTIMES-SAME: llvm
15+
16+
# RUN: %empty-directory(%t)
17+
# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --skip-build --llvm-build-compiler-rt-with-use-runtimes --skip-build-compiler-rt --cmake %cmake 2>&1 | %FileCheck --check-prefix=DONT-BUILD-COMPILER-RT %s
18+
# RUN: %empty-directory(%t)
19+
# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --skip-build --llvm-build-compiler-rt-with-use-runtimes=1 --skip-build-compiler-rt --cmake %cmake 2>&1 | %FileCheck --check-prefix=DONT-BUILD-COMPILER-RT %s
20+
21+
# DONT-BUILD-COMPILER-RT: Building llvm
22+
# DONT-BUILD-COMPILER-RT-DAG: cmake -G Ninja
23+
# DONT-BUILD-COMPILER-RT-NOT: LLVM_TOOL_COMPILER_RT_BUILD
24+
# DONT-BUILD-COMPILER-RT-NOT: LLVM_BUILD_EXTERNAL_COMPILER_RT
25+
# DONT-BUILD-COMPILER-RT-NOT: compiler-rt
26+
# DONT-BUILD-COMPILER-RT-SAME: llvm

0 commit comments

Comments
 (0)