[PATCH] ld: depend on libctf

Nick Alcock nick.alcock@oracle.com
Tue Jan 26 19:55:43 GMT 2021


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.
---
 ChangeLog    | 5 +++++
 Makefile.def | 1 +
 Makefile.in  | 1 +
 3 files changed, 7 insertions(+)

If people agree, I'll put this into master and the 2.36 branch
directly, and also get it into GCC.  It can leave you with a broken
system linker... :(

diff --git a/ChangeLog b/ChangeLog
index b6853d4abed..134df097543 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2021-01-26  Nick Alcock  <nick.alcock@oracle.com>
+
+	* Makefile.def: Add install-libctf dependency to install-ld.
+	* Makefile.in: Regenerated.
+
 2021-01-12  Mike Frysinger  <vapier@gentoo.org>
 
 	* src-release.sh (do_proto_toplev): Rewrite indentation.
diff --git a/Makefile.def b/Makefile.def
index cc429aa8628..b45e580da5b 100644
--- 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
diff --git a/Makefile.in b/Makefile.in
index a817b7268a0..0a64fc10e5b 100644
--- 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.30.0.252.gc27e85e57d



More information about the Binutils mailing list