Re: [oe] [meta-oe][PATCH] glog: updated libunwind look up function
Fails to build on musl http://errors.yoctoproject.org/Errors/Details/198237/ On Fri, Nov 2, 2018 at 6:20 AM Vyacheslav Yurkov wrote: > > From: Vyacheslav Yurkov > > Updated FindLinunwind cmake file to locate libunwind properly in the system. > This includes settings all needed defines in config.h file, which are used > for glog compilation. Changed unwind cmake target to interface, because in > cross-compilation environment we could link against several libunwind shared > libraries. > > Signed-off-by: Vyacheslav Yurkov > --- > ...0001-find-libunwind-during-configure.patch | 30 - > ...0002-Find-Libunwind-during-configure.patch | 113 ++ > meta-oe/recipes-support/glog/glog_0.3.5.bb| 6 +- > 3 files changed, 115 insertions(+), 34 deletions(-) > delete mode 100644 > meta-oe/recipes-support/glog/glog/0001-find-libunwind-during-configure.patch > create mode 100644 > meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch > > diff --git > a/meta-oe/recipes-support/glog/glog/0001-find-libunwind-during-configure.patch > > b/meta-oe/recipes-support/glog/glog/0001-find-libunwind-during-configure.patch > deleted file mode 100644 > index 33dc9d38a..0 > --- > a/meta-oe/recipes-support/glog/glog/0001-find-libunwind-during-configure.patch > +++ /dev/null > @@ -1,30 +0,0 @@ > -diff -ur git/CMakeLists.txt ../0.3.5-r0.unwind/git/CMakeLists.txt > git/CMakeLists.txt 2018-10-08 08:54:15.118989400 +0200 > -+++ ../0.3.5-r0.unwind/git/CMakeLists.txt 2018-10-05 16:26:59.745922318 > +0200 > -@@ -384,7 +384,9 @@ > - set_target_properties (glog PROPERTIES POSITION_INDEPENDENT_CODE ON) > - > - if (UNWIND_LIBRARY) > -- target_link_libraries (glog PUBLIC ${UNWIND_LIBRARY}) > -+ add_library(unwind SHARED IMPORTED) > -+ set_target_properties(unwind PROPERTIES IMPORTED_LOCATION > ${UNWIND_LIBRARY}) > -+ target_link_libraries (glog PUBLIC unwind) > - endif (UNWIND_LIBRARY) > - > - if (HAVE_PTHREAD) > -diff -ur git/glog-config.cmake.in ../0.3.5-r0.unwind/git/glog-config.cmake.in > git/glog-config.cmake.in 2018-10-08 08:54:15.122989699 +0200 > -+++ ../0.3.5-r0.unwind/git/glog-config.cmake.in2018-10-08 > 08:14:48.550745810 +0200 > -@@ -4,4 +4,12 @@ > - > - @gflags_DEPENDENCY@ > - > -+find_library (UNWIND_LIBRARY NAMES unwind DOC "unwind library") > -+mark_as_advanced (UNWIND_LIBRARY) > -+ > -+if (UNWIND_LIBRARY) > -+ add_library(unwind SHARED IMPORTED) > -+ set_target_properties(unwind PROPERTIES IMPORTED_LOCATION > ${UNWIND_LIBRARY}) > -+endif (UNWIND_LIBRARY) > -+ > - include ("${CMAKE_CURRENT_LIST_DIR}/glog-targets.cmake") > diff --git > a/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch > > b/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch > new file mode 100644 > index 0..24c53707d > --- /dev/null > +++ > b/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch > @@ -0,0 +1,113 @@ > +diff -uNr a/cmake/FindLibunwind.cmake b/cmake/FindLibunwind.cmake > +--- a/cmake/FindLibunwind.cmake1970-01-01 01:00:00.0 +0100 > b/cmake/FindLibunwind.cmake2018-11-02 14:04:35.460437058 +0100 > +@@ -0,0 +1,37 @@ > ++# - Try to find libunwind > ++# Once done this will define > ++# > ++# LIBUNWIND_FOUND - system has libunwind > ++# unwind - cmake target for libunwind > ++ > ++find_library (UNWIND_LIBRARY NAMES unwind DOC "unwind library") > ++include (CheckIncludeFile) > ++check_include_file (libunwind.h HAVE_LIBUNWIND_H) > ++check_include_file (unwind.h HAVE_UNWIND_H) > ++ > ++if (CMAKE_SYSTEM_PROCESSOR MATCHES "^arm") > ++set(LIBUNWIND_ARCH "arm") > ++elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR > ++CMAKE_SYSTEM_PROCESSOR STREQUAL "amd64" OR > ++set(LIBUNWIND_ARCH "x86_64") > ++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$") > ++set(LIBUNWIND_ARCH "x86") > ++endif() > ++ > ++find_library (UNWIND_LIBRARY_PLATFORM NAMES "unwind-${LIBUNWIND_ARCH}" DOC > "unwind library platform") > ++if (UNWIND_LIBRARY_PLATFORM) > ++set(HAVE_LIB_UNWIND "1") > ++endif() > ++ > ++include(FindPackageHandleStandardArgs) > ++# handle the QUIETLY and REQUIRED arguments and set Libunwind_FOUND to TRUE > ++# if all listed variables are TRUE > ++find_package_handle_standard_args(Libunwind DEFAULT_MSG > ++UNWIND_LIBRARY HAVE_LIBUNWIND_H HAVE_UNWIND_H HAVE_LIB_UNWIND) > ++ > ++mark_as_advanced (UNWIND_LIBRARY UNWIND_LIBRARY_PLATFORM) > ++ > ++add_library(unwind INTERFACE IMPORTED) > ++set_target_properties(unwind PROPERTIES > ++INTERFACE_LINK_LIBRARIES "${UNWIND_LIBRARY};${UNWIND_LIBRARY_PLATFORM}" > ++) > +diff -uNr a/CMakeLists.txt b/CMakeLists.txt > +--- a/CMakeLists.txt 2018-11-02 14:02:21.784835854 +0100 > b/CMakeLists.txt 2018-11-02 14:03:16.796935594 +0100 > +@@ -58,7 +58,6 @@ > + check_include_file (execinfo.h HAVE_EXECINFO_H) > + check_include_file (glob.h HAVE_GLOB_H) > + check_include_file (inttypes.h HAVE_
[oe] [meta-oe][PATCH] glog: updated libunwind look up function
From: Vyacheslav Yurkov Updated FindLinunwind cmake file to locate libunwind properly in the system. This includes settings all needed defines in config.h file, which are used for glog compilation. Changed unwind cmake target to interface, because in cross-compilation environment we could link against several libunwind shared libraries. Signed-off-by: Vyacheslav Yurkov --- ...0001-find-libunwind-during-configure.patch | 30 - ...0002-Find-Libunwind-during-configure.patch | 113 ++ meta-oe/recipes-support/glog/glog_0.3.5.bb| 6 +- 3 files changed, 115 insertions(+), 34 deletions(-) delete mode 100644 meta-oe/recipes-support/glog/glog/0001-find-libunwind-during-configure.patch create mode 100644 meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch diff --git a/meta-oe/recipes-support/glog/glog/0001-find-libunwind-during-configure.patch b/meta-oe/recipes-support/glog/glog/0001-find-libunwind-during-configure.patch deleted file mode 100644 index 33dc9d38a..0 --- a/meta-oe/recipes-support/glog/glog/0001-find-libunwind-during-configure.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -ur git/CMakeLists.txt ../0.3.5-r0.unwind/git/CMakeLists.txt git/CMakeLists.txt 2018-10-08 08:54:15.118989400 +0200 -+++ ../0.3.5-r0.unwind/git/CMakeLists.txt 2018-10-05 16:26:59.745922318 +0200 -@@ -384,7 +384,9 @@ - set_target_properties (glog PROPERTIES POSITION_INDEPENDENT_CODE ON) - - if (UNWIND_LIBRARY) -- target_link_libraries (glog PUBLIC ${UNWIND_LIBRARY}) -+ add_library(unwind SHARED IMPORTED) -+ set_target_properties(unwind PROPERTIES IMPORTED_LOCATION ${UNWIND_LIBRARY}) -+ target_link_libraries (glog PUBLIC unwind) - endif (UNWIND_LIBRARY) - - if (HAVE_PTHREAD) -diff -ur git/glog-config.cmake.in ../0.3.5-r0.unwind/git/glog-config.cmake.in git/glog-config.cmake.in 2018-10-08 08:54:15.122989699 +0200 -+++ ../0.3.5-r0.unwind/git/glog-config.cmake.in2018-10-08 08:14:48.550745810 +0200 -@@ -4,4 +4,12 @@ - - @gflags_DEPENDENCY@ - -+find_library (UNWIND_LIBRARY NAMES unwind DOC "unwind library") -+mark_as_advanced (UNWIND_LIBRARY) -+ -+if (UNWIND_LIBRARY) -+ add_library(unwind SHARED IMPORTED) -+ set_target_properties(unwind PROPERTIES IMPORTED_LOCATION ${UNWIND_LIBRARY}) -+endif (UNWIND_LIBRARY) -+ - include ("${CMAKE_CURRENT_LIST_DIR}/glog-targets.cmake") diff --git a/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch b/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch new file mode 100644 index 0..24c53707d --- /dev/null +++ b/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch @@ -0,0 +1,113 @@ +diff -uNr a/cmake/FindLibunwind.cmake b/cmake/FindLibunwind.cmake +--- a/cmake/FindLibunwind.cmake1970-01-01 01:00:00.0 +0100 b/cmake/FindLibunwind.cmake2018-11-02 14:04:35.460437058 +0100 +@@ -0,0 +1,37 @@ ++# - Try to find libunwind ++# Once done this will define ++# ++# LIBUNWIND_FOUND - system has libunwind ++# unwind - cmake target for libunwind ++ ++find_library (UNWIND_LIBRARY NAMES unwind DOC "unwind library") ++include (CheckIncludeFile) ++check_include_file (libunwind.h HAVE_LIBUNWIND_H) ++check_include_file (unwind.h HAVE_UNWIND_H) ++ ++if (CMAKE_SYSTEM_PROCESSOR MATCHES "^arm") ++set(LIBUNWIND_ARCH "arm") ++elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR ++CMAKE_SYSTEM_PROCESSOR STREQUAL "amd64" OR ++set(LIBUNWIND_ARCH "x86_64") ++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$") ++set(LIBUNWIND_ARCH "x86") ++endif() ++ ++find_library (UNWIND_LIBRARY_PLATFORM NAMES "unwind-${LIBUNWIND_ARCH}" DOC "unwind library platform") ++if (UNWIND_LIBRARY_PLATFORM) ++set(HAVE_LIB_UNWIND "1") ++endif() ++ ++include(FindPackageHandleStandardArgs) ++# handle the QUIETLY and REQUIRED arguments and set Libunwind_FOUND to TRUE ++# if all listed variables are TRUE ++find_package_handle_standard_args(Libunwind DEFAULT_MSG ++UNWIND_LIBRARY HAVE_LIBUNWIND_H HAVE_UNWIND_H HAVE_LIB_UNWIND) ++ ++mark_as_advanced (UNWIND_LIBRARY UNWIND_LIBRARY_PLATFORM) ++ ++add_library(unwind INTERFACE IMPORTED) ++set_target_properties(unwind PROPERTIES ++INTERFACE_LINK_LIBRARIES "${UNWIND_LIBRARY};${UNWIND_LIBRARY_PLATFORM}" ++) +diff -uNr a/CMakeLists.txt b/CMakeLists.txt +--- a/CMakeLists.txt 2018-11-02 14:02:21.784835854 +0100 b/CMakeLists.txt 2018-11-02 14:03:16.796935594 +0100 +@@ -58,7 +58,6 @@ + check_include_file (execinfo.h HAVE_EXECINFO_H) + check_include_file (glob.h HAVE_GLOB_H) + check_include_file (inttypes.h HAVE_INTTYPES_H) +-check_include_file (libunwind.h HAVE_LIBUNWIND_H) + check_include_file (memory.h HAVE_MEMORY_H) + check_include_file (pwd.h HAVE_PWD_H) + check_include_file (stdint.h HAVE_STDINT_H) +@@ -74,7 +73,6 @@ + check_include_file (syslog.h HAVE_SYSLOG_H) + check_include_file (ucontext.h HAVE_UCONTEXT_H) + check_include_file (unistd.h HAVE_UNISTD_H) +-check_include_file