Hi!

Filip complained on IRC that libatomic_asneeded.a is installed as
stale symlink in --disable-static build.

The following patch makes sure to install the libatomic_asneeded.{so,a}
script and/or symlink only if the corresponding libatomic.{so,a} has been
installed.

Bootstrapped/regtested on x86_64-linux and i686-linux, tested also
with make install and verified libatomic_asneeded.{so,a} in both
gcc/ subdir and in installed usr/local/lib{,64}/.  Ok for trunk?

2026-01-30  Jakub Jelinek  <[email protected]>

        * Makefile.am (all-local, install-asneeded): Only create
        libatomic_asneeded.so script if libatomic.so exist, only
        create libatomic_asneeded.a symlink if libatomic.a exist.
        * Makefile.in: Regenerate.

--- libatomic/Makefile.am.jj    2026-01-19 09:46:11.328878897 +0100
+++ libatomic/Makefile.am       2026-01-29 21:14:47.687107674 +0100
@@ -185,12 +185,12 @@ all-local: libatomic.la
        $(LIBTOOL) --mode=install $(INSTALL_DATA) libatomic.la 
$(gcc_objdir)$(MULTISUBDIR)/
 if LIBAT_BUILD_ASNEEDED_SOLINK
        cd $(gcc_objdir)$(MULTISUBDIR) || exit 1; \
-       (echo "/* GNU ld script"; \
+       if test -f libatomic.so; then (echo "/* GNU ld script"; \
         echo "   Add DT_NEEDED entry for -latomic only if needed.  */"; \
         echo "INPUT ( AS_NEEDED ( -latomic ) )" \
-       ) > libatomic_asneeded.so; \
-       rm -f libatomic_asneeded.a; \
-       $(LN_S) libatomic.a libatomic_asneeded.a
+       ) > libatomic_asneeded.so; fi; \
+       if test -f libatomic.a; then rm -f libatomic_asneeded.a; \
+       $(LN_S) libatomic.a libatomic_asneeded.a; fi
 endif
        rm $(gcc_objdir)$(MULTISUBDIR)/libatomic.la
 
@@ -200,12 +200,12 @@ install-data-am: install-asneeded
 install-asneeded: install-toolexeclibLTLIBRARIES
        $(MKDIR_P) "$(DESTDIR)$(toolexeclibdir)" || exit 1; \
        cd "$(DESTDIR)$(toolexeclibdir)" || exit 1; \
-       (echo "/* GNU ld script"; \
+       if test -f libatomic.so; then (echo "/* GNU ld script"; \
         echo "   Add DT_NEEDED entry for -latomic only if needed.  */"; \
         echo "INPUT ( AS_NEEDED ( -latomic ) )" \
-       ) > libatomic_asneeded.so; \
-       rm -f libatomic_asneeded.a; \
-       $(LN_S) libatomic.a libatomic_asneeded.a
+       ) > libatomic_asneeded.so; fi; \
+       if test -f libatomic.a; then rm -f libatomic_asneeded.a; \
+       $(LN_S) libatomic.a libatomic_asneeded.a; fi
 endif
 
 # target overrides
--- libatomic/Makefile.in.jj    2026-01-19 09:46:11.328878897 +0100
+++ libatomic/Makefile.in       2026-01-29 21:15:08.145605754 +0100
@@ -932,12 +932,12 @@ all-multi: $(libatomic_la_LIBADD)
 all-local: libatomic.la
        $(LIBTOOL) --mode=install $(INSTALL_DATA) libatomic.la 
$(gcc_objdir)$(MULTISUBDIR)/
 @LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@     cd $(gcc_objdir)$(MULTISUBDIR) || exit 
1; \
-@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@     (echo "/* GNU ld script"; \
+@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@     if test -f libatomic.so; then (echo "/* 
GNU ld script"; \
 @LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@      echo "   Add DT_NEEDED entry for 
-latomic only if needed.  */"; \
 @LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@      echo "INPUT ( AS_NEEDED ( -latomic ) 
)" \
-@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@     ) > libatomic_asneeded.so; \
-@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@     rm -f libatomic_asneeded.a; \
-@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@     $(LN_S) libatomic.a libatomic_asneeded.a
+@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@     ) > libatomic_asneeded.so; fi; \
+@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@     if test -f libatomic.a; then rm -f 
libatomic_asneeded.a; \
+@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@     $(LN_S) libatomic.a 
libatomic_asneeded.a; fi
        rm $(gcc_objdir)$(MULTISUBDIR)/libatomic.la
 
 @LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@install-data-am: install-asneeded
@@ -945,12 +945,12 @@ all-local: libatomic.la
 @LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@install-asneeded: 
install-toolexeclibLTLIBRARIES
 @LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@     $(MKDIR_P) 
"$(DESTDIR)$(toolexeclibdir)" || exit 1; \
 @LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@     cd "$(DESTDIR)$(toolexeclibdir)" || 
exit 1; \
-@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@     (echo "/* GNU ld script"; \
+@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@     if test -f libatomic.so; then (echo "/* 
GNU ld script"; \
 @LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@      echo "   Add DT_NEEDED entry for 
-latomic only if needed.  */"; \
 @LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@      echo "INPUT ( AS_NEEDED ( -latomic ) 
)" \
-@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@     ) > libatomic_asneeded.so; \
-@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@     rm -f libatomic_asneeded.a; \
-@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@     $(LN_S) libatomic.a libatomic_asneeded.a
+@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@     ) > libatomic_asneeded.so; fi; \
+@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@     if test -f libatomic.a; then rm -f 
libatomic_asneeded.a; \
+@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@     $(LN_S) libatomic.a 
libatomic_asneeded.a; fi
 
 # target overrides
 -include $(tmake_file)

        Jakub

Reply via email to