[clang] [clang-repl] Fix PLT offset too large linker error on ARM (PR #78959)

Stefan Gränitz via cfe-commits cfe-commits at lists.llvm.org
Mon Jan 22 04:54:06 PST 2024


https://github.com/weliveindetail updated https://github.com/llvm/llvm-project/pull/78959

>From 0449f8fc14a703aae515db1696bbbee578914629 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Gr=C3=A4nitz?= <stefan.graenitz at gmail.com>
Date: Sat, 20 Jan 2024 11:13:45 +0100
Subject: [PATCH 1/2] [clang-repl] Fix linker error on ARM

Error in gold linker is: PLT offset too large, try linking with --long-plt
---
 clang/tools/clang-repl/CMakeLists.txt | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/clang/tools/clang-repl/CMakeLists.txt b/clang/tools/clang-repl/CMakeLists.txt
index 2ccbe292fd49e09..8589e37418354e7 100644
--- a/clang/tools/clang-repl/CMakeLists.txt
+++ b/clang/tools/clang-repl/CMakeLists.txt
@@ -22,3 +22,7 @@ clang_target_link_libraries(clang-repl PRIVATE
 if(CLANG_PLUGIN_SUPPORT)
   export_executable_symbols_for_plugins(clang-repl)
 endif()
+
+if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "ARM")
+  target_link_options(clang-repl PRIVATE LINKER:--long-plt)
+endif()

>From f68b96c87cf165b4cf6d453b8f817f9a3353b3d7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Gr=C3=A4nitz?= <stefan.graenitz at gmail.com>
Date: Mon, 22 Jan 2024 13:37:55 +0100
Subject: [PATCH 2/2] fixup! [clang-repl] Fix linker error on ARM

Toolchain files sometimes set a lowercase string, like armv7
---
 clang/tools/clang-repl/CMakeLists.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/clang/tools/clang-repl/CMakeLists.txt b/clang/tools/clang-repl/CMakeLists.txt
index 8589e37418354e7..b0aaf39f0115472 100644
--- a/clang/tools/clang-repl/CMakeLists.txt
+++ b/clang/tools/clang-repl/CMakeLists.txt
@@ -23,6 +23,7 @@ if(CLANG_PLUGIN_SUPPORT)
   export_executable_symbols_for_plugins(clang-repl)
 endif()
 
-if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "ARM")
+string(TOUPPER ${CMAKE_SYSTEM_PROCESSOR} system_processor)
+if(${system_processor} MATCHES "ARM")
   target_link_options(clang-repl PRIVATE LINKER:--long-plt)
 endif()



More information about the cfe-commits mailing list