PR 33629 ldscripts symlink in .libs/ created too late
Jan Beulich
jbeulich@suse.com
Mon Feb 2 07:11:07 GMT 2026
On 31.01.2026 01:46, Alan Modra wrote:
> --- 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 .
Oh, interesting: You can add a rule here and automake will then be smart enough
to not emit the default rule. Good to know.
One small issue though: I think the symlink creation wants to move ahead of the
linking, or else if you interrupt the build at the "right" point (or, pretty
unlikely, the symlink creation actually fails), re-running make without having
made any other changes would result in a no-op, i.e. the missing symlink not
being created.
I also don't think the testing for the existence of ld-new really should be here.
It may have made a little bit of sense in the check-DEJAGNU rule, yet even there
it was already questionable. (Additionally it was lacking $(EXEEXT) afaict.)
If you agree, I can certainly make a follow-on patch.
Jan
More information about the Binutils
mailing list