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