[llvm-branch-commits] [clang] [flang] [lld] [Flang] Don't use FortranDecimal for runtime (PR #121997)
https://github.com/Meinersbur updated https://github.com/llvm/llvm-project/pull/121997 >From 2e50a1f563dcfec3dae1a5770ed4c90189cf7ba8 Mon Sep 17 00:00:00 2001 From: Michael Kruse Date: Fri, 24 Jan 2025 16:28:55 +0100 Subject: [PATCH] [Flang] Don't use FortranDecimal for runtime --- clang/lib/Driver/ToolChains/CommonArgs.cpp| 3 +- clang/lib/Driver/ToolChains/Flang.cpp | 4 - flang/docs/FlangDriver.md | 7 +- flang/lib/Decimal/CMakeLists.txt | 92 ++- flang/runtime/CMakeLists.txt | 14 +-- flang/test/Driver/linker-flags.f90| 6 +- .../test/Driver/msvc-dependent-lib-flags.f90 | 4 - flang/test/Driver/nostdlib.f90| 1 - flang/test/Runtime/no-cpp-dep.c | 2 +- flang/test/lit.cfg.py | 3 - lld/COFF/MinGW.cpp| 1 - 11 files changed, 18 insertions(+), 119 deletions(-) diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp index f8967890f722cf..b5273dd8cf1e3a 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -1321,7 +1321,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 and FortranDecimal + // Link FortranRuntime // 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. @@ -1338,7 +1338,6 @@ void tools::addFortranRuntimeLibs(const ToolChain &TC, const ArgList &Args, addAsNeededOption(TC, Args, CmdArgs, /*as_needed=*/false); } CmdArgs.push_back("-lFortranRuntime"); -CmdArgs.push_back("-lFortranDecimal"); addArchSpecificRPath(TC, Args, CmdArgs); } diff --git a/clang/lib/Driver/ToolChains/Flang.cpp b/clang/lib/Driver/ToolChains/Flang.cpp index 86ed25badfa2b7..f1bf32b3238270 100644 --- a/clang/lib/Driver/ToolChains/Flang.cpp +++ b/clang/lib/Driver/ToolChains/Flang.cpp @@ -361,21 +361,18 @@ static void processVSRuntimeLibrary(const ToolChain &TC, const ArgList &Args, CmdArgs.push_back("-D_MT"); CmdArgs.push_back("--dependent-lib=libcmt"); CmdArgs.push_back("--dependent-lib=FortranRuntime.static.lib"); -CmdArgs.push_back("--dependent-lib=FortranDecimal.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=FortranDecimal.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=FortranDecimal.dynamic.lib"); break; case options::OPT__SLASH_MDd: CmdArgs.push_back("-D_MT"); @@ -383,7 +380,6 @@ static void processVSRuntimeLibrary(const ToolChain &TC, const ArgList &Args, 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=FortranDecimal.dynamic_dbg.lib"); break; } } diff --git a/flang/docs/FlangDriver.md b/flang/docs/FlangDriver.md index 23cbab30ee903e..be5633529f50cd 100644 --- a/flang/docs/FlangDriver.md +++ b/flang/docs/FlangDriver.md @@ -175,19 +175,18 @@ like this: ``` $ flang -v -o example example.o -"/usr/bin/ld" [...] example.o [...] "-lFortranRuntime" "-lFortranDecimal" [...] +"/usr/bin/ld" [...] example.o [...] "-lFortranRuntime" [...] ``` The automatically added libraries are: * `FortranRuntime`: Provides most of the Flang runtime library. -* `FortranDecimal`: Provides operations for decimal numbers. 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` and/or `FortranDecimal`. An alternative is to use Flang to link. +In this case, one has to explicitly provide the Fortran runtime library +`FortranRuntime`. 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/lib/Decimal/CMakeLists.txt b/flang/lib/Decimal/CMakeLists.txt index 880b190f1c5815..477d44e0565ebe 100644
[llvm-branch-commits] [clang] [flang] [lld] [Flang] Don't use FortranDecimal for runtime (PR #121997)
https://github.com/Meinersbur updated https://github.com/llvm/llvm-project/pull/121997 >From 2e50a1f563dcfec3dae1a5770ed4c90189cf7ba8 Mon Sep 17 00:00:00 2001 From: Michael Kruse Date: Fri, 24 Jan 2025 16:28:55 +0100 Subject: [PATCH] [Flang] Don't use FortranDecimal for runtime --- clang/lib/Driver/ToolChains/CommonArgs.cpp| 3 +- clang/lib/Driver/ToolChains/Flang.cpp | 4 - flang/docs/FlangDriver.md | 7 +- flang/lib/Decimal/CMakeLists.txt | 92 ++- flang/runtime/CMakeLists.txt | 14 +-- flang/test/Driver/linker-flags.f90| 6 +- .../test/Driver/msvc-dependent-lib-flags.f90 | 4 - flang/test/Driver/nostdlib.f90| 1 - flang/test/Runtime/no-cpp-dep.c | 2 +- flang/test/lit.cfg.py | 3 - lld/COFF/MinGW.cpp| 1 - 11 files changed, 18 insertions(+), 119 deletions(-) diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp index f8967890f722cf..b5273dd8cf1e3a 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -1321,7 +1321,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 and FortranDecimal + // Link FortranRuntime // 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. @@ -1338,7 +1338,6 @@ void tools::addFortranRuntimeLibs(const ToolChain &TC, const ArgList &Args, addAsNeededOption(TC, Args, CmdArgs, /*as_needed=*/false); } CmdArgs.push_back("-lFortranRuntime"); -CmdArgs.push_back("-lFortranDecimal"); addArchSpecificRPath(TC, Args, CmdArgs); } diff --git a/clang/lib/Driver/ToolChains/Flang.cpp b/clang/lib/Driver/ToolChains/Flang.cpp index 86ed25badfa2b7..f1bf32b3238270 100644 --- a/clang/lib/Driver/ToolChains/Flang.cpp +++ b/clang/lib/Driver/ToolChains/Flang.cpp @@ -361,21 +361,18 @@ static void processVSRuntimeLibrary(const ToolChain &TC, const ArgList &Args, CmdArgs.push_back("-D_MT"); CmdArgs.push_back("--dependent-lib=libcmt"); CmdArgs.push_back("--dependent-lib=FortranRuntime.static.lib"); -CmdArgs.push_back("--dependent-lib=FortranDecimal.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=FortranDecimal.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=FortranDecimal.dynamic.lib"); break; case options::OPT__SLASH_MDd: CmdArgs.push_back("-D_MT"); @@ -383,7 +380,6 @@ static void processVSRuntimeLibrary(const ToolChain &TC, const ArgList &Args, 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=FortranDecimal.dynamic_dbg.lib"); break; } } diff --git a/flang/docs/FlangDriver.md b/flang/docs/FlangDriver.md index 23cbab30ee903e..be5633529f50cd 100644 --- a/flang/docs/FlangDriver.md +++ b/flang/docs/FlangDriver.md @@ -175,19 +175,18 @@ like this: ``` $ flang -v -o example example.o -"/usr/bin/ld" [...] example.o [...] "-lFortranRuntime" "-lFortranDecimal" [...] +"/usr/bin/ld" [...] example.o [...] "-lFortranRuntime" [...] ``` The automatically added libraries are: * `FortranRuntime`: Provides most of the Flang runtime library. -* `FortranDecimal`: Provides operations for decimal numbers. 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` and/or `FortranDecimal`. An alternative is to use Flang to link. +In this case, one has to explicitly provide the Fortran runtime library +`FortranRuntime`. 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/lib/Decimal/CMakeLists.txt b/flang/lib/Decimal/CMakeLists.txt index 880b190f1c5815..477d44e0565ebe 100644
[llvm-branch-commits] [clang] [flang] [lld] [Flang] Don't use FortranDecimal for runtime (PR #121997)
https://github.com/Meinersbur updated https://github.com/llvm/llvm-project/pull/121997 >From 2e50a1f563dcfec3dae1a5770ed4c90189cf7ba8 Mon Sep 17 00:00:00 2001 From: Michael Kruse Date: Fri, 24 Jan 2025 16:28:55 +0100 Subject: [PATCH] [Flang] Don't use FortranDecimal for runtime --- clang/lib/Driver/ToolChains/CommonArgs.cpp| 3 +- clang/lib/Driver/ToolChains/Flang.cpp | 4 - flang/docs/FlangDriver.md | 7 +- flang/lib/Decimal/CMakeLists.txt | 92 ++- flang/runtime/CMakeLists.txt | 14 +-- flang/test/Driver/linker-flags.f90| 6 +- .../test/Driver/msvc-dependent-lib-flags.f90 | 4 - flang/test/Driver/nostdlib.f90| 1 - flang/test/Runtime/no-cpp-dep.c | 2 +- flang/test/lit.cfg.py | 3 - lld/COFF/MinGW.cpp| 1 - 11 files changed, 18 insertions(+), 119 deletions(-) diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp index f8967890f722cf..b5273dd8cf1e3a 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -1321,7 +1321,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 and FortranDecimal + // Link FortranRuntime // 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. @@ -1338,7 +1338,6 @@ void tools::addFortranRuntimeLibs(const ToolChain &TC, const ArgList &Args, addAsNeededOption(TC, Args, CmdArgs, /*as_needed=*/false); } CmdArgs.push_back("-lFortranRuntime"); -CmdArgs.push_back("-lFortranDecimal"); addArchSpecificRPath(TC, Args, CmdArgs); } diff --git a/clang/lib/Driver/ToolChains/Flang.cpp b/clang/lib/Driver/ToolChains/Flang.cpp index 86ed25badfa2b7..f1bf32b3238270 100644 --- a/clang/lib/Driver/ToolChains/Flang.cpp +++ b/clang/lib/Driver/ToolChains/Flang.cpp @@ -361,21 +361,18 @@ static void processVSRuntimeLibrary(const ToolChain &TC, const ArgList &Args, CmdArgs.push_back("-D_MT"); CmdArgs.push_back("--dependent-lib=libcmt"); CmdArgs.push_back("--dependent-lib=FortranRuntime.static.lib"); -CmdArgs.push_back("--dependent-lib=FortranDecimal.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=FortranDecimal.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=FortranDecimal.dynamic.lib"); break; case options::OPT__SLASH_MDd: CmdArgs.push_back("-D_MT"); @@ -383,7 +380,6 @@ static void processVSRuntimeLibrary(const ToolChain &TC, const ArgList &Args, 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=FortranDecimal.dynamic_dbg.lib"); break; } } diff --git a/flang/docs/FlangDriver.md b/flang/docs/FlangDriver.md index 23cbab30ee903e..be5633529f50cd 100644 --- a/flang/docs/FlangDriver.md +++ b/flang/docs/FlangDriver.md @@ -175,19 +175,18 @@ like this: ``` $ flang -v -o example example.o -"/usr/bin/ld" [...] example.o [...] "-lFortranRuntime" "-lFortranDecimal" [...] +"/usr/bin/ld" [...] example.o [...] "-lFortranRuntime" [...] ``` The automatically added libraries are: * `FortranRuntime`: Provides most of the Flang runtime library. -* `FortranDecimal`: Provides operations for decimal numbers. 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` and/or `FortranDecimal`. An alternative is to use Flang to link. +In this case, one has to explicitly provide the Fortran runtime library +`FortranRuntime`. 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/lib/Decimal/CMakeLists.txt b/flang/lib/Decimal/CMakeLists.txt index 880b190f1c5815..477d44e0565ebe 100644
[llvm-branch-commits] [clang] [flang] [lld] [Flang] Don't use FortranDecimal for runtime (PR #121997)
https://github.com/Meinersbur updated https://github.com/llvm/llvm-project/pull/121997 >From 2e50a1f563dcfec3dae1a5770ed4c90189cf7ba8 Mon Sep 17 00:00:00 2001 From: Michael Kruse Date: Fri, 24 Jan 2025 16:28:55 +0100 Subject: [PATCH] [Flang] Don't use FortranDecimal for runtime --- clang/lib/Driver/ToolChains/CommonArgs.cpp| 3 +- clang/lib/Driver/ToolChains/Flang.cpp | 4 - flang/docs/FlangDriver.md | 7 +- flang/lib/Decimal/CMakeLists.txt | 92 ++- flang/runtime/CMakeLists.txt | 14 +-- flang/test/Driver/linker-flags.f90| 6 +- .../test/Driver/msvc-dependent-lib-flags.f90 | 4 - flang/test/Driver/nostdlib.f90| 1 - flang/test/Runtime/no-cpp-dep.c | 2 +- flang/test/lit.cfg.py | 3 - lld/COFF/MinGW.cpp| 1 - 11 files changed, 18 insertions(+), 119 deletions(-) diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp index f8967890f722cf..b5273dd8cf1e3a 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -1321,7 +1321,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 and FortranDecimal + // Link FortranRuntime // 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. @@ -1338,7 +1338,6 @@ void tools::addFortranRuntimeLibs(const ToolChain &TC, const ArgList &Args, addAsNeededOption(TC, Args, CmdArgs, /*as_needed=*/false); } CmdArgs.push_back("-lFortranRuntime"); -CmdArgs.push_back("-lFortranDecimal"); addArchSpecificRPath(TC, Args, CmdArgs); } diff --git a/clang/lib/Driver/ToolChains/Flang.cpp b/clang/lib/Driver/ToolChains/Flang.cpp index 86ed25badfa2b7..f1bf32b3238270 100644 --- a/clang/lib/Driver/ToolChains/Flang.cpp +++ b/clang/lib/Driver/ToolChains/Flang.cpp @@ -361,21 +361,18 @@ static void processVSRuntimeLibrary(const ToolChain &TC, const ArgList &Args, CmdArgs.push_back("-D_MT"); CmdArgs.push_back("--dependent-lib=libcmt"); CmdArgs.push_back("--dependent-lib=FortranRuntime.static.lib"); -CmdArgs.push_back("--dependent-lib=FortranDecimal.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=FortranDecimal.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=FortranDecimal.dynamic.lib"); break; case options::OPT__SLASH_MDd: CmdArgs.push_back("-D_MT"); @@ -383,7 +380,6 @@ static void processVSRuntimeLibrary(const ToolChain &TC, const ArgList &Args, 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=FortranDecimal.dynamic_dbg.lib"); break; } } diff --git a/flang/docs/FlangDriver.md b/flang/docs/FlangDriver.md index 23cbab30ee903e..be5633529f50cd 100644 --- a/flang/docs/FlangDriver.md +++ b/flang/docs/FlangDriver.md @@ -175,19 +175,18 @@ like this: ``` $ flang -v -o example example.o -"/usr/bin/ld" [...] example.o [...] "-lFortranRuntime" "-lFortranDecimal" [...] +"/usr/bin/ld" [...] example.o [...] "-lFortranRuntime" [...] ``` The automatically added libraries are: * `FortranRuntime`: Provides most of the Flang runtime library. -* `FortranDecimal`: Provides operations for decimal numbers. 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` and/or `FortranDecimal`. An alternative is to use Flang to link. +In this case, one has to explicitly provide the Fortran runtime library +`FortranRuntime`. 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/lib/Decimal/CMakeLists.txt b/flang/lib/Decimal/CMakeLists.txt index 880b190f1c5815..477d44e0565ebe 100644
[llvm-branch-commits] [clang] [flang] [lld] [Flang] Don't use FortranDecimal for runtime (PR #121997)
https://github.com/Meinersbur edited https://github.com/llvm/llvm-project/pull/121997 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits