File tree 11 files changed +47
-20
lines changed
11 files changed +47
-20
lines changed Original file line number Diff line number Diff line change @@ -247,6 +247,8 @@ else()
247
247
include_directories (SYSTEM ${MLIR_TABLEGEN_OUTPUT_DIR} )
248
248
endif ()
249
249
250
+ option (FLANG_INCLUDE_RUNTIME "Build the runtime in-tree (deprecated; to be replaced with LLVM_ENABLE_RUNTIMES=flang-rt)" ON )
251
+
250
252
set (FLANG_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR} " CACHE PATH
251
253
"Path for binary subdirectory (defaults to '${CMAKE_INSTALL_BINDIR} ')" )
252
254
mark_as_advanced (FLANG_TOOLS_INSTALL_DIR)
@@ -487,7 +489,9 @@ if (FLANG_BUILD_TOOLS)
487
489
add_subdirectory (tools)
488
490
endif ()
489
491
490
- add_subdirectory (runtime)
492
+ if (FLANG_INCLUDE_RUNTIME)
493
+ add_subdirectory (runtime)
494
+ endif ()
491
495
492
496
if (LLVM_INCLUDE_EXAMPLES)
493
497
add_subdirectory (examples)
Original file line number Diff line number Diff line change 1
- add_subdirectory (ExternalHelloWorld)
1
+ if (FLANG_INCLUDE_RUNTIME)
2
+ add_subdirectory (ExternalHelloWorld)
3
+ endif ()
2
4
add_subdirectory (PrintFlangFunctionNames)
3
5
add_subdirectory (FlangOmpReport)
4
6
add_subdirectory (FeatureList)
Original file line number Diff line number Diff line change @@ -71,9 +71,13 @@ set(FLANG_TEST_DEPENDS
71
71
llvm-objdump
72
72
llvm-readobj
73
73
split-file
74
- FortranRuntime
75
74
FortranDecimal
76
75
)
76
+
77
+ if (FLANG_INCLUDE_RUNTIME)
78
+ list (APPEND FLANG_TEST_DEPENDS FortranRuntime)
79
+ endif ()
80
+
77
81
if (LLVM_ENABLE_PLUGINS AND NOT WIN32 )
78
82
list (APPEND FLANG_TEST_DEPENDS Bye)
79
83
endif ()
Original file line number Diff line number Diff line change 1
1
! UNSUPPORTED: system-windows
2
+ ! REQUIRES: flang-rt
2
3
! RUN: split-file %s %t
3
4
! RUN: chmod +x %t/runtest.sh
4
5
! RUN: %t/runtest.sh %t %t/ffile.f90 %t/cfile.c %flang | FileCheck %s
Original file line number Diff line number Diff line change 1
1
! UNSUPPORTED: system-windows
2
+ ! REQUIRES: flang-rt
2
3
! Verify that flang can correctly build executables.
3
4
4
5
! RUN: %flang %s -o %t
Original file line number Diff line number Diff line change @@ -3,7 +3,7 @@ This test makes sure that flang's runtime does not depend on the C++ runtime
3
3
library. It tries to link this simple file against libFortranRuntime.a with
4
4
a C compiler.
5
5
6
- REQUIRES: c-compiler
6
+ REQUIRES: c-compiler, flang-rt
7
7
8
8
RUN: %if system-aix %{ export OBJECT_MODE=64 %}
9
9
RUN: %cc -std=c99 %s -I%include %libruntime -lm \
Original file line number Diff line number Diff line change 163
163
ToolSubst ("%not_todo_abort_cmd" , command = FindTool ("not" ), unresolved = "fatal" )
164
164
)
165
165
166
+ if config .flang_include_runtime :
167
+ config .available_features .add ("flang-rt" )
168
+
166
169
# Define some variables to help us test that the flang runtime doesn't depend on
167
170
# the C++ runtime libraries. For this we need a C compiler. If for some reason
168
171
# we don't have one, we can just disable the test.
169
- if config .cc :
172
+ if config .flang_include_runtime and config . cc :
170
173
libruntime = os .path .join (config .flang_lib_dir , "libFortranRuntime.a" )
171
174
include = os .path .join (config .flang_src_dir , "include" )
172
175
Original file line number Diff line number Diff line change 1
1
@LIT_SITE_CFG_IN_HEADER@
2
2
3
3
import sys
4
+ import lit.util
4
5
5
6
config.llvm_tools_dir = lit_config.substitute("@LLVM_TOOLS_DIR@")
6
7
config.llvm_shlib_dir = lit_config.substitute(path(r"@SHLIBDIR@"))
32
33
config.openmp_module_dir = None
33
34
config.flang_runtime_f128_math_lib = "@FLANG_RUNTIME_F128_MATH_LIB@"
34
35
config.have_ldbl_mant_dig_113 = "@HAVE_LDBL_MANT_DIG_113@"
36
+ config.flang_include_runtime = lit.util.pythonize_bool("@FLANG_INCLUDE_RUNTIME@")
35
37
36
38
import lit.llvm
37
39
lit.llvm.initialize(lit_config, config)
Original file line number Diff line number Diff line change @@ -109,7 +109,7 @@ if (NOT CMAKE_CROSSCOMPILING)
109
109
set (compile_with "-fsyntax-only" )
110
110
set (object_output "" )
111
111
set (include_in_link FALSE )
112
- if (${filename} IN_LIST MODULES_WITH_IMPLEMENTATION)
112
+ if (${filename} IN_LIST MODULES_WITH_IMPLEMENTATION AND FLANG_INCLUDE_RUNTIME )
113
113
set (object_output "${CMAKE_CURRENT_BINARY_DIR} /${filename}${CMAKE_CXX_OUTPUT_EXTENSION} " )
114
114
set (compile_with -c -o ${object_output} )
115
115
set (include_in_link TRUE )
Original file line number Diff line number Diff line change
1
+ include (AddFlangOffloadRuntime)
2
+
1
3
if (FLANG_EXPERIMENTAL_CUDA_RUNTIME)
2
4
# If Fortran runtime is built as CUDA library, the linking
3
5
# of targets that link FortranRuntime must be done
@@ -11,6 +13,11 @@ add_custom_target(FlangUnitTests)
11
13
set_target_properties (FlangUnitTests PROPERTIES FOLDER "Flang/Tests" )
12
14
13
15
function (add_flang_unittest_offload_properties target )
16
+ # Do not apply runtime properties if not even compiling the runtime.
17
+ if (NOT FLANG_INCLUDE_RUNTIME)
18
+ return ()
19
+ endif ()
20
+
14
21
# Set CUDA_RESOLVE_DEVICE_SYMBOLS.
15
22
if (FLANG_EXPERIMENTAL_CUDA_RUNTIME)
16
23
set_target_properties (${target}
@@ -75,5 +82,7 @@ add_subdirectory(Optimizer)
75
82
add_subdirectory (Common)
76
83
add_subdirectory (Decimal)
77
84
add_subdirectory (Evaluate)
78
- add_subdirectory (Runtime)
85
+ if (FLANG_INCLUDE_RUNTIME)
86
+ add_subdirectory (Runtime)
87
+ endif ()
79
88
add_subdirectory (Frontend)
Original file line number Diff line number Diff line change @@ -33,7 +33,6 @@ add_flang_nongtest_unittest(intrinsics
33
33
FortranDecimal
34
34
FortranSemantics
35
35
FortranParser
36
- FortranRuntime
37
36
)
38
37
39
38
add_flang_nongtest_unittest(logical
@@ -56,19 +55,21 @@ add_flang_nongtest_unittest(real
56
55
)
57
56
llvm_update_compile_flags(real.test )
58
57
59
- add_flang_nongtest_unittest(reshape
60
- NonGTestTesting
61
- FortranSemantics
62
- FortranEvaluate
63
- FortranRuntime
64
- )
58
+ if (FLANG_INCLUDE_RUNTIME)
59
+ add_flang_nongtest_unittest(reshape
60
+ NonGTestTesting
61
+ FortranSemantics
62
+ FortranEvaluate
63
+ FortranRuntime
64
+ )
65
65
66
- add_flang_nongtest_unittest(ISO-Fortran-binding
67
- NonGTestTesting
68
- FortranEvaluate
69
- FortranSemantics
70
- FortranRuntime
71
- )
66
+ add_flang_nongtest_unittest(ISO-Fortran-binding
67
+ NonGTestTesting
68
+ FortranEvaluate
69
+ FortranSemantics
70
+ FortranRuntime
71
+ )
72
+ endif ()
72
73
73
74
add_flang_nongtest_unittest(folding
74
75
FortranSupport
You can’t perform that action at this time.
0 commit comments