LGTM On Wed, Feb 19, 2025 at 10:51 AM Fabio Estevam <[email protected]> wrote: > > Move the libexecinfo recipe from meta-openembedded to meta-oe. > > The motivation for doing this is building mtd-utils 2.3.0 with musl. > > Musl requires an external libexecinfo to provide backtrace support. > > Signed-off-by: Fabio Estevam <[email protected]> > --- > Changes since v2: > - Use Upstream-Status: Inactive-Upstream. (Alexander) > > meta/conf/distro/include/maintainers.inc | 1 + > .../0001-makefile-Fix-build-on-linux.patch | 60 ++++++++++++++ > ...piler-errors-found-with-newer-gcc-cl.patch | 79 +++++++++++++++++++ > meta/recipes-core/musl/libexecinfo_1.1.bb | 30 +++++++ > 4 files changed, 170 insertions(+) > create mode 100644 > meta/recipes-core/musl/libexecinfo/0001-makefile-Fix-build-on-linux.patch > create mode 100644 > meta/recipes-core/musl/libexecinfo/0002-execinfo-Fix-compiler-errors-found-with-newer-gcc-cl.patch > create mode 100644 meta/recipes-core/musl/libexecinfo_1.1.bb > > diff --git a/meta/conf/distro/include/maintainers.inc > b/meta/conf/distro/include/maintainers.inc > index e85a0c9563..c9885e7253 100644 > --- a/meta/conf/distro/include/maintainers.inc > +++ b/meta/conf/distro/include/maintainers.inc > @@ -333,6 +333,7 @@ RECIPE_MAINTAINER:pn-libepoxy = "Anuj Mittal > <[email protected]>" > RECIPE_MAINTAINER:pn-liberation-fonts = "Unassigned > <[email protected]>" > RECIPE_MAINTAINER:pn-libevdev = "Anuj Mittal <[email protected]>" > RECIPE_MAINTAINER:pn-libevent = "Anuj Mittal <[email protected]>" > +RECIPE_MAINTAINER:pn-libexecinfo = "Khem Raj <[email protected]>" > RECIPE_MAINTAINER:pn-libexif = "Unassigned <[email protected]>" > RECIPE_MAINTAINER:pn-libfakekey = "Unassigned <[email protected]>" > RECIPE_MAINTAINER:pn-libffi = "Unassigned <[email protected]>" > diff --git > a/meta/recipes-core/musl/libexecinfo/0001-makefile-Fix-build-on-linux.patch > b/meta/recipes-core/musl/libexecinfo/0001-makefile-Fix-build-on-linux.patch > new file mode 100644 > index 0000000000..d4894c4256 > --- /dev/null > +++ > b/meta/recipes-core/musl/libexecinfo/0001-makefile-Fix-build-on-linux.patch > @@ -0,0 +1,60 @@ > +From 910bbc2cb6cc1cfa6deed9d170da02a639902c7c Mon Sep 17 00:00:00 2001 > +From: Khem Raj <[email protected]> > +Date: Sun, 19 Mar 2017 16:14:54 -0700 > +Subject: [PATCH 1/2] makefile: Fix build on linux > + > +Upstream-Status: Inactive-Upstream [no update since 2017, no maintainer: > https://www.freshports.org/devel/libexecinfo] > +Signed-off-by: Khem Raj <[email protected]> > +--- > + Makefile | 33 +++++++++++++++++---------------- > + 1 file changed, 17 insertions(+), 16 deletions(-) > + > +Index: libexecinfo-1.1/Makefile > +=================================================================== > +--- libexecinfo-1.1.orig/Makefile > ++++ libexecinfo-1.1/Makefile > +@@ -23,24 +23,25 @@ > + # SUCH DAMAGE. > + # > + # $Id: Makefile,v 1.3 2004/07/19 05:19:55 sobomax Exp $ > ++# > ++# Linux Makefile by Matt Smith <[email protected]>, 2011/01/04 > + > +-LIB= execinfo > +- > +-SRCS= stacktraverse.c stacktraverse.h execinfo.c execinfo.h > +- > +-INCS= execinfo.h > +- > +-SHLIB_MAJOR= 1 > +-SHLIB_MINOR= 0 > +- > +-NOPROFILE= yes > +- > +-DPADD= ${LIBM} > +-LDADD= -lm > +- > +-#WARNS?= 4 > +- > +-#stacktraverse.c: gen.py > +-# ./gen.py > stacktraverse.c > ++CC?=cc > ++AR?=ar > ++EXECINFO_CFLAGS=$(CFLAGS) -O2 -pipe -fno-strict-aliasing -std=gnu99 > -fstack-protector -c > ++EXECINFO_LDFLAGS=$(LDFLAGS) > ++ > ++all: static dynamic > ++ > ++static: > ++ $(CC) $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) stacktraverse.c > ++ $(CC) $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) execinfo.c > ++ $(AR) rcs libexecinfo.a stacktraverse.o execinfo.o > ++ > ++dynamic: > ++ $(CC) -fpic -DPIC $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) > stacktraverse.c -o stacktraverse.So > ++ $(CC) -fpic -DPIC $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) execinfo.c > -o execinfo.So > ++ $(CC) -shared -Wl,-soname,libexecinfo.so.1 -o libexecinfo.so.1 > $(EXECINFO_LDFLAGS) stacktraverse.So execinfo.So > + > +-.include <bsd.lib.mk> > ++clean: > ++ rm -rf *.o *.So *.a *.so > diff --git > a/meta/recipes-core/musl/libexecinfo/0002-execinfo-Fix-compiler-errors-found-with-newer-gcc-cl.patch > > b/meta/recipes-core/musl/libexecinfo/0002-execinfo-Fix-compiler-errors-found-with-newer-gcc-cl.patch > new file mode 100644 > index 0000000000..914928d924 > --- /dev/null > +++ > b/meta/recipes-core/musl/libexecinfo/0002-execinfo-Fix-compiler-errors-found-with-newer-gcc-cl.patch > @@ -0,0 +1,79 @@ > +From 0810817773fb81d7383d2fa8464244c8f79845fb Mon Sep 17 00:00:00 2001 > +From: Khem Raj <[email protected]> > +Date: Sun, 19 Mar 2017 16:16:18 -0700 > +Subject: [PATCH 2/2] execinfo: Fix compiler errors found with newer gcc/clang > + > +Upstream-Status: Inactive-Upstream [no update since 2017, no maintainer: > https://www.freshports.org/devel/libexecinfo] > +Signed-off-by: Khem Raj <[email protected]> > +--- > + execinfo.c | 19 +++++++++++-------- > + 1 file changed, 11 insertions(+), 8 deletions(-) > + > +diff --git a/execinfo.c b/execinfo.c > +index 906fb14..9448b60 100644 > +--- a/execinfo.c > ++++ b/execinfo.c > +@@ -69,7 +69,8 @@ backtrace(void **buffer, int size) > + char ** > + backtrace_symbols(void *const *buffer, int size) > + { > +- int i, clen, alen, offset; > ++ size_t clen, alen; > ++ int i, offset; > + char **rval; > + char *cp; > + Dl_info info; > +@@ -78,7 +79,6 @@ backtrace_symbols(void *const *buffer, int size) > + rval = malloc(clen); > + if (rval == NULL) > + return NULL; > +- (char **)cp = &(rval[size]); > + for (i = 0; i < size; i++) { > + if (dladdr(buffer[i], &info) != 0) { > + if (info.dli_sname == NULL) > +@@ -92,14 +92,14 @@ backtrace_symbols(void *const *buffer, int size) > + 2 + /* " <" */ > + strlen(info.dli_sname) + /* "function" */ > + 1 + /* "+" */ > +- D10(offset) + /* "offset */ > ++ 10 + /* "offset */ > + 5 + /* "> at " */ > + strlen(info.dli_fname) + /* "filename" */ > + 1; /* "\0" */ > + rval = realloc_safe(rval, clen + alen); > + if (rval == NULL) > + return NULL; > +- snprintf(cp, alen, "%p <%s+%d> at %s", > ++ snprintf((char *) rval + clen, alen, "%p <%s+%d> at %s", > + buffer[i], info.dli_sname, offset, info.dli_fname); > + } else { > + alen = 2 + /* "0x" */ > +@@ -108,12 +108,15 @@ backtrace_symbols(void *const *buffer, int size) > + rval = realloc_safe(rval, clen + alen); > + if (rval == NULL) > + return NULL; > +- snprintf(cp, alen, "%p", buffer[i]); > ++ snprintf((char *) rval + clen, alen, "%p", buffer[i]); > + } > +- rval[i] = cp; > +- cp += alen; > ++ rval[i] = (char *) clen; > ++ clen += alen; > + } > + > ++ for (i = 0; i < size; i++) > ++ rval[i] += (long) rval; > ++ > + return rval; > + } > + > +@@ -155,6 +158,6 @@ backtrace_symbols_fd(void *const *buffer, int size, int > fd) > + return; > + snprintf(buf, len, "%p\n", buffer[i]); > + } > +- write(fd, buf, len - 1); > ++ write(fd, buf, strlen(buf)); > + } > + } > +-- > +2.12.0 > diff --git a/meta/recipes-core/musl/libexecinfo_1.1.bb > b/meta/recipes-core/musl/libexecinfo_1.1.bb > new file mode 100644 > index 0000000000..3711ceeebd > --- /dev/null > +++ b/meta/recipes-core/musl/libexecinfo_1.1.bb > @@ -0,0 +1,30 @@ > +# Copyright (C) 2017 Khem Raj <[email protected]> > +# Released under the MIT license (see COPYING.MIT for the terms) > + > +SUMMARY = "Library for inspecting program's backtrace" > +DESCRIPTION = "A quick-n-dirty BSD licensed clone of the GNU libc backtrace > facility." > +HOMEPAGE = "http://www.freshports.org/devel/libexecinfo" > +LIC_FILES_CHKSUM = > "file://execinfo.c;endline=25;md5=85bd3fa4ea9acae5182e29db063fe2e5" > +LICENSE = "BSD-2-Clause" > +SECTION = "libs" > +DEPENDS = "" > + > +SRC_URI = "http://distcache.freebsd.org/local-distfiles/itetcu/${BP}.tar.bz2 > \ > + file://0001-makefile-Fix-build-on-linux.patch \ > + > file://0002-execinfo-Fix-compiler-errors-found-with-newer-gcc-cl.patch \ > + " > +SRC_URI[sha256sum] = > "c9a21913e7fdac8ef6b33250b167aa1fc0a7b8a175145e26913a4c19d8a59b1f" > + > +CFLAGS += "-fno-omit-frame-pointer -D_GNU_SOURCE" > + > +do_install() { > + install -D -m 0744 ${S}/execinfo.h ${D}${includedir}/execinfo.h > + install -D -m 0744 ${S}/stacktraverse.h ${D}${includedir}/stacktraverse.h > + install -D -m 0744 ${B}/libexecinfo.a ${D}${libdir}/libexecinfo.a > + install -D -m 0755 ${B}/libexecinfo.so.1 ${D}${libdir}/libexecinfo.so.1 > + ln -s libexecinfo.so.1 ${D}${libdir}/libexecinfo.so > +} > +# > +# We will skip parsing for non-musl systems > +# > +COMPATIBLE_HOST = ".*-musl.*" > -- > 2.40.1 >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#211729): https://lists.openembedded.org/g/openembedded-core/message/211729 Mute This Topic: https://lists.openembedded.org/mt/111275284/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
