diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2019-05-13 09:23:58 +0100 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2019-05-13 09:25:17 +0100 |
commit | f1c43493a3eec023b86f3496973071dcfc492c41 (patch) | |
tree | e301f812bb6bde543a8803430ac05d8b360e2569 /dev-libs/elfutils | |
parent | app-arch/xz-utils: Removed old. (diff) | |
download | gentoo-f1c43493a3eec023b86f3496973071dcfc492c41.tar.gz gentoo-f1c43493a3eec023b86f3496973071dcfc492c41.tar.bz2 gentoo-f1c43493a3eec023b86f3496973071dcfc492c41.zip |
dev-libs/elfutils: add missing section update on reorder, bug #666954
Fix picked from https://sourceware.org/ml/elfutils-devel/2019-q2/msg00077.html
by Mark Wielaard.
Bug: https://bugs.gentoo.org/666954
Bug: https://github.com/rpm-software-management/rpm/issues/423
Package-Manager: Portage-2.3.66, Repoman-2.3.12
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Diffstat (limited to 'dev-libs/elfutils')
-rw-r--r-- | dev-libs/elfutils/elfutils-0.173-r2.ebuild | 71 | ||||
-rw-r--r-- | dev-libs/elfutils/elfutils-0.176-r1.ebuild | 71 | ||||
-rw-r--r-- | dev-libs/elfutils/files/elfutils-0.173-reorder.patch | 37 |
3 files changed, 179 insertions, 0 deletions
diff --git a/dev-libs/elfutils/elfutils-0.173-r2.ebuild b/dev-libs/elfutils/elfutils-0.173-r2.ebuild new file mode 100644 index 000000000000..668001589b8e --- /dev/null +++ b/dev-libs/elfutils/elfutils-0.173-r2.ebuild @@ -0,0 +1,71 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit flag-o-matic multilib-minimal + +DESCRIPTION="Libraries/utilities to handle ELF objects (drop in replacement for libelf)" +HOMEPAGE="http://elfutils.org/" +SRC_URI="https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2" + +LICENSE="|| ( GPL-2+ LGPL-3+ ) utils? ( GPL-3+ )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="bzip2 lzma nls static-libs test +threads +utils" + +RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] + bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] ) + lzma? ( >=app-arch/xz-utils-5.0.5-r1[${MULTILIB_USEDEP}] ) + !dev-libs/libelf" +DEPEND="${RDEPEND} + nls? ( sys-devel/gettext ) + >=sys-devel/flex-2.5.4a + sys-devel/m4" + +PATCHES=( + "${FILESDIR}"/${PN}-0.118-PaX-support.patch + "${FILESDIR}"/${PN}-0.173-partial-core.patch + "${FILESDIR}"/${PN}-0.175-disable-biarch-test-PR24158.patch + "${FILESDIR}"/${PN}-0.173-reorder.patch +) + +src_prepare() { + default + + if ! use static-libs; then + sed -i -e '/^lib_LIBRARIES/s:=.*:=:' -e '/^%.os/s:%.o$::' lib{asm,dw,elf}/Makefile.in || die + fi + sed -i 's:-Werror::' */Makefile.in || die +} + +src_configure() { + use test && append-flags -g #407135 + multilib-minimal_src_configure +} + +multilib_src_configure() { + ECONF_SOURCE="${S}" econf \ + $(use_enable nls) \ + $(use_enable threads thread-safety) \ + --program-prefix="eu-" \ + --with-zlib \ + $(use_with bzip2 bzlib) \ + $(use_with lzma) +} + +multilib_src_test() { + env LD_LIBRARY_PATH="${BUILD_DIR}/libelf:${BUILD_DIR}/libebl:${BUILD_DIR}/libdw:${BUILD_DIR}/libasm" \ + LC_ALL="C" \ + emake check VERBOSE=1 +} + +multilib_src_install_all() { + einstalldocs + dodoc NOTES + # These build quick, and are needed for most tests, so don't + # disable their building when the USE flag is disabled. + if ! use utils; then + rm -rf "${ED}"/usr/bin || die + fi +} diff --git a/dev-libs/elfutils/elfutils-0.176-r1.ebuild b/dev-libs/elfutils/elfutils-0.176-r1.ebuild new file mode 100644 index 000000000000..d697d93f5480 --- /dev/null +++ b/dev-libs/elfutils/elfutils-0.176-r1.ebuild @@ -0,0 +1,71 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit flag-o-matic multilib-minimal + +DESCRIPTION="Libraries/utilities to handle ELF objects (drop in replacement for libelf)" +HOMEPAGE="http://elfutils.org/" +SRC_URI="https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2" + +LICENSE="|| ( GPL-2+ LGPL-3+ ) utils? ( GPL-3+ )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="bzip2 lzma nls static-libs test +threads +utils" + +RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] + bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] ) + lzma? ( >=app-arch/xz-utils-5.0.5-r1[${MULTILIB_USEDEP}] ) + !dev-libs/libelf" +DEPEND="${RDEPEND} + nls? ( sys-devel/gettext ) + >=sys-devel/flex-2.5.4a + sys-devel/m4" + +PATCHES=( + "${FILESDIR}"/${PN}-0.118-PaX-support.patch + "${FILESDIR}"/${PN}-0.175-disable-biarch-test-PR24158.patch + "${FILESDIR}"/${PN}-0.173-reorder.patch +) + +src_prepare() { + default + + if ! use static-libs; then + sed -i -e '/^lib_LIBRARIES/s:=.*:=:' -e '/^%.os/s:%.o$::' lib{asm,dw,elf}/Makefile.in || die + fi + # https://sourceware.org/PR23914 + sed -i 's:-Werror::' */Makefile.in || die +} + +src_configure() { + use test && append-flags -g #407135 + multilib-minimal_src_configure +} + +multilib_src_configure() { + ECONF_SOURCE="${S}" econf \ + $(use_enable nls) \ + $(use_enable threads thread-safety) \ + --program-prefix="eu-" \ + --with-zlib \ + $(use_with bzip2 bzlib) \ + $(use_with lzma) +} + +multilib_src_test() { + env LD_LIBRARY_PATH="${BUILD_DIR}/libelf:${BUILD_DIR}/libebl:${BUILD_DIR}/libdw:${BUILD_DIR}/libasm" \ + LC_ALL="C" \ + emake check VERBOSE=1 +} + +multilib_src_install_all() { + einstalldocs + dodoc NOTES + # These build quick, and are needed for most tests, so don't + # disable their building when the USE flag is disabled. + if ! use utils; then + rm -rf "${ED}"/usr/bin || die + fi +} diff --git a/dev-libs/elfutils/files/elfutils-0.173-reorder.patch b/dev-libs/elfutils/files/elfutils-0.173-reorder.patch new file mode 100644 index 000000000000..fd3dede7c25a --- /dev/null +++ b/dev-libs/elfutils/files/elfutils-0.173-reorder.patch @@ -0,0 +1,37 @@ +https://bugs.gentoo.org/666954 +https://github.com/rpm-software-management/rpm/issues/423 +https://sourceware.org/ml/elfutils-devel/2019-q2/msg00077.html + +From: Mark Wielaard <mark at klomp dot org> +Subject: [PATCH] libelf: Mark shdr_flags dirty if offset or size changes during update. +Date: Mon, 13 May 2019 00:13:42 +0200 +Message-Id: <20190512221342.23383-1-mark@klomp.org> + +We forgot to mark the shdr_flags dirty when only the sh_size or +sh_offset changed during elf_update (). This meant that if there were +no other shdr changes we only wrote out the section data, but didn't +write out the shdr table to the file. + +Signed-off-by: Mark Wielaard <mark@klomp.org> +--- + libelf/elf32_updatenull.c | 5 +- + +--- a/libelf/elf32_updatenull.c ++++ b/libelf/elf32_updatenull.c +@@ -366,12 +366,15 @@ __elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum) + } + + /* See whether the section size is correct. */ ++ int size_changed = 0; + update_if_changed (shdr->sh_size, (GElf_Word) offset, +- changed); ++ size_changed); ++ changed |= size_changed; + + if (shdr->sh_type != SHT_NOBITS) + size += offset; + ++ scn->shdr_flags |= (offset_changed | size_changed); + scn->flags |= changed; + } + |