[oe] [meta-oe][PATCH] glog: fixed the build for mips and other platforms

Vyacheslav Yurkov uvv.mail at gmail.com
Tue Nov 20 07:52:04 UTC 2018


I don't see that it would be supported on these architectures. At lease
this is what first paragraph on https://github.com/libunwind/libunwind says:



This library supports several architecture/operating-system combinations:



Linux/x86-64: Works well. Linux/x86: Works well. Linux/ARM: Works well.
Linux/IA-64: Works well. Linux/PARISC: Works well, but C library missing
unwind-info. HP-UX/IA-64: Mostly works but known to have some serious
limitations. MIPS: Newly added. Linux/AArch64: Works well. Linux/PPC64:
Newly added. Linux/SuperH: Newly added. FreeBSD/i386: Works well.
FreeBSD/x86-64: Newly added (FreeBSD architecture is known as amd64).
Linux/Tilegx: Newly added (64-bit mode only).



I guess if someone wants to use glog on those, glog has to be compiled
without libunwind support. In that case the libunwind check needs to fall
through without fatal message. I will change that part.



Vyacheslav


On Mon, Nov 19, 2018 at 10:26 PM Khem Raj <raj.khem at gmail.com> wrote:

> On Mon, Nov 19, 2018 at 7:19 AM Vyacheslav Yurkov <uvv.mail at gmail.com>
> wrote:
> >
> > From: Vyacheslav Yurkov <Vyacheslav.Yurkov at bruker.com>
> >
> > According to build log
> http://errors.yoctoproject.org/Errors/Details/201286/
> > FindLibunwind wokred only for x86, arm, and x86_64. This patch extends
> the
> > cmake module to work with mips, ia64, ppc(64) and other architectures
> supported
> > by libunwind
>
> It would be good to add riscv64 and arc to this list as well.
>
> >
> > Signed-off-by: Vyacheslav Yurkov <Vyacheslav.Yurkov at bruker.com>
> > ---
> >  ...0002-Find-Libunwind-during-configure.patch | 34 ++++++++++++++-----
> >  1 file changed, 25 insertions(+), 9 deletions(-)
> >
> > 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
> > index 3a6f824ea..4ad302cbe 100644
> > ---
> 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
> > @@ -1,11 +1,11 @@
> >  diff -uNr a/cmake/FindLibunwind.cmake b/cmake/FindLibunwind.cmake
> >  --- a/cmake/FindLibunwind.cmake        1970-01-01 01:00:00.000000000
> +0100
> > -+++ b/cmake/FindLibunwind.cmake        2018-11-02 14:04:35.460437058
> +0100
> > -@@ -0,0 +1,37 @@
> > ++++ b/cmake/FindLibunwind.cmake        2018-11-19 16:07:17.652031645
> +0100
> > +@@ -0,0 +1,54 @@
> >  +# - Try to find libunwind
> >  +# Once done this will define
> >  +#
> > -+#  LIBUNWIND_FOUND - system has libunwind
> > ++#  Libunwind_FOUND - system has libunwind
> >  +#  unwind - cmake target for libunwind
> >  +
> >  +find_library (UNWIND_LIBRARY NAMES unwind DOC "unwind library")
> > @@ -15,11 +15,24 @@ diff -uNr a/cmake/FindLibunwind.cmake
> b/cmake/FindLibunwind.cmake
> >  +
> >  +if (CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
> >  +    set(LIBUNWIND_ARCH "arm")
> > ++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64")
> > ++    set(LIBUNWIND_ARCH "aarch64")
> >  +elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR
> > -+        CMAKE_SYSTEM_PROCESSOR STREQUAL "amd64")
> > ++        CMAKE_SYSTEM_PROCESSOR STREQUAL "amd64" OR
> > ++        CMAKE_SYSTEM_PROCESSOR STREQUAL "corei7-64")
> >  +    set(LIBUNWIND_ARCH "x86_64")
> >  +elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$")
> >  +    set(LIBUNWIND_ARCH "x86")
> > ++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64")
> > ++    set(LIBUNWIND_ARCH "ppc64")
> > ++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc")
> > ++    set(LIBUNWIND_ARCH "ppc32")
> > ++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^mips")
> > ++    set(LIBUNWIND_ARCH "mips")
> > ++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^hppa")
> > ++    set(LIBUNWIND_ARCH "hppa")
> > ++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^ia64")
> > ++    set(LIBUNWIND_ARCH "ia64")
> >  +endif()
> >  +
> >  +find_library (UNWIND_LIBRARY_PLATFORM NAMES "unwind-${LIBUNWIND_ARCH}"
> DOC "unwind library platform")
> > @@ -35,13 +48,17 @@ diff -uNr a/cmake/FindLibunwind.cmake
> b/cmake/FindLibunwind.cmake
> >  +
> >  +mark_as_advanced (UNWIND_LIBRARY UNWIND_LIBRARY_PLATFORM)
> >  +
> > ++if (NOT Libunwind_FOUND)
> > ++    message(FATAL_ERROR "Can't find libunwind library")
> > ++endif()
> > ++
> >  +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
> > +--- a/CMakeLists.txt   2018-11-19 15:55:05.293665965 +0100
> > ++++ b/CMakeLists.txt   2018-11-19 15:57:37.828381535 +0100
> >  @@ -58,7 +58,6 @@
> >   check_include_file (execinfo.h HAVE_EXECINFO_H)
> >   check_include_file (glob.h HAVE_GLOB_H)
> > @@ -91,10 +108,9 @@ diff -uNr a/CMakeLists.txt b/CMakeLists.txt
> >     DESTINATION lib/cmake/glog)
> >
> >   install (EXPORT glog-targets NAMESPACE glog:: DESTINATION
> lib/cmake/glog)
> > -Binary files a/.git/index and b/.git/index differ
> >  diff -uNr a/glog-config.cmake.in b/glog-config.cmake.in
> > ---- a/glog-config.cmake.in     2018-11-02 14:02:21.784835854 +0100
> > -+++ b/glog-config.cmake.in     2018-11-02 14:03:16.796935594 +0100
> > +--- a/glog-config.cmake.in     2018-11-19 15:55:05.293665965 +0100
> > ++++ b/glog-config.cmake.in     2018-11-19 15:57:37.828381535 +0100
> >  @@ -4,4 +4,15 @@
> >
> >   @gflags_DEPENDENCY@
> > --
> > 2.19.1
> >
> > --
> > _______________________________________________
> > Openembedded-devel mailing list
> > Openembedded-devel at lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>


More information about the Openembedded-devel mailing list