Fixes this issue: . Patch from Buildroot: . From fa5ec96a94646492a3f908e12905b3e48a8e800b Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Wed, 18 Apr 2018 20:24:13 +0200 Subject: [PATCH] src/cpp: fix cmake >= 3.11 build CMake < 3.11 doesn't support add_library() without any source file (i.e add_library(foo SHARED)). But flann CMake use a trick that use an empty string "" as source list (i.e add_library(foo SHARED "")). This look like a bug in CMake < 3.11. With CMake >= 3.11, the new behaviour of add_library() break the existing flann CMake code. From CMake Changelog [1]: "add_library() and add_executable() commands can now be called without any sources and will not complain as long as sources are added later via the target_sources() command." Note: flann CMake code doesn't use target_sources() since no source file are provided intentionally since the flann shared library is created by linking with the flann_cpp_s static library with this line: target_link_libraries(flann_cpp -Wl,-whole-archive flann_cpp_s -Wl,-no-whole-archive) If you try to use "add_library(flann_cpp SHARED ${CPP_SOURCES})" (as it should be normally done), the link fail due to already defined symbol. They are building the shared version using the static library "to speedup the build time" [3] This issue is already reported upstream [2] with a proposed solution. Upstream status: Pending Fixes: http://autobuild.buildroot.net/results/b2f/b2febfaf8c44ce477b3e4a5b9b976fd25e8d7454 [1] https://cmake.org/cmake/help/v3.11/release/3.11.html [2] https://github.com/mariusmuja/flann/issues/369 [3] https://github.com/mariusmuja/flann/commit/0fd62b43be2fbb0b8d791ee36290791224dc030c Signed-off-by: Romain Naour --- src/cpp/CMakeLists.txt | 4 ++-- src/cpp/empty.cpp | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 src/cpp/empty.cpp diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt index b44a735..a816863 100644 --- a/src/cpp/CMakeLists.txt +++ b/src/cpp/CMakeLists.txt @@ -29,7 +29,7 @@ if (BUILD_CUDA_LIB) endif() if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_COMPILER_IS_GNUCC) - add_library(flann_cpp SHARED "") + add_library(flann_cpp SHARED "empty.cpp") set_target_properties(flann_cpp PROPERTIES LINKER_LANGUAGE CXX) target_link_libraries(flann_cpp -Wl,-whole-archive flann_cpp_s -Wl,-no-whole-archive) @@ -85,7 +85,7 @@ if (BUILD_C_BINDINGS) set_property(TARGET flann_s PROPERTY COMPILE_DEFINITIONS FLANN_STATIC) if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_COMPILER_IS_GNUCC) - add_library(flann SHARED "") + add_library(flann SHARED "empty.cpp") set_target_properties(flann PROPERTIES LINKER_LANGUAGE CXX) target_link_libraries(flann -Wl,-whole-archive flann_s -Wl,-no-whole-archive) else() diff --git a/src/cpp/empty.cpp b/src/cpp/empty.cpp new file mode 100644 index 0000000..40a8c17 --- /dev/null +++ b/src/cpp/empty.cpp @@ -0,0 +1 @@ +/* empty */ -- 2.14.3 -UPDMAP.CFG and TEXLIVE-TINY should only be used as native inputs. Also remove texlive packages already provided by them. * doc/build.scm (pdf-manual): * gnu/packages/algebra.scm (pari-gp): * gnu/packages/bioinformatics.scm (discrover): (phyml): (velvet): * gnu/packages/chemistry.scm (yaehmop): * gnu/packages/chez.scm (stex-bootstrap): (chez-web): (chez-sockets): * gnu/packages/cran.scm (r-prereg): * gnu/packages/docbook.scm (dblatex): * gnu/packages/emacs-xyz.scm (emacs-auctex): * gnu/packages/engineering.scm (fastcap): * gnu/packages/fsf.scm (book-faif): * gnu/packages/graphviz.scm (dot2tex): * gnu/packages/maths.scm (hypre): * gnu/packages/ocaml.scm (unison): (ocaml-bibtex2html): * gnu/packages/plotutils.scm (asymptote): * gnu/packages/python-xyz.scm (python-nbconvert): (python-pypandoc): * gnu/packages/radio.scm (gnuradio): (libosmo-dsp): * gnu/packages/statistics.scm (r-with-tests): * gnu/packages/tex.scm (texlive-makecmds): (texlive-innerscript): (teximpatient): (texlive-xkeyval): Remove texlive packages already provided by TEXLIVE-UPDMAP.CFG. Don't add TEXLIVE-TINY or TEXLIVE-UPDMAP.CFG as inputs. 2023-07-18gnu: faif: Update texlive package names.Nicolas Goaziou * gnu/packages/fsf.scm (book-faif)[native-inputs]: Replace TEXLIVE-FONTS-EC, TEXLIVE-LATEX-FNCYCHAP, TEXLIVE-LATEX-GEOMETRY, TEXLIVE-LATEX-UCS with TEXLIVE-EC, TEXLIVE-FNCYCHAP, TEXLIVE-GEOMETRY, TEXLIVE-UCS. 2023-05-12gnu: Add Free as in Freedom (2.0).宋文武 * gnu/packages/fsf.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.