summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2021-04-20 09:07:43 +0100
committerSergei Trofimovich <slyfox@gentoo.org>2021-04-20 09:08:44 +0100
commit3f6242408c1dc87441a96fcac14302ae14e02bef (patch)
tree8d96c175c25b5b963065d25f892f27c12af1a2ac /sys-libs/binutils-libs/files
parentsys-devel/binutils-hppa64: fix ctf/bfd relinking order (diff)
downloadgentoo-3f6242408c1dc87441a96fcac14302ae14e02bef.tar.gz
gentoo-3f6242408c1dc87441a96fcac14302ae14e02bef.tar.bz2
gentoo-3f6242408c1dc87441a96fcac14302ae14e02bef.zip
sys-libs/binutils-libs: fix ctf/bfd relinking order
Before the change libctf could install before libbfd into target location. That triggers libtool to link against system's libbfd. The change pulls in makefile depends to make sure libbfd gets installed first for libtool to always find a local copy. Reported-by: Andreas K. Hüttel Reported-by: Magnus Granberg Bug: https://bugs.gentoo.org/783777 Package-Manager: Portage-3.0.18, Repoman-3.0.3 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Diffstat (limited to 'sys-libs/binutils-libs/files')
-rw-r--r--sys-libs/binutils-libs/files/binutils-libs-2.36.1-bfd-ctf.patch68
-rw-r--r--sys-libs/binutils-libs/files/binutils-libs-2.36.1-ld-ctf.patch48
2 files changed, 116 insertions, 0 deletions
diff --git a/sys-libs/binutils-libs/files/binutils-libs-2.36.1-bfd-ctf.patch b/sys-libs/binutils-libs/files/binutils-libs-2.36.1-bfd-ctf.patch
new file mode 100644
index 000000000000..d7daf683669d
--- /dev/null
+++ b/sys-libs/binutils-libs/files/binutils-libs-2.36.1-bfd-ctf.patch
@@ -0,0 +1,68 @@
+https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=755ba58ebef02e1be9fc6770d00243ba6ed0223c
+https://bugs.gentoo.org/783777
+
+From 755ba58ebef02e1be9fc6770d00243ba6ed0223c Mon Sep 17 00:00:00 2001
+From: Nick Alcock <nick.alcock@oracle.com>
+Date: Thu, 18 Mar 2021 12:37:52 +0000
+Subject: [PATCH] Add install dependencies for ld -> bfd and libctf -> bfd
+
+This stops problems parallel-installing if a relink of libctf is needed.
+
+Also adds corresponding install-strip dependencies.
+
+ChangeLog
+2021-03-18 Nick Alcock <nick.alcock@oracle.com>
+
+ PR libctf/27482
+ * Makefile.def: Add install-bfd dependencies for install-libctf and
+ install-ld, and install-strip-bfd dependencies for
+ install-strip-libctf and install-strip-ld; move the install-ld
+ dependency on install-libctf to join it.
+ * Makefile.in: Regenerated.
+---
+--- a/Makefile.def
++++ b/Makefile.def
+@@ -448,7 +448,6 @@ dependencies = { module=all-binutils; on=all-intl; };
+ dependencies = { module=all-binutils; on=all-gas; };
+ dependencies = { module=all-binutils; on=all-libctf; };
+ dependencies = { module=all-ld; on=all-libctf; };
+-dependencies = { module=install-ld; on=install-libctf; };
+
+ // We put install-opcodes before install-binutils because the installed
+ // binutils might be on PATH, and they might need the shared opcodes
+@@ -456,6 +455,14 @@ dependencies = { module=install-ld; on=install-libctf; };
+ dependencies = { module=install-binutils; on=install-opcodes; };
+ dependencies = { module=install-strip-binutils; on=install-strip-opcodes; };
+
++// Likewise for ld, libctf, and bfd.
++dependencies = { module=install-libctf; on=install-bfd; };
++dependencies = { module=install-ld; on=install-bfd; };
++dependencies = { module=install-ld; on=install-libctf; };
++dependencies = { module=install-strip-libctf; on=install-strip-bfd; };
++dependencies = { module=install-strip-ld; on=install-strip-bfd; };
++dependencies = { module=install-strip-ld; on=install-strip-libctf; };
++
+ // libopcodes depends on libbfd
+ dependencies = { module=install-opcodes; on=install-bfd; };
+ dependencies = { module=install-strip-opcodes; on=install-strip-bfd; };
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -52170,9 +52170,14 @@ all-stage3-ld: maybe-all-stage3-libctf
+ all-stage4-ld: maybe-all-stage4-libctf
+ all-stageprofile-ld: maybe-all-stageprofile-libctf
+ all-stagefeedback-ld: maybe-all-stagefeedback-libctf
+-install-ld: maybe-install-libctf
+ install-binutils: maybe-install-opcodes
+ install-strip-binutils: maybe-install-strip-opcodes
++install-libctf: maybe-install-bfd
++install-ld: maybe-install-bfd
++install-ld: maybe-install-libctf
++install-strip-libctf: maybe-install-strip-bfd
++install-strip-ld: maybe-install-strip-bfd
++install-strip-ld: maybe-install-strip-libctf
+ install-opcodes: maybe-install-bfd
+ install-strip-opcodes: maybe-install-strip-bfd
+ configure-gas: maybe-configure-intl
+--
+2.27.0
+
diff --git a/sys-libs/binutils-libs/files/binutils-libs-2.36.1-ld-ctf.patch b/sys-libs/binutils-libs/files/binutils-libs-2.36.1-ld-ctf.patch
new file mode 100644
index 000000000000..012df3aed812
--- /dev/null
+++ b/sys-libs/binutils-libs/files/binutils-libs-2.36.1-ld-ctf.patch
@@ -0,0 +1,48 @@
+https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=f04ce15e831b691d7610dba284e266919e757b10
+https://bugs.gentoo.org/783777
+
+From f04ce15e831b691d7610dba284e266919e757b10 Mon Sep 17 00:00:00 2001
+From: Nick Alcock <nick.alcock@oracle.com>
+Date: Tue, 26 Jan 2021 16:05:17 +0000
+Subject: [PATCH] ld: depend on libctf
+
+Since ld may depend on libctf (if present), and libctf may be relinked
+by the installation process, libctf must be installed before ld is,
+or the relink may fail if it calls on symbols or symbol versions that do
+not exist in any libctf already present on the system. (If none is
+present, the copy in the build tree will be automatically used, but
+if one *is* present, it may take precedence and break things.)
+
+(This is a maybe- dependency, so it will work even if libctf is
+disabled.)
+
+ChangeLog
+2021-01-26 Nick Alcock <nick.alcock@oracle.com>
+
+ PR 27250
+ * Makefile.def: Add install-libctf dependency to install-ld.
+ * Makefile.in: Regenerated.
+---
+--- a/Makefile.def
++++ b/Makefile.def
+@@ -448,6 +448,7 @@ dependencies = { module=all-binutils; on=all-intl; };
+ dependencies = { module=all-binutils; on=all-gas; };
+ dependencies = { module=all-binutils; on=all-libctf; };
+ dependencies = { module=all-ld; on=all-libctf; };
++dependencies = { module=install-ld; on=install-libctf; };
+
+ // We put install-opcodes before install-binutils because the installed
+ // binutils might be on PATH, and they might need the shared opcodes
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -52170,6 +52170,7 @@ all-stage3-ld: maybe-all-stage3-libctf
+ all-stage4-ld: maybe-all-stage4-libctf
+ all-stageprofile-ld: maybe-all-stageprofile-libctf
+ all-stagefeedback-ld: maybe-all-stagefeedback-libctf
++install-ld: maybe-install-libctf
+ install-binutils: maybe-install-opcodes
+ install-strip-binutils: maybe-install-strip-opcodes
+ install-opcodes: maybe-install-bfd
+--
+2.27.0
+