[llvm] [mlir] fix linking on riscv64 (PR #74167)
Vincent Palatin via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 1 18:59:06 PST 2023
https://github.com/vpalatin created https://github.com/llvm/llvm-project/pull/74167
As libatomic is not included in libgcc_s, when building on riscv64
(on Ubuntu 22.04) using rtlib set to libgcc and gnu ld as the linker,
the linking of a few utilities fails on some __atomic_X symbols provided by libatomic.
For dsymutils, actually reviews.llvm.org/D137799 has commented out the line potentially adding a
`-latomic` when linking by using the LLVM_ATOMIC_LIB variable without providing any reason. Revert this piece of the change.
For several libMLIR consumers, add the LLVM_ATOMIC_LIB variable where needed.
>From e68c832491d193bc594f42591b0e851f609aa3bd Mon Sep 17 00:00:00 2001
From: Vincent Palatin <vpalatin at rivosinc.com>
Date: Thu, 23 Nov 2023 06:33:07 -0800
Subject: [PATCH 1/2] [dsymutil] fix linking on riscv64
As libatomic is not included in libgcc_s, when building on riscv64
(on Ubuntu 22.04) using rtlib set to libgcc and gnu ld as the linker,
the linking of dsymutil fails on some __atomic_X symbols provided by libatomic.
reviews.llvm.org/D137799 has commented out the line potentially adding a
`-latomic` when linking by using the LLVM_ATOMIC_LIB variable without
providing any reason. Revert this piece of the change.
---
llvm/tools/dsymutil/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/tools/dsymutil/CMakeLists.txt b/llvm/tools/dsymutil/CMakeLists.txt
index c612bfd9150c47f..de1da71a64dc124 100644
--- a/llvm/tools/dsymutil/CMakeLists.txt
+++ b/llvm/tools/dsymutil/CMakeLists.txt
@@ -44,4 +44,4 @@ if(APPLE AND NOT LLVM_TOOL_LLVM_DRIVER_BUILD)
target_link_libraries(dsymutil PRIVATE "-framework CoreFoundation")
endif(APPLE AND NOT LLVM_TOOL_LLVM_DRIVER_BUILD)
-# target_link_libraries(dsymutil PRIVATE ${LLVM_ATOMIC_LIB})
+target_link_libraries(dsymutil PRIVATE ${LLVM_ATOMIC_LIB})
>From 8750334ac04381bab54891cf1de97a67e101a90b Mon Sep 17 00:00:00 2001
From: Vincent Palatin <vpalatin at rivosinc.com>
Date: Thu, 23 Nov 2023 09:58:24 -0800
Subject: [PATCH 2/2] [mlir] fix linking on riscv64
As libatomic is not included in libgcc_s, when building on riscv64
(on Ubuntu 22.04) using rtlib set to libgcc and gnu ld as the linker,
the linking of several libMLIR consumers fails on some __atomic_X
symbols provided by libatomic.
Add the LLVM_ATOMIC_LIB variable potentially adding a `-latomic` when linking.
---
mlir/lib/Pass/CMakeLists.txt | 2 ++
mlir/lib/Tools/lsp-server-support/CMakeLists.txt | 2 ++
mlir/tools/mlir-shlib/CMakeLists.txt | 2 ++
3 files changed, 6 insertions(+)
diff --git a/mlir/lib/Pass/CMakeLists.txt b/mlir/lib/Pass/CMakeLists.txt
index 5ca9b4163bb8a8f..d2628aaa7274ec4 100644
--- a/mlir/lib/Pass/CMakeLists.txt
+++ b/mlir/lib/Pass/CMakeLists.txt
@@ -16,4 +16,6 @@ add_mlir_library(MLIRPass
LINK_LIBS PUBLIC
MLIRAnalysis
MLIRIR
+ PRIVATE
+ ${LLVM_ATOMIC_LIB}
)
diff --git a/mlir/lib/Tools/lsp-server-support/CMakeLists.txt b/mlir/lib/Tools/lsp-server-support/CMakeLists.txt
index 48a96016b792fce..8f7e26340067f1e 100644
--- a/mlir/lib/Tools/lsp-server-support/CMakeLists.txt
+++ b/mlir/lib/Tools/lsp-server-support/CMakeLists.txt
@@ -10,4 +10,6 @@ add_mlir_library(MLIRLspServerSupportLib
LINK_LIBS PUBLIC
MLIRSupport
+ PRIVATE
+ ${LLVM_ATOMIC_LIB}
)
diff --git a/mlir/tools/mlir-shlib/CMakeLists.txt b/mlir/tools/mlir-shlib/CMakeLists.txt
index 32fe833cee4ea78..59e0f7078288355 100644
--- a/mlir/tools/mlir-shlib/CMakeLists.txt
+++ b/mlir/tools/mlir-shlib/CMakeLists.txt
@@ -39,6 +39,8 @@ if(LLVM_BUILD_LLVM_DYLIB)
${_OBJECTS}
LINK_LIBS
${_DEPS}
+ PRIVATE
+ ${LLVM_ATOMIC_LIB}
LINK_COMPONENTS
${mlir_llvm_link_components}
More information about the llvm-commits
mailing list