PR 33629 ldscripts symlink in .libs/ created too late

Alan Modra amodra@gmail.com
Sat Jan 31 00:46:50 GMT 2026


	* Makefile.am (check-DEJAGNU): Move creation of symlink..
	(ld-new$(EXEEXT)): ..to here.  New rule.
	* Makefile.in: Regenerate.

diff --git a/ld/Makefile.am b/ld/Makefile.am
index c219662d2e3..52e03ed8ac7 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -658,13 +658,18 @@ ld_new_LDADD = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBCTF) \
 # Dependency tracking for the generated emulation files.
 EXTRA_ld_new_SOURCES += $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES)
 
+# The standard rule plus set up a symlink when --enable-shared for "make chcek"
+ld-new$(EXEEXT): $(ld_new_OBJECTS) $(ld_new_DEPENDENCIES) $(EXTRA_ld_new_DEPENDENCIES)
+	@rm -f ld-new$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(ld_new_OBJECTS) $(ld_new_LDADD) $(LIBS)
+	$(AM_V_at)cd .libs; test ! -e ld-new || test -e ldscripts || $(LN_S) ../ldscripts .
+
 # This is the real libbfd.a and libctf.a created by libtool.
 TESTBFDLIB = @TESTBFDLIB@
 TESTCTFLIB = @TESTCTFLIB@
 TESTSFRAMELIB = @TESTSFRAMELIB@
 
 check-DEJAGNU: site.exp
-	(cd .libs; test -e ldscripts || test ! -e ld-new || $(LN_S) ../ldscripts .)
 	srcroot=`cd $(srcdir) && pwd`; export srcroot; \
 	r=`pwd`; export r; \
 	LC_ALL=C; export LC_ALL; \
diff --git a/ld/Makefile.in b/ld/Makefile.in
index f1ba6af5269..331a56d652c 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -1257,10 +1257,6 @@ deffilep.h: deffilep.c
 	@if test ! -f $@; then rm -f deffilep.c; else :; fi
 	@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) deffilep.c; else :; fi
 
-ld-new$(EXEEXT): $(ld_new_OBJECTS) $(ld_new_DEPENDENCIES) $(EXTRA_ld_new_DEPENDENCIES) 
-	@rm -f ld-new$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ld_new_OBJECTS) $(ld_new_LDADD) $(LIBS)
-
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
 
@@ -2371,8 +2367,13 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS)
 
 @AMDEP_TRUE@-include $(patsubst %.c,./$(DEPDIR)/%.Pc,$(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES))
 
+# The standard rule plus set up a symlink when --enable-shared for "make chcek"
+ld-new$(EXEEXT): $(ld_new_OBJECTS) $(ld_new_DEPENDENCIES) $(EXTRA_ld_new_DEPENDENCIES)
+	@rm -f ld-new$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(ld_new_OBJECTS) $(ld_new_LDADD) $(LIBS)
+	$(AM_V_at)cd .libs; test ! -e ld-new || test -e ldscripts || $(LN_S) ../ldscripts .
+
 check-DEJAGNU: site.exp
-	(cd .libs; test -e ldscripts || test ! -e ld-new || $(LN_S) ../ldscripts .)
 	srcroot=`cd $(srcdir) && pwd`; export srcroot; \
 	r=`pwd`; export r; \
 	LC_ALL=C; export LC_ALL; \

-- 
Alan Modra


More information about the Binutils mailing list