[Mlir-commits] [mlir] f55fd19 - Define/guard MLIR_STANDALONE_BUILD LLVM_LIBRARY_OUTPUT_INTDIR var.

Stella Laurenzo llvmlistbot at llvm.org
Tue Jun 20 14:14:30 PDT 2023


Author: Stella Laurenzo
Date: 2023-06-20T14:14:15-07:00
New Revision: f55fd19b6b565827af5fbf504952dcc35b8b7360

URL: https://github.com/llvm/llvm-project/commit/f55fd19b6b565827af5fbf504952dcc35b8b7360
DIFF: https://github.com/llvm/llvm-project/commit/f55fd19b6b565827af5fbf504952dcc35b8b7360.diff

LOG: Define/guard MLIR_STANDALONE_BUILD LLVM_LIBRARY_OUTPUT_INTDIR var.

It looks like MLIR is using the more modern CMAKE_LIBRARY_OUTPUT_DIRECTORY, but AddLLVM still uses this older LLVM specific alias.

In the specific case I was running into, the empty variable was causing `-Wl,-rpath-link,` on the command line, causing the following argument to be swallowed. This was maddening, because the following argument was the .o file containing `main` and I was getting `main` undefined errors when it was clearly there. This is egregious enough that I chose to guard it.

Differential Revision: https://reviews.llvm.org/D153373

Added: 
    

Modified: 
    llvm/cmake/modules/AddLLVM.cmake
    mlir/CMakeLists.txt

Removed: 
    


################################################################################
diff  --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
index 926336e4a7aa8..b9635b0346320 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -2358,6 +2358,9 @@ function(llvm_setup_rpath name)
     endif()
     if(LLVM_LINKER_IS_GNULD)
       # $ORIGIN is not interpreted at link time by ld.bfd
+      if(NOT LLVM_LIBRARY_OUTPUT_INTDIR)
+        message(SEND_ERROR "Project does not define LLVM_LIBRARY_OUTPUT_INTDIR and it is required")
+      endif()
       set_property(TARGET ${name} APPEND_STRING PROPERTY
                    LINK_FLAGS " -Wl,-rpath-link,${LLVM_LIBRARY_OUTPUT_INTDIR} ")
     endif()

diff  --git a/mlir/CMakeLists.txt b/mlir/CMakeLists.txt
index f31403aebb226..006317507034f 100644
--- a/mlir/CMakeLists.txt
+++ b/mlir/CMakeLists.txt
@@ -35,6 +35,11 @@ if(MLIR_STANDALONE_BUILD)
     "${CMAKE_CURRENT_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}")
   set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")
 
+  # Some LLVM CMake utilities use these aliases for the CMake builtin variables.
+  # We set them for compatibility.
+  set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+  set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
+
   set(LLVM_LIT_ARGS "-sv" CACHE STRING "Default options for lit")
 endif()
 


        


More information about the Mlir-commits mailing list