diff options
Diffstat (limited to 'meta/recipes-devtools/dwarfsrcfiles')
-rw-r--r-- | meta/recipes-devtools/dwarfsrcfiles/dwarfsrcfiles.bb | 16 | ||||
-rw-r--r-- | meta/recipes-devtools/dwarfsrcfiles/files/dwarfsrcfiles.c | 13 |
2 files changed, 20 insertions, 9 deletions
diff --git a/meta/recipes-devtools/dwarfsrcfiles/dwarfsrcfiles.bb b/meta/recipes-devtools/dwarfsrcfiles/dwarfsrcfiles.bb index 2c843a9342..8e42b12b77 100644 --- a/meta/recipes-devtools/dwarfsrcfiles/dwarfsrcfiles.bb +++ b/meta/recipes-devtools/dwarfsrcfiles/dwarfsrcfiles.bb @@ -1,18 +1,22 @@ SUMMARY = "A small utility for printing debug source file locations embedded in binaries" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://../dwarfsrcfiles.c;md5=31483894e453a77acbb67847565f1b5c;beginline=1;endline=8" +DESCRIPTION = "${SUMMARY}" +LICENSE = "GPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://dwarfsrcfiles.c;md5=31483894e453a77acbb67847565f1b5c;beginline=1;endline=8" SRC_URI = "file://dwarfsrcfiles.c" BBCLASSEXTEND = "native" DEPENDS = "elfutils" -DEPENDS_append_libc-musl = " argp-standalone" +DEPENDS:append:libc-musl = " argp-standalone" + +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" do_compile () { - ${CC} ${CFLAGS} ${LDFLAGS} -o dwarfsrcfiles ../dwarfsrcfiles.c -lelf -ldw + ${CC} ${CFLAGS} ${LDFLAGS} -o dwarfsrcfiles ${S}/dwarfsrcfiles.c -lelf -ldw } -do_compile_libc-musl () { - ${CC} ${CFLAGS} ${LDFLAGS} -o dwarfsrcfiles ../dwarfsrcfiles.c -lelf -ldw -largp +do_compile:libc-musl () { + ${CC} ${CFLAGS} ${LDFLAGS} -o dwarfsrcfiles ${S}/dwarfsrcfiles.c -lelf -ldw -largp } do_install () { diff --git a/meta/recipes-devtools/dwarfsrcfiles/files/dwarfsrcfiles.c b/meta/recipes-devtools/dwarfsrcfiles/files/dwarfsrcfiles.c index af7af524eb..9eb5ca807a 100644 --- a/meta/recipes-devtools/dwarfsrcfiles/files/dwarfsrcfiles.c +++ b/meta/recipes-devtools/dwarfsrcfiles/files/dwarfsrcfiles.c @@ -9,6 +9,7 @@ #include <argp.h> #include <stdio.h> +#include <stdlib.h> #include <dwarf.h> #include <elfutils/libdw.h> @@ -83,13 +84,15 @@ process_cu (Dwarf_Die *cu_die) int main (int argc, char **argv) { - char* args[3]; + char* args[5]; int res = 0; Dwfl *dwfl; Dwarf_Addr bias; - if (argc != 2) + if (argc != 2) { fprintf(stderr, "Usage %s <file>", argv[0]); + exit(EXIT_FAILURE); + } // Pretend "dwarfsrcfiles -e <file>" was given, so we can use standard // dwfl argp parser to open the file for us and get our Dwfl. Useful @@ -98,8 +101,12 @@ main (int argc, char **argv) args[0] = argv[0]; args[1] = "-e"; args[2] = argv[1]; + // We don't want to follow debug linked files due to the way OE processes + // files, could race against changes in the linked binary (e.g. objcopy on it) + args[3] = "--debuginfo-path"; + args[4] = "/not/exist"; - argp_parse (dwfl_standard_argp (), 3, args, 0, NULL, &dwfl); + argp_parse (dwfl_standard_argp (), 5, args, 0, NULL, &dwfl); Dwarf_Die *cu = NULL; while ((cu = dwfl_nextcu (dwfl, cu, &bias)) != NULL) |