glog: Link with libexecinfo on musl

some platforms e.g. riscv do not yet have libunwind ported so use
libexecinfo instead

Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Khem Raj 2021-03-08 14:58:40 -08:00
parent bbc3b9dd0f
commit d1a74bad36
2 changed files with 33 additions and 0 deletions

View File

@ -0,0 +1,29 @@
Link libexecinfo if its found, this is needed for musl based systems
Fixes
ld: libglog.so.0.4.0: undefined reference to `backtrace'
| collect2: error: ld returned 1 exit status
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -115,6 +115,7 @@ check_cxx_compiler_flag (-Wunnamed-type-
check_symbol_exists (snprintf stdio.h HAVE_SNPRINTF)
check_library_exists (dbghelp UnDecorateSymbolName "" HAVE_DBGHELP)
+check_library_exists (execinfo backtrace "" HAVE_EXECINFO)
find_package(Libunwind)
@@ -471,6 +472,10 @@ if (Libunwind_FOUND)
target_link_libraries (glog PUBLIC unwind)
endif (Libunwind_FOUND)
+if (HAVE_EXECINFO)
+ target_link_libraries (glog PUBLIC execinfo)
+endif (HAVE_EXECINFO)
+
if (HAVE_DBGHELP)
target_link_libraries (glog PUBLIC dbghelp)
endif (HAVE_DBGHELP)

View File

@ -9,6 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=dc9db360e0bbd4e46672f3fd91dd6c4b"
SRC_URI = " \
git://github.com/google/glog.git;nobranch=1 \
file://0001-Find-Libunwind-during-configure.patch \
file://libexecinfo.patch \
"
SRCREV = "96a2f23dca4cc7180821ca5f32e526314395d26a"
@ -20,8 +21,11 @@ inherit cmake
PACKAGECONFIG ?= "shared unwind"
PACKAGECONFIG_remove_riscv64 = "unwind"
PACKAGECONFIG_remove_riscv32 = "unwind"
PACKAGECONFIG_append_libc-musl_riscv64 = " execinfo"
PACKAGECONFIG_append_libc-musl_riscv32 = " execinfo"
PACKAGECONFIG[unwind] = "-DWITH_UNWIND=ON,-DWITH_UNWIND=OFF,libunwind,libunwind"
PACKAGECONFIG[execinfo] = ",,libexecinfo"
PACKAGECONFIG[shared] = "-DBUILD_SHARED_LIBS=ON,-DBUILD_SHARED_LIBS=OFF,,"
do_configure_append() {