summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/elfutils/elfutils_0.187.bb
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/elfutils/elfutils_0.187.bb')
-rw-r--r--meta/recipes-devtools/elfutils/elfutils_0.187.bb164
1 files changed, 164 insertions, 0 deletions
diff --git a/meta/recipes-devtools/elfutils/elfutils_0.187.bb b/meta/recipes-devtools/elfutils/elfutils_0.187.bb
new file mode 100644
index 0000000000..d20220e433
--- /dev/null
+++ b/meta/recipes-devtools/elfutils/elfutils_0.187.bb
@@ -0,0 +1,164 @@
1SUMMARY = "Utilities and libraries for handling compiled object files"
2HOMEPAGE = "https://sourceware.org/elfutils"
3DESCRIPTION = "elfutils is a collection of utilities and libraries to read, create and modify ELF binary files, find and handle DWARF debug data, symbols, thread state and stacktraces for processes and core files on GNU/Linux."
4SECTION = "base"
5LICENSE = "GPL-2.0-only & GPL-2.0-or-later & LGPL-3.0-or-later & GPL-3.0-or-later"
6LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
7 file://debuginfod/debuginfod-client.c;endline=28;md5=f0a7c3170776866ee94e8f9225a6ad79 \
8 "
9DEPENDS = "zlib virtual/libintl"
10DEPENDS:append:libc-musl = " argp-standalone fts musl-obstack "
11# The Debian patches below are from:
12# http://ftp.de.debian.org/debian/pool/main/e/elfutils/elfutils_0.176-1.debian.tar.xz
13SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \
14 file://0001-dso-link-change.patch \
15 file://0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch \
16 file://0003-fixheadercheck.patch \
17 file://0006-Fix-build-on-aarch64-musl.patch \
18 file://0001-libasm-may-link-with-libbz2-if-found.patch \
19 file://0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch \
20 file://0001-skip-the-test-when-gcc-not-deployed.patch \
21 file://run-ptest \
22 file://ptest.patch \
23 file://0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch \
24 "
25SRC_URI:append:libc-musl = " \
26 file://0003-musl-utils.patch \
27 file://0015-config-eu.am-do-not-use-Werror.patch \
28 "
29SRC_URI[sha256sum] = "e70b0dfbe610f90c4d1fe0d71af142a4e25c3c4ef9ebab8d2d72b65159d454c8"
30
31inherit autotools gettext ptest pkgconfig
32PTEST_ENABLED:libc-musl = "0"
33
34EXTRA_OECONF = "--program-prefix=eu-"
35
36DEPENDS_BZIP2 = "bzip2-replacement-native"
37DEPENDS_BZIP2:class-target = "bzip2"
38
39PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'debuginfod', 'debuginfod libdebuginfod', '', d)}"
40PACKAGECONFIG[bzip2] = "--with-bzlib,--without-bzlib,${DEPENDS_BZIP2}"
41PACKAGECONFIG[xz] = "--with-lzma,--without-lzma,xz"
42PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd"
43PACKAGECONFIG[libdebuginfod] = "--enable-libdebuginfod,--disable-libdebuginfod,curl"
44PACKAGECONFIG[debuginfod] = "--enable-debuginfod,--disable-debuginfod,libarchive sqlite3 libmicrohttpd"
45
46RDEPENDS:${PN}-ptest += "libasm libelf bash make coreutils ${PN}-binutils iproute2-ss bsdtar gcc-symlinks binutils-symlinks libgcc-dev"
47
48EXTRA_OECONF:append:class-target = " --disable-tests-rpath"
49
50RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils glibc-dbg glibc-dev"
51INSANE_SKIP:${PN}-ptest = "debug-deps dev-deps"
52
53do_compile_ptest() {
54 cd ${B}/tests
55 oe_runmake buildtest-TESTS oecheck
56}
57
58do_install_ptest() {
59 if [ ${PTEST_ENABLED} = "1" ]; then
60 # copy the files which needed by the cases
61 TEST_FILES="strip strip.o addr2line elfcmp objdump readelf size.o nm.o nm elflint elfcompress elfclassify stack unstrip"
62 install -d -m 755 ${D}${PTEST_PATH}/src
63 install -d -m 755 ${D}${PTEST_PATH}/libelf
64 install -d -m 755 ${D}${PTEST_PATH}/libdw
65 install -d -m 755 ${D}${PTEST_PATH}/libdwfl
66 install -d -m 755 ${D}${PTEST_PATH}/libdwelf
67 install -d -m 755 ${D}${PTEST_PATH}/libasm
68 install -d -m 755 ${D}${PTEST_PATH}/libcpu
69 install -d -m 755 ${D}${PTEST_PATH}/libebl
70 for test_file in ${TEST_FILES}; do
71 if [ -f ${B}/src/${test_file} ]; then
72 cp -r ${B}/src/${test_file} ${D}${PTEST_PATH}/src
73 fi
74 done
75 cp ${D}${libdir}/libelf-${PV}.so ${D}${PTEST_PATH}/libelf/libelf.so
76 cp ${D}${libdir}/libdw-${PV}.so ${D}${PTEST_PATH}/libdw/libdw.so
77 cp ${D}${libdir}/libasm-${PV}.so ${D}${PTEST_PATH}/libasm/libasm.so
78 cp ${B}/libcpu/libcpu.a ${D}${PTEST_PATH}/libcpu/
79 cp ${B}/libebl/libebl.a ${D}${PTEST_PATH}/libebl/
80 cp ${S}/libelf/*.h ${D}${PTEST_PATH}/libelf/
81 cp ${S}/libdw/*.h ${D}${PTEST_PATH}/libdw/
82 cp ${S}/libdwfl/*.h ${D}${PTEST_PATH}/libdwfl/
83 cp ${S}/libdwelf/*.h ${D}${PTEST_PATH}/libdwelf/
84 cp ${S}/libasm/*.h ${D}${PTEST_PATH}/libasm/
85 cp -r ${S}/tests/ ${D}${PTEST_PATH}
86 cp -r ${B}/tests/* ${D}${PTEST_PATH}/tests
87 cp -r ${B}/config.h ${D}${PTEST_PATH}
88 cp -r ${B}/backends ${D}${PTEST_PATH}
89 cp -r ${B}/debuginfod ${D}${PTEST_PATH}
90 sed -i '/^Makefile:/c Makefile:' ${D}${PTEST_PATH}/tests/Makefile
91 find ${D}${PTEST_PATH} -type f -name *.[hoc] | xargs -i rm {}
92 fi
93}
94
95EXTRA_OEMAKE:class-native = ""
96EXTRA_OEMAKE:class-nativesdk = ""
97
98BBCLASSEXTEND = "native nativesdk"
99
100# Package utilities separately
101PACKAGES =+ "${PN}-binutils libelf libasm libdw libdebuginfod"
102
103# Shared libraries are licensed GPL-2.0-only or GPL-3.0-or-later, binaries
104# GPL-3.0-or-later. According to NEWS file:
105# "The license is now GPLv2/LGPLv3+ for the libraries and GPLv3+ for stand-alone
106# programs. There is now also a formal CONTRIBUTING document describing how to
107# submit patches."
108LICENSE:${PN}-binutils = "GPL-3.0-or-later"
109LICENSE:${PN} = "GPL-3.0-or-later"
110LICENSE:libelf = "GPL-2.0-only | LGPL-3.0-or-later"
111LICENSE:libasm = "GPL-2.0-only | LGPL-3.0-or-later"
112LICENSE:libdw = "GPL-2.0-only | LGPL-3.0-or-later"
113LICENSE:libdebuginfod = "GPL-2.0-or-later | LGPL-3.0-or-later"
114
115FILES:${PN}-binutils = "\
116 ${bindir}/eu-addr2line \
117 ${bindir}/eu-ld \
118 ${bindir}/eu-nm \
119 ${bindir}/eu-readelf \
120 ${bindir}/eu-size \
121 ${bindir}/eu-strip"
122
123FILES:libelf = "${libdir}/libelf-${PV}.so ${libdir}/libelf.so.*"
124FILES:libasm = "${libdir}/libasm-${PV}.so ${libdir}/libasm.so.*"
125FILES:libdw = "${libdir}/libdw-${PV}.so ${libdir}/libdw.so.* ${libdir}/elfutils/lib*"
126FILES:libdebuginfod = "${libdir}/libdebuginfod-${PV}.so ${libdir}/libdebuginfod.so.*"
127# Some packages have the version preceeding the .so instead properly
128# versioned .so.<version>, so we need to reorder and repackage.
129#FILES:${PN} += "${libdir}/*-${PV}.so ${base_libdir}/*-${PV}.so"
130#FILES_SOLIBSDEV = "${libdir}/libasm.so ${libdir}/libdw.so ${libdir}/libelf.so"
131
132# The package contains symlinks that trip up insane
133INSANE_SKIP:${MLPREFIX}libdw = "dev-so"
134# The nlist binary in the tests uses explicitly minimal compiler flags
135INSANE_SKIP:${PN}-ptest += "ldflags"
136
137# avoid stripping some generated binaries otherwise some of the tests such as test-nlist,
138# run-strip-reloc.sh, run-strip-strmerge.sh and so on will fail
139INHIBIT_PACKAGE_STRIP_FILES = "\
140 ${PKGD}${PTEST_PATH}/tests/test-nlist \
141 ${PKGD}${PTEST_PATH}/tests/elfstrmerge \
142 ${PKGD}${PTEST_PATH}/tests/backtrace-child \
143 ${PKGD}${PTEST_PATH}/tests/backtrace-data \
144 ${PKGD}${PTEST_PATH}/tests/backtrace-dwarf \
145 ${PKGD}${PTEST_PATH}/tests/deleted \
146 ${PKGD}${PTEST_PATH}/tests/dwfllines \
147 ${PKGD}${PTEST_PATH}/src/strip \
148 ${PKGD}${PTEST_PATH}/src/addr2line \
149 ${PKGD}${PTEST_PATH}/src/elfcmp \
150 ${PKGD}${PTEST_PATH}/src/objdump \
151 ${PKGD}${PTEST_PATH}/src/readelf \
152 ${PKGD}${PTEST_PATH}/src/nm \
153 ${PKGD}${PTEST_PATH}/src/elflint \
154 ${PKGD}${PTEST_PATH}/src/elfclassify \
155 ${PKGD}${PTEST_PATH}/src/stack \
156 ${PKGD}${PTEST_PATH}/src/unstrip \
157 ${PKGD}${PTEST_PATH}/libelf/libelf.so \
158 ${PKGD}${PTEST_PATH}/libdw/libdw.so \
159 ${PKGD}${PTEST_PATH}/libasm/libasm.so \
160 ${PKGD}${PTEST_PATH}/backends/libebl_i386.so \
161 ${PKGD}${PTEST_PATH}/backends/libebl_x86_64.so \
162"
163
164PRIVATE_LIBS:${PN}-ptest = "libdw.so.1 libelf.so.1 libasm.so.1 libdebuginfod.so.1"