From 0ef2ba03c5b379d6b77f589fedd3a3ef8d2bb2df Mon Sep 17 00:00:00 2001 From: Yuri Victorovich Date: Sun, 2 Sep 2018 16:40:16 +0000 Subject: [PATCH] graphics/py-open3d-python: Fix build failure on 12 12 has the failure: /usr/local/bin/ld: /usr/bin/../lib/LLVMgold.so: error loading plugin: Cannot open "/usr/bin/../lib/LLVMgold.so" c++: error: linker command failed with exit code 1 (use -v to see invocation) that is triggered by the -flto argument. It isn't supplied on 11. Add patch that eliminates -flto altogether. --- ...xternal_pybind11_tools_pybind11Tools.cmake | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 graphics/py-open3d-python/files/patch-External_pybind11_tools_pybind11Tools.cmake diff --git a/graphics/py-open3d-python/files/patch-External_pybind11_tools_pybind11Tools.cmake b/graphics/py-open3d-python/files/patch-External_pybind11_tools_pybind11Tools.cmake new file mode 100644 index 000000000000..c9e3397c3a34 --- /dev/null +++ b/graphics/py-open3d-python/files/patch-External_pybind11_tools_pybind11Tools.cmake @@ -0,0 +1,32 @@ +--- External/pybind11/tools/pybind11Tools.cmake.orig 2018-09-02 16:32:40 UTC ++++ External/pybind11/tools/pybind11Tools.cmake +@@ -69,17 +69,19 @@ function(_pybind11_add_lto_flags target_ + set(cxx_append ";-fno-fat-lto-objects") + endif() + +- if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND prefer_thin_lto) +- _pybind11_return_if_cxx_and_linker_flags_work(HAS_FLTO_THIN +- "-flto=thin${cxx_append}" "-flto=thin${linker_append}" +- PYBIND11_LTO_CXX_FLAGS PYBIND11_LTO_LINKER_FLAGS) +- endif() ++ # Disable -flto because it fails on 12: /usr/local/bin/ld: /usr/bin/../lib/LLVMgold.so: error loading plugin: Cannot open "/usr/bin/../lib/LLVMgold.so" ++ # It is only activated on 12, not 11, for some reason. ++ #if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND prefer_thin_lto) ++ # _pybind11_return_if_cxx_and_linker_flags_work(HAS_FLTO_THIN ++ # "-flto=thin${cxx_append}" "-flto=thin${linker_append}" ++ # PYBIND11_LTO_CXX_FLAGS PYBIND11_LTO_LINKER_FLAGS) ++ #endif() + +- if (NOT HAS_FLTO_THIN) +- _pybind11_return_if_cxx_and_linker_flags_work(HAS_FLTO +- "-flto${cxx_append}" "-flto${linker_append}" +- PYBIND11_LTO_CXX_FLAGS PYBIND11_LTO_LINKER_FLAGS) +- endif() ++ #if (NOT HAS_FLTO_THIN) ++ # _pybind11_return_if_cxx_and_linker_flags_work(HAS_FLTO ++ # "-flto${cxx_append}" "-flto${linker_append}" ++ # PYBIND11_LTO_CXX_FLAGS PYBIND11_LTO_LINKER_FLAGS) ++ #endif() + elseif (CMAKE_CXX_COMPILER_ID MATCHES "Intel") + # Intel equivalent to LTO is called IPO + _pybind11_return_if_cxx_and_linker_flags_work(HAS_INTEL_IPO