[flang-commits] [flang] [flang][Driver] Enable FLANG_DEFAULT_LINKER (PR #149786)
via flang-commits
flang-commits at lists.llvm.org
Thu Aug 7 06:48:56 PDT 2025
https://github.com/parabola94 updated https://github.com/llvm/llvm-project/pull/149786
>From 2f39e8a0fb552993019f60d5e01faacb266ead7a Mon Sep 17 00:00:00 2001
From: parabola94 <heavybaby5000 at toki.waseda.jp>
Date: Mon, 21 Jul 2025 18:29:59 +0900
Subject: [PATCH 1/2] [flang][Driver] Enable FLANG_DEFAULT_LINKER
---
flang/CMakeLists.txt | 2 +-
flang/include/flang/Config/config.h.cmake | 16 +++++++++-------
flang/test/Driver/linker-flags.f90 | 2 +-
flang/tools/flang-driver/driver.cpp | 2 ++
4 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/flang/CMakeLists.txt b/flang/CMakeLists.txt
index 0bfada476348a..6cbe6d4ed6a3e 100644
--- a/flang/CMakeLists.txt
+++ b/flang/CMakeLists.txt
@@ -317,7 +317,7 @@ if (NOT ENABLE_LINKER_BUILD_ID)
set(ENABLE_LINKER_BUILD_ID OFF CACHE BOOL "pass --build-id to ld")
endif()
-set(FLANG_DEFAULT_LINKER "" CACHE STRING
+set(FLANG_DEFAULT_LINKER ${CLANG_DEFAULT_LINKER} CACHE STRING
"Default linker to use (linker name or absolute path, empty for platform default)")
set(FLANG_DEFAULT_RTLIB "" CACHE STRING
diff --git a/flang/include/flang/Config/config.h.cmake b/flang/include/flang/Config/config.h.cmake
index fd34d3f403631..92fbd14c3d6db 100644
--- a/flang/include/flang/Config/config.h.cmake
+++ b/flang/include/flang/Config/config.h.cmake
@@ -1,10 +1,10 @@
-#===-- include/flang/Config/config.h.cmake ---------------------------------===#
-#
-# 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
-#
-#===------------------------------------------------------------------------===#
+//===-- include/flang/Config/config.h.cmake -------------------------------===//
+//
+// 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
+//
+//===----------------------------------------------------------------------===//
/* This generated file is for internal use. Do not include it from headers. */
@@ -16,6 +16,8 @@
#define FLANG_VERSION "${FLANG_VERSION}"
+#define FLANG_DEFAULT_LINKER "${FLANG_DEFAULT_LINKER}"
+
#endif
diff --git a/flang/test/Driver/linker-flags.f90 b/flang/test/Driver/linker-flags.f90
index ad48ea1b9e9b1..2b56fdfb8da05 100644
--- a/flang/test/Driver/linker-flags.f90
+++ b/flang/test/Driver/linker-flags.f90
@@ -77,7 +77,7 @@
! MINGW-SAME: -lflang_rt.runtime
! MINGW-STATIC-FLANGRT: "{{.*}}{{\\|/}}libflang_rt.runtime.a"
-! NOTE: This also matches lld-link (when CLANG_DEFAULT_LINKER=lld) and
+! NOTE: This also matches lld-link (when FLANG_DEFAULT_LINKER=lld) and
! any .exe suffix that is added when resolving to the full path of
! (lld-)link.exe on Windows platforms. The suffix may not be added
! when the executable is not found or on non-Windows platforms.
diff --git a/flang/tools/flang-driver/driver.cpp b/flang/tools/flang-driver/driver.cpp
index 3a2dffc66428f..b1e02383cd33d 100644
--- a/flang/tools/flang-driver/driver.cpp
+++ b/flang/tools/flang-driver/driver.cpp
@@ -16,6 +16,7 @@
//===----------------------------------------------------------------------===//
#include "clang/Driver/Driver.h"
+#include "flang/Config/config.h"
#include "flang/Frontend/CompilerInvocation.h"
#include "flang/Frontend/TextDiagnosticPrinter.h"
#include "clang/Basic/Diagnostic.h"
@@ -138,6 +139,7 @@ int main(int argc, const char **argv) {
llvm::sys::getDefaultTargetTriple(), diags,
"flang LLVM compiler");
theDriver.setTargetAndMode(targetandMode);
+ theDriver.setPreferredLinker(FLANG_DEFAULT_LINKER);
#ifdef FLANG_RUNTIME_F128_MATH_LIB
theDriver.setFlangF128MathLibrary(FLANG_RUNTIME_F128_MATH_LIB);
#endif
>From 8367a46e195da2faf33a93b5ade65a0bc0a4fe44 Mon Sep 17 00:00:00 2001
From: parabola94 <heavybaby5000 at toki.waseda.jp>
Date: Thu, 7 Aug 2025 22:07:09 +0900
Subject: [PATCH 2/2] Update flang/CMakeLists.txt
Co-authored-by: Michael Kruse <github at meinersbur.de>
---
flang/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/flang/CMakeLists.txt b/flang/CMakeLists.txt
index 6cbe6d4ed6a3e..1d16c33f44900 100644
--- a/flang/CMakeLists.txt
+++ b/flang/CMakeLists.txt
@@ -317,7 +317,7 @@ if (NOT ENABLE_LINKER_BUILD_ID)
set(ENABLE_LINKER_BUILD_ID OFF CACHE BOOL "pass --build-id to ld")
endif()
-set(FLANG_DEFAULT_LINKER ${CLANG_DEFAULT_LINKER} CACHE STRING
+set(FLANG_DEFAULT_LINKER "${CLANG_DEFAULT_LINKER}" CACHE STRING
"Default linker to use (linker name or absolute path, empty for platform default)")
set(FLANG_DEFAULT_RTLIB "" CACHE STRING
More information about the flang-commits
mailing list