https://github.com/Meinersbur updated https://github.com/llvm/llvm-project/pull/122341
>From c77098f90a5c20bdbce078a0ee3aec1fe53772e3 Mon Sep 17 00:00:00 2001 From: Michael Kruse <llvm-proj...@meinersbur.de> Date: Wed, 8 Jan 2025 11:23:02 +0100 Subject: [PATCH 1/5] clang-format to sort headers --- flang/tools/f18-parse-demo/f18-parse-demo.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flang/tools/f18-parse-demo/f18-parse-demo.cpp b/flang/tools/f18-parse-demo/f18-parse-demo.cpp index 90bbce246e3f16..a50c88dc840643 100644 --- a/flang/tools/f18-parse-demo/f18-parse-demo.cpp +++ b/flang/tools/f18-parse-demo/f18-parse-demo.cpp @@ -21,7 +21,6 @@ // scaffolding compiler driver that can test some semantic passes of the // F18 compiler under development. -#include "flang/Support/Fortran-features.h" #include "flang/Parser/characters.h" #include "flang/Parser/dump-parse-tree.h" #include "flang/Parser/message.h" @@ -30,6 +29,7 @@ #include "flang/Parser/parsing.h" #include "flang/Parser/provenance.h" #include "flang/Parser/unparse.h" +#include "flang/Support/Fortran-features.h" #include "flang/Support/default-kinds.h" #include "llvm/Support/Errno.h" #include "llvm/Support/FileSystem.h" >From 22ed7ebde19d4003fa3036039f75977b1e6b9f60 Mon Sep 17 00:00:00 2001 From: Michael Kruse <llvm-proj...@meinersbur.de> Date: Wed, 8 Jan 2025 14:15:45 +0100 Subject: [PATCH 2/5] FortranRuntime -> flang_rt --- clang/lib/Driver/ToolChains/CommonArgs.cpp | 4 +- clang/lib/Driver/ToolChains/Flang.cpp | 8 ++-- flang-rt/unittests/Evaluate/CMakeLists.txt | 21 ++++++++++ flang/CMakeLists.txt | 2 +- flang/docs/FlangDriver.md | 8 ++-- flang/docs/GettingStarted.md | 6 +-- flang/docs/OpenACC-descriptor-management.md | 2 +- flang/docs/ReleaseNotes.md | 2 + .../ExternalHelloWorld/CMakeLists.txt | 2 +- flang/runtime/CMakeLists.txt | 40 +++++++++++-------- flang/runtime/CUDA/CMakeLists.txt | 2 +- flang/runtime/Float128Math/CMakeLists.txt | 2 +- flang/runtime/time-intrinsic.cpp | 2 +- flang/test/CMakeLists.txt | 6 ++- .../test/Driver/gcc-toolchain-install-dir.f90 | 2 +- flang/test/Driver/linker-flags.f90 | 8 ++-- .../test/Driver/msvc-dependent-lib-flags.f90 | 8 ++-- flang/test/Driver/nostdlib.f90 | 2 +- flang/test/Runtime/no-cpp-dep.c | 2 +- flang/test/lit.cfg.py | 2 +- flang/tools/f18/CMakeLists.txt | 8 ++-- flang/unittests/CMakeLists.txt | 2 +- flang/unittests/Evaluate/CMakeLists.txt | 9 +++-- flang/unittests/Frontend/CMakeLists.txt | 1 + flang/unittests/Runtime/CMakeLists.txt | 2 +- flang/unittests/Runtime/CUDA/CMakeLists.txt | 2 +- lld/COFF/MinGW.cpp | 2 +- 27 files changed, 97 insertions(+), 60 deletions(-) create mode 100644 flang-rt/unittests/Evaluate/CMakeLists.txt diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp index 9e9872975de9c2..4c6b9f29f362ca 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -1317,7 +1317,7 @@ void tools::addOpenMPHostOffloadingArgs(const Compilation &C, /// Add Fortran runtime libs void tools::addFortranRuntimeLibs(const ToolChain &TC, const ArgList &Args, llvm::opt::ArgStringList &CmdArgs) { - // Link FortranRuntime + // Link flang_rt // These are handled earlier on Windows by telling the frontend driver to // add the correct libraries to link against as dependents in the object // file. @@ -1333,7 +1333,7 @@ void tools::addFortranRuntimeLibs(const ToolChain &TC, const ArgList &Args, if (AsNeeded) addAsNeededOption(TC, Args, CmdArgs, /*as_needed=*/false); } - CmdArgs.push_back("-lFortranRuntime"); + CmdArgs.push_back("-lflang_rt"); addArchSpecificRPath(TC, Args, CmdArgs); } diff --git a/clang/lib/Driver/ToolChains/Flang.cpp b/clang/lib/Driver/ToolChains/Flang.cpp index 749af4ada9a696..2cf1108b28dab3 100644 --- a/clang/lib/Driver/ToolChains/Flang.cpp +++ b/clang/lib/Driver/ToolChains/Flang.cpp @@ -356,26 +356,26 @@ static void processVSRuntimeLibrary(const ToolChain &TC, const ArgList &Args, case options::OPT__SLASH_MT: CmdArgs.push_back("-D_MT"); CmdArgs.push_back("--dependent-lib=libcmt"); - CmdArgs.push_back("--dependent-lib=FortranRuntime.static.lib"); + CmdArgs.push_back("--dependent-lib=flang_rt.static.lib"); break; case options::OPT__SLASH_MTd: CmdArgs.push_back("-D_MT"); CmdArgs.push_back("-D_DEBUG"); CmdArgs.push_back("--dependent-lib=libcmtd"); - CmdArgs.push_back("--dependent-lib=FortranRuntime.static_dbg.lib"); + CmdArgs.push_back("--dependent-lib=flang_rt.static_dbg.lib"); break; case options::OPT__SLASH_MD: CmdArgs.push_back("-D_MT"); CmdArgs.push_back("-D_DLL"); CmdArgs.push_back("--dependent-lib=msvcrt"); - CmdArgs.push_back("--dependent-lib=FortranRuntime.dynamic.lib"); + CmdArgs.push_back("--dependent-lib=flang_rt.dynamic.lib"); break; case options::OPT__SLASH_MDd: CmdArgs.push_back("-D_MT"); CmdArgs.push_back("-D_DEBUG"); CmdArgs.push_back("-D_DLL"); CmdArgs.push_back("--dependent-lib=msvcrtd"); - CmdArgs.push_back("--dependent-lib=FortranRuntime.dynamic_dbg.lib"); + CmdArgs.push_back("--dependent-lib=flang_rt.dynamic_dbg.lib"); break; } } diff --git a/flang-rt/unittests/Evaluate/CMakeLists.txt b/flang-rt/unittests/Evaluate/CMakeLists.txt new file mode 100644 index 00000000000000..6efe0ca5f619b7 --- /dev/null +++ b/flang-rt/unittests/Evaluate/CMakeLists.txt @@ -0,0 +1,21 @@ +#===-- unittests/Evaluate/CMakeLists.txt -----------------------------------===# +# +# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +# See https://llvm.org/LICENSE.txt for license information. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +# +#===------------------------------------------------------------------------===# + +add_flang_nongtest_unittest(reshape + FortranEvaluateTesting + FortranSemantics + FortranEvaluate + flang_rt +) + +add_flang_nongtest_unittest(ISO-Fortran-binding + FortranEvaluateTesting + FortranEvaluate + FortranSemantics + flang_rt +) diff --git a/flang/CMakeLists.txt b/flang/CMakeLists.txt index 68947eaa9c9bd7..d6ee5db39b20f7 100644 --- a/flang/CMakeLists.txt +++ b/flang/CMakeLists.txt @@ -285,7 +285,7 @@ set(FLANG_DEFAULT_LINKER "" CACHE STRING "Default linker to use (linker name or absolute path, empty for platform default)") set(FLANG_DEFAULT_RTLIB "" CACHE STRING - "Default Fortran runtime library to use (\"libFortranRuntime\"), leave empty for platform default.") + "Default Fortran runtime library to use (\"libflang_rt\"), leave empty for platform default.") if (NOT(FLANG_DEFAULT_RTLIB STREQUAL "")) message(WARNING "Resetting Flang's default runtime library to use platform default.") diff --git a/flang/docs/FlangDriver.md b/flang/docs/FlangDriver.md index 8131e6ffd514dc..f3a732b0398900 100644 --- a/flang/docs/FlangDriver.md +++ b/flang/docs/FlangDriver.md @@ -175,18 +175,18 @@ like this: ``` $ flang -v -o example example.o -"/usr/bin/ld" [...] example.o [...] "-lFortranRuntime" [...] +"/usr/bin/ld" [...] example.o [...] "-lflang_rt" [...] ``` The automatically added libraries are: -* `FortranRuntime`: Provides most of the Flang runtime library. +* `flang_rt`: Provides most of the Flang runtime library. If the code is C/C++ based and invokes Fortran routines, one can either use Clang or Flang as the linker driver. If Clang is used, it will automatically all required runtime libraries needed by C++ (e.g., for STL) to the linker invocation. -In this case, one has to explicitly provide the Fortran runtime libraries -`FortranRuntime`. An alternative is to use Flang to link. +In this case, one has to explicitly provide the Fortran runtime library +`flang_rt`. An alternative is to use Flang to link. In this case, it may be required to explicitly supply C++ runtime libraries. On Darwin, the logical root where the system libraries are located (sysroot) diff --git a/flang/docs/GettingStarted.md b/flang/docs/GettingStarted.md index 1c85a6754b155b..ffde50b6f481e8 100644 --- a/flang/docs/GettingStarted.md +++ b/flang/docs/GettingStarted.md @@ -216,7 +216,7 @@ cmake \ -DCMAKE_CUDA_COMPILER=clang \ -DCMAKE_CUDA_HOST_COMPILER=clang++ \ ../runtime/ -make -j FortranRuntime +make -j flang-rt ``` Note that the used version of `clang` must [support](https://releases.llvm.org/16.0.0/tools/clang/docs/ReleaseNotes.html#cuda-support) @@ -239,7 +239,7 @@ cmake \ -DCMAKE_CUDA_HOST_COMPILER=clang++ \ ../runtime/ -make -j FortranRuntime +make -j flang-rt ``` Note that `nvcc` might limit support to certain @@ -294,7 +294,7 @@ cmake \ -DFLANG_OMP_DEVICE_ARCHITECTURES="all" \ ../runtime/ -make -j FortranRuntime +make -j flang-rt ``` The result of the build is a "device-only" library, i.e. the host diff --git a/flang/docs/OpenACC-descriptor-management.md b/flang/docs/OpenACC-descriptor-management.md index 0b5103000d8e7c..215643086fb7d1 100644 --- a/flang/docs/OpenACC-descriptor-management.md +++ b/flang/docs/OpenACC-descriptor-management.md @@ -427,7 +427,7 @@ The implementation's behavior may be described as (OpenACC 2.7.2): All the "is-present" checks and the data actions for the auxiliary pointers must be performed atomically with regards to the present counters bookkeeping. -The API relies on the primitives provided by `liboffload`, so it is provided by a new F18 runtime library, e.g. `FortranOffloadRuntime`, that depends on `FortranRuntime` and `liboffload`. The F18 driver adds `FortranOffloadRuntime` for linking under `-fopenacc`/`-fopenmp` (and maybe additional switches like `-fopenmp-targets`). +The API relies on the primitives provided by `liboffload`, so it is provided by a new F18 runtime library, e.g. `FortranOffloadRuntime`, that depends on `flang_rt` and `liboffload`. The F18 driver adds `FortranOffloadRuntime` for linking under `-fopenacc`/`-fopenmp` (and maybe additional switches like `-fopenmp-targets`). ## TODOs: diff --git a/flang/docs/ReleaseNotes.md b/flang/docs/ReleaseNotes.md index f0c956281915f4..a163b4f4ed67de 100644 --- a/flang/docs/ReleaseNotes.md +++ b/flang/docs/ReleaseNotes.md @@ -36,6 +36,8 @@ page](https://llvm.org/releases/). ## Build System Changes + * FortranRuntime has been renamed to `flang_rt`. + ## New Issues Found diff --git a/flang/examples/ExternalHelloWorld/CMakeLists.txt b/flang/examples/ExternalHelloWorld/CMakeLists.txt index 042d4b6238ba45..213fc462ac2b1a 100644 --- a/flang/examples/ExternalHelloWorld/CMakeLists.txt +++ b/flang/examples/ExternalHelloWorld/CMakeLists.txt @@ -5,5 +5,5 @@ add_llvm_example(external-hello-world target_link_libraries(external-hello-world PRIVATE - FortranRuntime + flang_rt ) diff --git a/flang/runtime/CMakeLists.txt b/flang/runtime/CMakeLists.txt index 8e74467aa399eb..078c24406fd215 100644 --- a/flang/runtime/CMakeLists.txt +++ b/flang/runtime/CMakeLists.txt @@ -236,13 +236,13 @@ set(supported_files utf.cpp ) -enable_cuda_compilation(FortranRuntime "${supported_files}") +enable_cuda_compilation(flang_rt "${supported_files}") enable_omp_offload_compilation("${supported_files}") if (NOT TARGET FortranFloat128Math) # If FortranFloat128Math is not defined, then we are not building # standalone FortranFloat128Math library. Instead, include - # the relevant sources into FortranRuntime itself. + # the relevant sources into flang_rt itself. # The information is provided via FortranFloat128MathILib # interface library. get_target_property(f128_sources @@ -270,37 +270,37 @@ if (NOT TARGET FortranFloat128Math) endif() if (NOT DEFINED MSVC) - add_flang_library(FortranRuntime + add_flang_library(flang_rt ${sources} INSTALL_WITH_TOOLCHAIN ) else() - add_flang_library(FortranRuntime + add_flang_library(flang_rt ${sources} ) set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreaded) - add_flang_library(FortranRuntime.static ${sources} + add_flang_library(flang_rt.static ${sources} INSTALL_WITH_TOOLCHAIN) - set_target_properties(FortranRuntime.static PROPERTIES FOLDER "Flang/Runtime Libraries") + set_target_properties(flang_rt.static PROPERTIES FOLDER "Flang/Runtime Libraries") set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreadedDLL) - add_flang_library(FortranRuntime.dynamic ${sources} + add_flang_library(flang_rt.dynamic ${sources} INSTALL_WITH_TOOLCHAIN) - set_target_properties(FortranRuntime.dynamic PROPERTIES FOLDER "Flang/Runtime Libraries") + set_target_properties(flang_rt.dynamic PROPERTIES FOLDER "Flang/Runtime Libraries") set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreadedDebug) - add_flang_library(FortranRuntime.static_dbg ${sources} + add_flang_library(flang_rt.static_dbg ${sources} INSTALL_WITH_TOOLCHAIN) - set_target_properties(FortranRuntime.static_dbg PROPERTIES FOLDER "Flang/Runtime Libraries") + set_target_properties(flang_rt.static_dbg PROPERTIES FOLDER "Flang/Runtime Libraries") set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreadedDebugDLL) - add_flang_library(FortranRuntime.dynamic_dbg ${sources} + add_flang_library(flang_rt.dynamic_dbg ${sources} INSTALL_WITH_TOOLCHAIN) - set_target_properties(FortranRuntime.dynamic_dbg PROPERTIES FOLDER "Flang/Runtime Libraries") - add_dependencies(FortranRuntime FortranRuntime.static FortranRuntime.dynamic - FortranRuntime.static_dbg FortranRuntime.dynamic_dbg) + set_target_properties(flang_rt.dynamic_dbg PROPERTIES FOLDER "Flang/Runtime Libraries") + add_dependencies(flang_rt flang_rt.static flang_rt.dynamic + flang_rt.static_dbg flang_rt.dynamic_dbg) endif() -set_target_properties(FortranRuntime PROPERTIES FOLDER "Flang/Runtime Libraries") +set_target_properties(flang_rt PROPERTIES FOLDER "Flang/Runtime Libraries") -# If FortranRuntime is part of a Flang build (and not a separate build) then +# If flang_rt is part of a Flang build (and not a separate build) then # add dependency to make sure that Fortran runtime library is being built after # we have the Flang compiler available. This also includes the MODULE files # that compile when the 'flang' target is built. @@ -308,9 +308,15 @@ set_target_properties(FortranRuntime PROPERTIES FOLDER "Flang/Runtime Libraries" # TODO: This is a workaround and should be updated when runtime build procedure # is changed to a regular runtime build. See discussion in PR #95388. if (TARGET flang AND TARGET module_files) - add_dependencies(FortranRuntime flang module_files) + add_dependencies(flang_rt flang module_files) endif() if (FLANG_CUF_RUNTIME) add_subdirectory(CUDA) endif() + +# Compatibility targets. +add_custom_target(flang-rt) +add_dependencies(flang-rt flang_rt) +add_custom_target(FortranRuntime) +add_dependencies(FortranRuntime flang_rt) diff --git a/flang/runtime/CUDA/CMakeLists.txt b/flang/runtime/CUDA/CMakeLists.txt index 3a88824826de31..744df95267e6fc 100644 --- a/flang/runtime/CUDA/CMakeLists.txt +++ b/flang/runtime/CUDA/CMakeLists.txt @@ -31,6 +31,6 @@ endif() target_link_libraries(${CUFRT_LIBNAME} PRIVATE - FortranRuntime + flang_rt ${CUDA_RT_TARGET} ) diff --git a/flang/runtime/Float128Math/CMakeLists.txt b/flang/runtime/Float128Math/CMakeLists.txt index 703f85fcaf8dac..d65193be05ab5c 100644 --- a/flang/runtime/Float128Math/CMakeLists.txt +++ b/flang/runtime/Float128Math/CMakeLists.txt @@ -118,7 +118,7 @@ elseif (HAVE_LDBL_MANT_DIG_113) ) target_sources(FortranFloat128MathILib INTERFACE ${sources}) else() - message(FATAL_ERROR "FortranRuntime cannot build without libm") + message(FATAL_ERROR "flang_rt cannot build without libm") endif() else() # We can use '__float128' version from libc, if it has them. diff --git a/flang/runtime/time-intrinsic.cpp b/flang/runtime/time-intrinsic.cpp index e6f6e81c7b50cc..942604a92aaad7 100644 --- a/flang/runtime/time-intrinsic.cpp +++ b/flang/runtime/time-intrinsic.cpp @@ -62,7 +62,7 @@ template <typename Unused = void> double GetCpuTime(fallback_implementation) { #if defined __MINGW32__ // clock_gettime is implemented in the pthread library for MinGW. -// Using it here would mean that all programs that link libFortranRuntime are +// Using it here would mean that all programs that link libflang_rt are // required to also link to pthread. Instead, don't use the function. #undef CLOCKID_CPU_TIME #undef CLOCKID_ELAPSED_TIME diff --git a/flang/test/CMakeLists.txt b/flang/test/CMakeLists.txt index e38c9b50259376..9c4a13267b1749 100644 --- a/flang/test/CMakeLists.txt +++ b/flang/test/CMakeLists.txt @@ -71,7 +71,7 @@ set(FLANG_TEST_DEPENDS llvm-objdump llvm-readobj split-file - FortranRuntime + flang_rt ) if (LLVM_ENABLE_PLUGINS AND NOT WIN32) list(APPEND FLANG_TEST_DEPENDS Bye) @@ -119,3 +119,7 @@ if (DEFINED FLANG_TEST_TARGET_TRIPLE) "to use FLANG_TEST_TARGET_TRIPLE.") endif() endif() + +# Compatibility targets. +add_custom_target(check-flang-rt) +add_dependencies(check-flang-rt check-flang) diff --git a/flang/test/Driver/gcc-toolchain-install-dir.f90 b/flang/test/Driver/gcc-toolchain-install-dir.f90 index 5a073b0c517122..d9160e1971250f 100644 --- a/flang/test/Driver/gcc-toolchain-install-dir.f90 +++ b/flang/test/Driver/gcc-toolchain-install-dir.f90 @@ -1,5 +1,5 @@ !! Test that --gcc-toolchain and --gcc-install-dir options are working as expected. -!! It does not test cross-compiling (--sysroot), so crtbegin.o, libgcc/compiler-rt, libc, libFortranRuntime, etc. are not supposed to be affected. +!! It does not test cross-compiling (--sysroot), so crtbegin.o, libgcc/compiler-rt, libc, libflang_rt, etc. are not supposed to be affected. !! PREFIX is captured twice because the driver escapes backslashes (occuring in Windows paths) in the -### output, but not on the "Selected GCC installation:" line. ! RUN: %flang 2>&1 -### -v -o %t %s -no-integrated-as -fuse-ld=ld --target=i386-unknown-linux-gnu --gcc-install-dir=%S/Inputs/basic_cross_linux_tree/usr/lib/gcc/i386-unknown-linux-gnu/10.2.0 | FileCheck %s --check-prefix=CHECK-I386 diff --git a/flang/test/Driver/linker-flags.f90 b/flang/test/Driver/linker-flags.f90 index fdeb95e4dd97c6..5dc89fe45c8cc0 100644 --- a/flang/test/Driver/linker-flags.f90 +++ b/flang/test/Driver/linker-flags.f90 @@ -33,26 +33,26 @@ ! SOLARIS-F128NONE-NOT: FortranFloat128Math ! UNIX-F128LIBQUADMATH-SAME: "-lFortranFloat128Math" "--as-needed" "-lquadmath" "--no-as-needed" ! SOLARIS-F128LIBQUADMATH-SAME: "-lFortranFloat128Math" "-z" "ignore" "-lquadmath" "-z" "record" -! UNIX-SAME: "-lFortranRuntime" "-lm" +! UNIX-SAME: "-lflang_rt" "-lm" ! COMPILER-RT: "{{.*}}{{\\|/}}libclang_rt.builtins.a" ! DARWIN-LABEL: "{{.*}}ld{{(\.exe)?}}" ! DARWIN-SAME: "[[object_file]]" ! DARWIN-F128NONE-NOT: FortranFloat128Math ! DARWIN-F128LIBQUADMATH-SAME: "-lFortranFloat128Math" "--as-needed" "-lquadmath" "--no-as-needed" -! DARWIN-SAME: -lFortranRuntime +! DARWIN-SAME: -lflang_rt ! HAIKU-LABEL: "{{.*}}ld{{(\.exe)?}}" ! HAIKU-SAME: "[[object_file]]" ! HAIKU-F128NONE-NOT: FortranFloat128Math ! HAIKU-F128LIBQUADMATH-SAME: "-lFortranFloat128Math" "--as-needed" "-lquadmath" "--no-as-needed" -! HAIKU-SAME: "-lFortranRuntime" +! HAIKU-SAME: "-lflang_rt" ! MINGW-LABEL: "{{.*}}ld{{(\.exe)?}}" ! MINGW-SAME: "[[object_file]]" ! MINGW-F128NONE-NOT: FortranFloat128Math ! MINGW-F128LIBQUADMATH-SAME: "-lFortranFloat128Math" "--as-needed" "-lquadmath" "--no-as-needed" -! MINGW-SAME: -lFortranRuntime +! MINGW-SAME: -lflang_rt ! NOTE: This also matches lld-link (when CLANG_DEFAULT_LINKER=lld) and ! any .exe suffix that is added when resolving to the full path of diff --git a/flang/test/Driver/msvc-dependent-lib-flags.f90 b/flang/test/Driver/msvc-dependent-lib-flags.f90 index befe61fdadcd14..dabac56d602d1e 100644 --- a/flang/test/Driver/msvc-dependent-lib-flags.f90 +++ b/flang/test/Driver/msvc-dependent-lib-flags.f90 @@ -7,21 +7,21 @@ ! MSVC-SAME: --dependent-lib=clang_rt.builtins.lib ! MSVC-SAME: -D_MT ! MSVC-SAME: --dependent-lib=libcmt -! MSVC-SAME: --dependent-lib=FortranRuntime.static.lib +! MSVC-SAME: --dependent-lib=flang_rt.static.lib ! MSVC-DEBUG: -fc1 ! MSVC-DEBUG-SAME: --dependent-lib=clang_rt.builtins.lib ! MSVC-DEBUG-SAME: -D_MT ! MSVC-DEBUG-SAME: -D_DEBUG ! MSVC-DEBUG-SAME: --dependent-lib=libcmtd -! MSVC-DEBUG-SAME: --dependent-lib=FortranRuntime.static_dbg.lib +! MSVC-DEBUG-SAME: --dependent-lib=flang_rt.static_dbg.lib ! MSVC-DLL: -fc1 ! MSVC-DLL-SAME: --dependent-lib=clang_rt.builtins.lib ! MSVC-DLL-SAME: -D_MT ! MSVC-DLL-SAME: -D_DLL ! MSVC-DLL-SAME: --dependent-lib=msvcrt -! MSVC-DLL-SAME: --dependent-lib=FortranRuntime.dynamic.lib +! MSVC-DLL-SAME: --dependent-lib=flang_rt.dynamic.lib ! MSVC-DLL-DEBUG: -fc1 ! MSVC-DLL-DEBUG-SAME: --dependent-lib=clang_rt.builtins.lib @@ -29,4 +29,4 @@ ! MSVC-DLL-DEBUG-SAME: -D_DEBUG ! MSVC-DLL-DEBUG-SAME: -D_DLL ! MSVC-DLL-DEBUG-SAME: --dependent-lib=msvcrtd -! MSVC-DLL-DEBUG-SAME: --dependent-lib=FortranRuntime.dynamic_dbg.lib +! MSVC-DLL-DEBUG-SAME: --dependent-lib=flang_rt.dynamic_dbg.lib diff --git a/flang/test/Driver/nostdlib.f90 b/flang/test/Driver/nostdlib.f90 index ab7c675fe7b77d..17ed10fa0615d5 100644 --- a/flang/test/Driver/nostdlib.f90 +++ b/flang/test/Driver/nostdlib.f90 @@ -24,5 +24,5 @@ ! in certain cases. But it is not clear that it is worth checking for each ! platform individually. -! CHECK-NOT: "-lFortranRuntime" +! CHECK-NOT: "-lflang_rt" ! CHECK-NOT: "-lgcc" diff --git a/flang/test/Runtime/no-cpp-dep.c b/flang/test/Runtime/no-cpp-dep.c index b1a5fa004014cc..cdac7cf035022a 100644 --- a/flang/test/Runtime/no-cpp-dep.c +++ b/flang/test/Runtime/no-cpp-dep.c @@ -1,6 +1,6 @@ /* This test makes sure that flang's runtime does not depend on the C++ runtime -library. It tries to link this simple file against libFortranRuntime.a with +library. It tries to link this simple file against libflang_rt.a with a C compiler. REQUIRES: c-compiler diff --git a/flang/test/lit.cfg.py b/flang/test/lit.cfg.py index c452b6d231c89f..ad6bb214566d57 100644 --- a/flang/test/lit.cfg.py +++ b/flang/test/lit.cfg.py @@ -167,7 +167,7 @@ # the C++ runtime libraries. For this we need a C compiler. If for some reason # we don't have one, we can just disable the test. if config.cc: - libruntime = os.path.join(config.flang_lib_dir, "libFortranRuntime.a") + libruntime = os.path.join(config.flang_lib_dir, "libflang_rt.a") include = os.path.join(config.flang_src_dir, "include") if ( diff --git a/flang/tools/f18/CMakeLists.txt b/flang/tools/f18/CMakeLists.txt index 4362fcf0537616..8b9e561d555486 100644 --- a/flang/tools/f18/CMakeLists.txt +++ b/flang/tools/f18/CMakeLists.txt @@ -5,7 +5,7 @@ set(LLVM_LINK_COMPONENTS ) # Define the list of Fortran module files that need to be compiled -# to produce an object file for inclusion into the FortranRuntime +# to produce an object file for inclusion into the flang_rt # library. set(MODULES_WITH_IMPLEMENTATION "iso_fortran_env_impl" @@ -101,7 +101,7 @@ if (NOT CMAKE_CROSSCOMPILING) endif() # Some modules have an implementation part that needs to be added to the - # FortranRuntime library. + # flang_rt library. set(compile_with "-fsyntax-only") set(object_output "") set(include_in_link FALSE) @@ -123,14 +123,14 @@ if (NOT CMAKE_CROSSCOMPILING) install(FILES ${base}.mod DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/flang") # If a module has been compiled into an object file, add the file to - # the link line for the FortranRuntime library. + # the link line for the flang_rt library. if(include_in_link) list(APPEND module_objects ${object_output}) endif() endforeach() # Set a CACHE variable that is visible to the CMakeLists.txt in runtime/, so that - # the compiled Fortran modules can be added to the link line of the FortranRuntime + # the compiled Fortran modules can be added to the link line of the flang_rt # library. set(FORTRAN_MODULE_OBJECTS ${module_objects} CACHE INTERNAL "" FORCE) diff --git a/flang/unittests/CMakeLists.txt b/flang/unittests/CMakeLists.txt index 945067fed4f82d..6b901ce758275a 100644 --- a/flang/unittests/CMakeLists.txt +++ b/flang/unittests/CMakeLists.txt @@ -1,6 +1,6 @@ if (FLANG_EXPERIMENTAL_CUDA_RUNTIME) # If Fortran runtime is built as CUDA library, the linking - # of targets that link FortranRuntime must be done + # of targets that link flang_rt must be done # with CUDA_RESOLVE_DEVICE_SYMBOLS. # CUDA language must be enabled for CUDA_RESOLVE_DEVICE_SYMBOLS # to take effect. diff --git a/flang/unittests/Evaluate/CMakeLists.txt b/flang/unittests/Evaluate/CMakeLists.txt index c008304c095575..a3de5b0fcf5ac9 100644 --- a/flang/unittests/Evaluate/CMakeLists.txt +++ b/flang/unittests/Evaluate/CMakeLists.txt @@ -27,6 +27,7 @@ add_flang_nongtest_unittest(uint128 add_flang_nongtest_unittest(expression FortranCommon + FortranSupport FortranEvaluateTesting FortranEvaluate FortranSemantics @@ -41,11 +42,12 @@ add_flang_nongtest_unittest(integer add_flang_nongtest_unittest(intrinsics FortranCommon + FortranSupport FortranEvaluateTesting FortranEvaluate FortranSemantics FortranParser - FortranRuntime + flang_rt ) add_flang_nongtest_unittest(logical @@ -71,18 +73,19 @@ add_flang_nongtest_unittest(reshape FortranEvaluateTesting FortranSemantics FortranEvaluate - FortranRuntime + flang_rt ) add_flang_nongtest_unittest(ISO-Fortran-binding FortranEvaluateTesting FortranEvaluate FortranSemantics - FortranRuntime + flang_rt ) add_flang_nongtest_unittest(folding FortranCommon + FortranSupport FortranEvaluateTesting FortranEvaluate FortranSemantics diff --git a/flang/unittests/Frontend/CMakeLists.txt b/flang/unittests/Frontend/CMakeLists.txt index 22c568af3d121a..a4a18e313c1f4f 100644 --- a/flang/unittests/Frontend/CMakeLists.txt +++ b/flang/unittests/Frontend/CMakeLists.txt @@ -19,6 +19,7 @@ target_link_libraries(FlangFrontendTests FortranParser FortranSemantics FortranCommon + FortranSupport FortranEvaluate MLIRIR ) diff --git a/flang/unittests/Runtime/CMakeLists.txt b/flang/unittests/Runtime/CMakeLists.txt index 179e439917ff23..a60b43d422878d 100644 --- a/flang/unittests/Runtime/CMakeLists.txt +++ b/flang/unittests/Runtime/CMakeLists.txt @@ -33,7 +33,7 @@ add_flang_unittest(FlangRuntimeTests target_link_libraries(FlangRuntimeTests PRIVATE - FortranRuntime + flang_rt ) target_compile_definitions(FlangRuntimeTests PRIVATE NOT_EXE="$<TARGET_FILE:not>") diff --git a/flang/unittests/Runtime/CUDA/CMakeLists.txt b/flang/unittests/Runtime/CUDA/CMakeLists.txt index a7fe604d687bdd..38888e32e6ed8a 100644 --- a/flang/unittests/Runtime/CUDA/CMakeLists.txt +++ b/flang/unittests/Runtime/CUDA/CMakeLists.txt @@ -16,7 +16,7 @@ target_link_libraries(FlangCufRuntimeTests PRIVATE ${CUDA_RT_TARGET} CufRuntime_cuda_${CUDAToolkit_VERSION_MAJOR} - FortranRuntime + flang_rt ) target_include_directories(FlangCufRuntimeTests PRIVATE ${CUDAToolkit_INCLUDE_DIRS}) diff --git a/lld/COFF/MinGW.cpp b/lld/COFF/MinGW.cpp index 797ab37f069810..e188dfb503c1aa 100644 --- a/lld/COFF/MinGW.cpp +++ b/lld/COFF/MinGW.cpp @@ -50,7 +50,7 @@ AutoExporter::AutoExporter( "libclang_rt.profile-x86_64", "libc++", "libc++abi", - "libFortranRuntime", + "libflang_rt", "libunwind", "libmsvcrt", "libucrtbase", >From 516c6df62d24ba2045485fd829bb59d8a32d6308 Mon Sep 17 00:00:00 2001 From: Michael Kruse <llvm-proj...@meinersbur.de> Date: Thu, 9 Jan 2025 14:59:55 +0100 Subject: [PATCH 3/5] Post-merge fixes --- flang-rt/unittests/Evaluate/CMakeLists.txt | 21 ------------------- flang/lib/Optimizer/Builder/IntrinsicCall.cpp | 2 +- 2 files changed, 1 insertion(+), 22 deletions(-) delete mode 100644 flang-rt/unittests/Evaluate/CMakeLists.txt diff --git a/flang-rt/unittests/Evaluate/CMakeLists.txt b/flang-rt/unittests/Evaluate/CMakeLists.txt deleted file mode 100644 index 6efe0ca5f619b7..00000000000000 --- a/flang-rt/unittests/Evaluate/CMakeLists.txt +++ /dev/null @@ -1,21 +0,0 @@ -#===-- unittests/Evaluate/CMakeLists.txt -----------------------------------===# -# -# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -# See https://llvm.org/LICENSE.txt for license information. -# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -# -#===------------------------------------------------------------------------===# - -add_flang_nongtest_unittest(reshape - FortranEvaluateTesting - FortranSemantics - FortranEvaluate - flang_rt -) - -add_flang_nongtest_unittest(ISO-Fortran-binding - FortranEvaluateTesting - FortranEvaluate - FortranSemantics - flang_rt -) diff --git a/flang/lib/Optimizer/Builder/IntrinsicCall.cpp b/flang/lib/Optimizer/Builder/IntrinsicCall.cpp index bcc1c7f4f003af..9781e842a56aab 100644 --- a/flang/lib/Optimizer/Builder/IntrinsicCall.cpp +++ b/flang/lib/Optimizer/Builder/IntrinsicCall.cpp @@ -778,7 +778,7 @@ prettyPrintIntrinsicName(fir::FirOpBuilder &builder, mlir::Location loc, // Generate a call to the Fortran runtime library providing // support for 128-bit float math. // On 'HAS_LDBL128' targets the implementation -// is provided by FortranRuntime, otherwise, it is done via +// is provided by flang_rt, otherwise, it is done via // FortranFloat128Math library. In the latter case the compiler // has to be built with FLANG_RUNTIME_F128_MATH_LIB to guarantee // proper linking actions in the driver. >From b64e42849f9587d2696c41e1f54494db7fe651aa Mon Sep 17 00:00:00 2001 From: Michael Kruse <llvm-proj...@meinersbur.de> Date: Thu, 9 Jan 2025 16:42:06 +0100 Subject: [PATCH 4/5] Conditional check-flang-rt target --- flang/test/CMakeLists.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/flang/test/CMakeLists.txt b/flang/test/CMakeLists.txt index 5dbf80296178f0..e8e8099d4eaf7b 100644 --- a/flang/test/CMakeLists.txt +++ b/flang/test/CMakeLists.txt @@ -126,5 +126,7 @@ if (DEFINED FLANG_TEST_TARGET_TRIPLE) endif() # Compatibility targets. -add_custom_target(check-flang-rt) -add_dependencies(check-flang-rt check-flang) +if (FLANG_INCLUDE_RUNTIME) + add_custom_target(check-flang-rt) + add_dependencies(check-flang-rt check-flang) +endif () >From d0a44593e967627af718b5c7063ec9ba248bdedf Mon Sep 17 00:00:00 2001 From: Michael Kruse <llvm-proj...@meinersbur.de> Date: Mon, 20 Jan 2025 15:23:49 +0100 Subject: [PATCH 5/5] Remove unused link-library --- flang/unittests/Evaluate/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/flang/unittests/Evaluate/CMakeLists.txt b/flang/unittests/Evaluate/CMakeLists.txt index 1ac0d28527d182..9e19b2cdfbb90c 100644 --- a/flang/unittests/Evaluate/CMakeLists.txt +++ b/flang/unittests/Evaluate/CMakeLists.txt @@ -33,7 +33,6 @@ add_flang_nongtest_unittest(intrinsics FortranDecimal FortranSemantics FortranParser - flang_rt ) add_flang_nongtest_unittest(logical _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits