commit:     20c8d59ab2c7910384b505494a6f9299586bb636
Author:     Jakov Smolic <jakov.smolic <AT> sartura <DOT> hr>
AuthorDate: Tue Mar 30 10:11:41 2021 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Tue Mar 30 10:11:41 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=20c8d59a

sys-devel/elftoolchain: Build and install all avalable tools

Closes: https://github.com/gentoo/gentoo/pull/20138
Closes: https://bugs.gentoo.org/778452
Signed-off-by: Jakov Smolic <jakov.smolic <AT> sartura.hr>
Signed-off-by: David Seifert <soap <AT> gentoo.org>

 ...n-0.7.1.ebuild => elftoolchain-0.7.1-r1.ebuild} | 26 +++++++++++------
 .../files/elftoolchain-0.7.1-fno-common.patch      | 34 ++++++++++++++++++++++
 2 files changed, 51 insertions(+), 9 deletions(-)

diff --git a/sys-devel/elftoolchain/elftoolchain-0.7.1.ebuild 
b/sys-devel/elftoolchain/elftoolchain-0.7.1-r1.ebuild
similarity index 71%
rename from sys-devel/elftoolchain/elftoolchain-0.7.1.ebuild
rename to sys-devel/elftoolchain/elftoolchain-0.7.1-r1.ebuild
index 8b4360d6209..f5ede11619d 100644
--- a/sys-devel/elftoolchain/elftoolchain-0.7.1.ebuild
+++ b/sys-devel/elftoolchain/elftoolchain-0.7.1-r1.ebuild
@@ -14,6 +14,7 @@ SLOT="0"
 KEYWORDS="~amd64 ~x86"
 
 RDEPEND="
+       app-arch/libarchive:=
        !dev-libs/elfutils
        !dev-libs/libelf"
 DEPEND="${RDEPEND}"
@@ -23,8 +24,14 @@ BDEPEND="
        >=sys-devel/bmake-20210206
        virtual/yacc"
 
+PATCHES=( "${FILESDIR}"/${P}-fno-common.patch )
+
 src_prepare() {
        default
+
+       # needs unpackaged TET tools
+       rm -r test || die
+
        sed -i -e "s@cc@$(tc-getCC)@" common/native-elf-format || die
        sed -i -e "s@readelf@$(tc-getREADELF)@" common/native-elf-format || die
 }
@@ -40,16 +47,17 @@ _bmake() {
 
 src_compile() {
        export MAKESYSPATH="${BROOT}"/usr/share/mk/bmake
-       _bmake -C common
-       _bmake -C libelf
+       _bmake
 }
 
 src_install() {
-       doheader common/elfdefinitions.h
-       doheader libelf/{gelf,libelf}.h
-
-       dolib.so libelf/libelf.so.1
-       dosym libelf.so.1 /usr/$(get_libdir)/libelf.so
-
-       dodoc README
+       _bmake \
+               DESTDIR="${D}" \
+               BINDIR="${EPREFIX}"/usr/${CHOST}-elftoolchain/usr/bin \
+               LIBDIR="${EPREFIX}"/usr/$(get_libdir) \
+               DOCDIR="${EPREFIX}"/usr/share/doc/${PF} \
+               install
+
+       # remove static libraries
+       find "${ED}" -name '*.a' -delete || die
 }

diff --git a/sys-devel/elftoolchain/files/elftoolchain-0.7.1-fno-common.patch 
b/sys-devel/elftoolchain/files/elftoolchain-0.7.1-fno-common.patch
new file mode 100644
index 00000000000..d03bff2d4af
--- /dev/null
+++ b/sys-devel/elftoolchain/files/elftoolchain-0.7.1-fno-common.patch
@@ -0,0 +1,34 @@
+Author: Dimitry Andric <[email protected]>
+Taken from: https://sourceforge.net/p/elftoolchain/code/3879/
+--- a/ld/amd64.h
++++ b/ld/amd64.h
+@@ -26,6 +26,6 @@
+  * $Id$
+  */
+ 
+-char *amd64_script;
++extern char *amd64_script;
+ 
+ void  amd64_register(struct ld *);
+--- a/ld/i386.h
++++ b/ld/i386.h
+@@ -26,6 +26,6 @@
+  * $Id$
+  */
+ 
+-char *i386_script;
++extern char *i386_script;
+ 
+ void  i386_register(struct ld *);
+--- a/ld/mips.h
++++ b/ld/mips.h
+@@ -23,7 +23,7 @@
+  * SUCH DAMAGE.
+  */
+ 
+-char *littlemips_script;
+-char *bigmips_script;
++extern char *littlemips_script;
++extern char *bigmips_script;
+ 
+ void  mips_register(struct ld *);

Reply via email to