File tree Expand file tree Collapse file tree 10 files changed +50
-29
lines changed Expand file tree Collapse file tree 10 files changed +50
-29
lines changed Original file line number Diff line number Diff line change @@ -233,6 +233,9 @@ else()
233
233
include_directories (SYSTEM ${MLIR_TABLEGEN_OUTPUT_DIR} )
234
234
endif ()
235
235
236
+ option (FLANG_INCLUDE_RUNTIME "Build the runtime in-tree (deprecated; to be replaced with LLVM_ENABLE_RUNTIMES=flang-rt)" ON )
237
+ pythonize_bool (FLANG_INCLUDE_RUNTIME )
238
+
236
239
set (FLANG_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR} " CACHE PATH
237
240
"Path for binary subdirectory (defaults to '${CMAKE_INSTALL_BINDIR} ')" )
238
241
mark_as_advanced (FLANG_TOOLS_INSTALL_DIR )
@@ -473,7 +476,9 @@ if (FLANG_CUF_RUNTIME)
473
476
find_package (CUDAToolkit REQUIRED )
474
477
endif ()
475
478
476
- add_subdirectory (runtime )
479
+ if (FLANG_INCLUDE_RUNTIME )
480
+ add_subdirectory (runtime )
481
+ endif ()
477
482
478
483
if (LLVM_INCLUDE_EXAMPLES )
479
484
add_subdirectory (examples )
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 32
32
config.openmp_module_dir = None
33
33
config.flang_runtime_f128_math_lib = "@FLANG_RUNTIME_F128_MATH_LIB@"
34
34
config.have_ldbl_mant_dig_113 = "@HAVE_LDBL_MANT_DIG_113@"
35
+ config.flang_include_runtime = @FLANG_INCLUDE_RUNTIME@
35
36
36
37
import lit.llvm
37
38
lit.llvm.initialize(lit_config, config)
Original file line number Diff line number Diff line change @@ -72,7 +72,7 @@ if (NOT CMAKE_CROSSCOMPILING)
72
72
set (depends ${FLANG_INTRINSIC_MODULES_DIR} /__cuda_builtins.mod )
73
73
else ()
74
74
set (depends ${FLANG_INTRINSIC_MODULES_DIR} /__fortran_builtins.mod )
75
- if (${filename} STREQUAL "iso_fortran_env" )
75
+ if (${filename} STREQUAL "iso_fortran_env" AND FLANG_INCLUDE_RUNTIME )
76
76
set (depends ${depends} ${FLANG_INTRINSIC_MODULES_DIR} /iso_fortran_env_impl.mod )
77
77
endif ()
78
78
if (${filename} STREQUAL "ieee_arithmetic" OR
@@ -105,7 +105,7 @@ if (NOT CMAKE_CROSSCOMPILING)
105
105
set (compile_with "-fsyntax-only" )
106
106
set (object_output "" )
107
107
set (include_in_link FALSE )
108
- if (${filename} IN_LIST MODULES_WITH_IMPLEMENTATION )
108
+ if (${filename} IN_LIST MODULES_WITH_IMPLEMENTATION AND FORTRAN_INCLUDE_RUNTIME )
109
109
set (object_output "${CMAKE_CURRENT_BINARY_DIR} /${filename}${CMAKE_CXX_OUTPUT_EXTENSION} " )
110
110
set (compile_with -c -o ${object_output} )
111
111
set (include_in_link TRUE )
Original file line number Diff line number Diff line change @@ -24,7 +24,7 @@ function(add_flang_unittest_offload_properties target)
24
24
# FIXME: replace 'native' in --offload-arch option with the list
25
25
# of targets that Fortran Runtime was built for.
26
26
# Common code must be moved from flang/runtime/CMakeLists.txt.
27
- if (NOT FLANG_EXPERIMENTAL_OMP_OFFLOAD_BUILD STREQUAL "off" )
27
+ if (FLANG_EXPERIMENTAL_OMP_OFFLOAD_BUILD )
28
28
set_target_properties (${target}
29
29
PROPERTIES LINK_OPTIONS
30
30
"-fopenmp;--offload-arch=native"
@@ -75,5 +75,7 @@ add_subdirectory(Optimizer)
75
75
add_subdirectory (Common )
76
76
add_subdirectory (Decimal )
77
77
add_subdirectory (Evaluate )
78
- add_subdirectory (Runtime )
78
+ if (FLANG_INCLUDE_RUNTIME )
79
+ add_subdirectory (Runtime )
80
+ endif ()
79
81
add_subdirectory (Frontend )
Original file line number Diff line number Diff line change @@ -26,15 +26,17 @@ add_flang_nongtest_unittest(integer
26
26
FortranSemantics
27
27
)
28
28
29
- add_flang_nongtest_unittest (intrinsics
30
- FortranSupport
31
- NonGTestTesting
32
- FortranEvaluate
33
- FortranDecimal
34
- FortranSemantics
35
- FortranParser
36
- FortranRuntime
37
- )
29
+ if (FLANG_INCLUDE_RUNTIME )
30
+ add_flang_nongtest_unittest (intrinsics
31
+ FortranSupport
32
+ NonGTestTesting
33
+ FortranEvaluate
34
+ FortranDecimal
35
+ FortranSemantics
36
+ FortranParser
37
+ FortranRuntime
38
+ )
39
+ endif ()
38
40
39
41
add_flang_nongtest_unittest (logical
40
42
NonGTestTesting
@@ -56,19 +58,21 @@ add_flang_nongtest_unittest(real
56
58
)
57
59
llvm_update_compile_flags (real.test )
58
60
59
- add_flang_nongtest_unittest (reshape
60
- NonGTestTesting
61
- FortranSemantics
62
- FortranEvaluate
63
- FortranRuntime
64
- )
61
+ if (FLANG_INCLUDE_RUNTIME )
62
+ add_flang_nongtest_unittest (reshape
63
+ NonGTestTesting
64
+ FortranSemantics
65
+ FortranEvaluate
66
+ FortranRuntime
67
+ )
65
68
66
- add_flang_nongtest_unittest (ISO-Fortran-binding
67
- NonGTestTesting
68
- FortranEvaluate
69
- FortranSemantics
70
- FortranRuntime
71
- )
69
+ add_flang_nongtest_unittest (ISO-Fortran-binding
70
+ NonGTestTesting
71
+ FortranEvaluate
72
+ FortranSemantics
73
+ FortranRuntime
74
+ )
75
+ endif ()
72
76
73
77
add_flang_nongtest_unittest (folding
74
78
FortranSupport
You can’t perform that action at this time.
0 commit comments