commit:     b5503166652696271881b504aea5cbd6fd3369da
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 18 19:29:31 2026 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Jan 18 19:29:31 2026 +0000
URL:        https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=b5503166

16.0.0: add libatomic symlink patch

Bug: https://gcc.gnu.org/PR123650
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../gentoo/88_all_PR123650-libatomic-symlink.patch | 226 +++++++++++++++++++++
 16.0.0/gentoo/README.history                       |   1 +
 2 files changed, 227 insertions(+)

diff --git a/16.0.0/gentoo/88_all_PR123650-libatomic-symlink.patch 
b/16.0.0/gentoo/88_all_PR123650-libatomic-symlink.patch
new file mode 100644
index 0000000..79ba55f
--- /dev/null
+++ b/16.0.0/gentoo/88_all_PR123650-libatomic-symlink.patch
@@ -0,0 +1,226 @@
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123650#c9
+
+2026-01-18  Jakub Jelinek  <[email protected]>
+
+       PR libgcc/123650
+       * Makefile.am (toolexeclib_DATA): Remove.
+       (all-local): For LIBAT_BUILD_ASNEEDED_SOLINK instead of installing
+       libatomic_asneeded.{so,a} from top_srcdir cd into the destination
+       directory, use echo to write libatomic_asneeded.so and $(LN_S) to
+       symlink libatomic_asneeded.a to libatomic.a.
+       (install-data-am): For LIBAT_BUILD_ASNEEDED_SOLINK depend on
+       install-asneeded.
+       (install-asneeded): New goal.
+       * libatomic_asneeded.so: Remove.
+       * libatomic_asneeded.a: Remove.
+       * Makefile.in: Regenerate.
+
+--- libatomic/Makefile.am.jj   2026-01-13 23:02:05.061762633 +0100
++++ libatomic/Makefile.am      2026-01-18 19:36:57.511524053 +0100
+@@ -40,9 +40,6 @@ AM_CCASFLAGS = $(XCFLAGS)
+ AM_LDFLAGS = $(XLDFLAGS) $(SECTION_LDFLAGS) $(OPT_LDFLAGS)
+ 
+ toolexeclib_LTLIBRARIES = libatomic.la
+-if LIBAT_BUILD_ASNEEDED_SOLINK
+-toolexeclib_DATA = libatomic_asneeded.so libatomic_asneeded.a
+-endif
+ noinst_LTLIBRARIES = libatomic_convenience.la
+ 
+ if LIBAT_BUILD_VERSIONED_SHLIB
+@@ -187,11 +184,30 @@ gcc_objdir = `pwd`/$(MULTIBUILDTOP)../..
+ all-local: libatomic.la
+       $(LIBTOOL) --mode=install $(INSTALL_DATA) libatomic.la 
$(gcc_objdir)$(MULTISUBDIR)/
+ if LIBAT_BUILD_ASNEEDED_SOLINK
+-      $(INSTALL_DATA) $(top_srcdir)/libatomic_asneeded.so 
$(gcc_objdir)$(MULTISUBDIR)/
+-      $(INSTALL_DATA) $(top_srcdir)/libatomic_asneeded.a 
$(gcc_objdir)$(MULTISUBDIR)/
++      cd $(gcc_objdir)$(MULTISUBDIR) || exit 1; \
++      (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
+ endif
+       rm $(gcc_objdir)$(MULTISUBDIR)/libatomic.la
+ 
++if LIBAT_BUILD_ASNEEDED_SOLINK
++install-data-am: install-asneeded
++
++install-asneeded: install-toolexeclibLTLIBRARIES
++      $(MKDIR_P) "$(DESTDIR)$(toolexeclibdir)" || exit 1; \
++      cd "$(DESTDIR)$(toolexeclibdir)" || exit 1; \
++      (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
++endif
++
+ # target overrides
+ -include $(tmake_file)
+ 
+--- libatomic/libatomic_asneeded.so.jj 2026-01-13 23:02:05.063762598 +0100
++++ libatomic/libatomic_asneeded.so    2026-01-18 19:28:08.822507919 +0100
+@@ -1,3 +0,0 @@
+-/* GNU ld script
+-   Add DT_NEEDED entry for -latomic only if needed.  */
+-INPUT ( AS_NEEDED ( -latomic ) )
+--- libatomic/libatomic_asneeded.a.jj  2026-01-13 23:02:05.063762598 +0100
++++ libatomic/libatomic_asneeded.a     2026-01-18 19:28:10.553478504 +0100
+@@ -1,3 +0,0 @@
+-/* GNU ld script
+-   Just link in libatomic.a.  */
+-INPUT ( libatomic.a )
+--- libatomic/Makefile.in.jj   2026-01-13 23:02:05.061762633 +0100
++++ libatomic/Makefile.in      2026-01-18 19:37:06.180098342 +0100
+@@ -14,7 +14,6 @@
+ 
+ @SET_MAKE@
+ 
+-
+ VPATH = @srcdir@
+ am__is_gnu_make = { \
+   if test -z '$(MAKELEVEL)'; then \
+@@ -159,8 +158,7 @@ am__uninstall_files_from_dir = { \
+     || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+          $(am__cd) "$$dir" && rm -f $$files; }; \
+   }
+-am__installdirs = "$(DESTDIR)$(toolexeclibdir)" \
+-      "$(DESTDIR)$(toolexeclibdir)"
++am__installdirs = "$(DESTDIR)$(toolexeclibdir)"
+ LTLIBRARIES = $(noinst_LTLIBRARIES) $(toolexeclib_LTLIBRARIES)
+ @ARCH_AARCH64_LINUX_TRUE@@PARTIAL_VXWORKS_FALSE@am__objects_1 =  \
+ @ARCH_AARCH64_LINUX_TRUE@@PARTIAL_VXWORKS_FALSE@      atomic_16.lo
+@@ -246,7 +244,6 @@ am__can_run_installinfo = \
+     n|no|NO) false;; \
+     *) (install-info --version) >/dev/null 2>&1;; \
+   esac
+-DATA = $(toolexeclib_DATA)
+ RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive       \
+   distclean-recursive maintainer-clean-recursive
+ am__recursive_targets = \
+@@ -425,7 +422,6 @@ AM_CFLAGS = $(XCFLAGS)
+ AM_CCASFLAGS = $(XCFLAGS)
+ AM_LDFLAGS = $(XLDFLAGS) $(SECTION_LDFLAGS) $(OPT_LDFLAGS)
+ toolexeclib_LTLIBRARIES = libatomic.la
+-@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@toolexeclib_DATA = libatomic_asneeded.so 
libatomic_asneeded.a
+ noinst_LTLIBRARIES = libatomic_convenience.la
+ @LIBAT_BUILD_VERSIONED_SHLIB_FALSE@libatomic_version_script = 
+ 
@LIBAT_BUILD_VERSIONED_SHLIB_GNU_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@libatomic_version_script
 = -Wl,--version-script,$(top_srcdir)/libatomic.map
+@@ -671,27 +667,6 @@ clean-libtool:
+ 
+ distclean-libtool:
+       -rm -f libtool config.lt
+-install-toolexeclibDATA: $(toolexeclib_DATA)
+-      @$(NORMAL_INSTALL)
+-      @list='$(toolexeclib_DATA)'; test -n "$(toolexeclibdir)" || list=; \
+-      if test -n "$$list"; then \
+-        echo " $(MKDIR_P) '$(DESTDIR)$(toolexeclibdir)'"; \
+-        $(MKDIR_P) "$(DESTDIR)$(toolexeclibdir)" || exit 1; \
+-      fi; \
+-      for p in $$list; do \
+-        if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+-        echo "$$d$$p"; \
+-      done | $(am__base_list) | \
+-      while read files; do \
+-        echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(toolexeclibdir)'"; \
+-        $(INSTALL_DATA) $$files "$(DESTDIR)$(toolexeclibdir)" || exit $$?; \
+-      done
+-
+-uninstall-toolexeclibDATA:
+-      @$(NORMAL_UNINSTALL)
+-      @list='$(toolexeclib_DATA)'; test -n "$(toolexeclibdir)" || list=; \
+-      files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+-      dir='$(DESTDIR)$(toolexeclibdir)'; $(am__uninstall_files_from_dir)
+ 
+ # This directory's subdirectories are mostly independent; you can cd
+ # into them and run 'make' without going through this Makefile.
+@@ -800,10 +775,10 @@ distclean-tags:
+       -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
+ check-am: all-am
+ check: check-recursive
+-all-am: Makefile $(LTLIBRARIES) $(DATA) auto-config.h all-local
++all-am: Makefile $(LTLIBRARIES) auto-config.h all-local
+ installdirs: installdirs-recursive
+ installdirs-am:
+-      for dir in "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(toolexeclibdir)"; 
do \
++      for dir in "$(DESTDIR)$(toolexeclibdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+ install: install-recursive
+@@ -861,14 +836,13 @@ info: info-recursive
+ 
+ info-am:
+ 
+-install-data-am:
++@LIBAT_BUILD_ASNEEDED_SOLINK_FALSE@install-data-am:
+ 
+ install-dvi: install-dvi-recursive
+ 
+ install-dvi-am:
+ 
+-install-exec-am: install-exec-local install-toolexeclibDATA \
+-      install-toolexeclibLTLIBRARIES
++install-exec-am: install-exec-local install-toolexeclibLTLIBRARIES
+ 
+ install-html: install-html-recursive
+ 
+@@ -911,8 +885,7 @@ ps: ps-recursive
+ 
+ ps-am:
+ 
+-uninstall-am: uninstall-toolexeclibDATA \
+-      uninstall-toolexeclibLTLIBRARIES
++uninstall-am: uninstall-toolexeclibLTLIBRARIES
+ 
+ .MAKE: $(am__recursive_targets) all install-am install-strip
+ 
+@@ -927,14 +900,12 @@ uninstall-am: uninstall-toolexeclibDATA
+       install-exec install-exec-am install-exec-local install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+-      install-strip install-toolexeclibDATA \
+-      install-toolexeclibLTLIBRARIES installcheck installcheck-am \
+-      installdirs installdirs-am maintainer-clean \
++      install-strip install-toolexeclibLTLIBRARIES installcheck \
++      installcheck-am installdirs installdirs-am maintainer-clean \
+       maintainer-clean-generic maintainer-clean-local mostlyclean \
+       mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+       mostlyclean-local pdf pdf-am ps ps-am tags tags-am uninstall \
+-      uninstall-am uninstall-toolexeclibDATA \
+-      uninstall-toolexeclibLTLIBRARIES
++      uninstall-am uninstall-toolexeclibLTLIBRARIES
+ 
+ .PRECIOUS: Makefile
+ 
+@@ -960,10 +931,27 @@ vpath % $(strip $(search_path))
+ all-multi: $(libatomic_la_LIBADD)
+ all-local: libatomic.la
+       $(LIBTOOL) --mode=install $(INSTALL_DATA) libatomic.la 
$(gcc_objdir)$(MULTISUBDIR)/
+-@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@    $(INSTALL_DATA) 
$(top_srcdir)/libatomic_asneeded.so $(gcc_objdir)$(MULTISUBDIR)/
+-@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@    $(INSTALL_DATA) 
$(top_srcdir)/libatomic_asneeded.a $(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@     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
+       rm $(gcc_objdir)$(MULTISUBDIR)/libatomic.la
+ 
++@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@install-data-am: install-asneeded
++
++@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@     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
++
+ # target overrides
+ -include $(tmake_file)
+ 

diff --git a/16.0.0/gentoo/README.history b/16.0.0/gentoo/README.history
index fa5ee2b..4e6408c 100644
--- a/16.0.0/gentoo/README.history
+++ b/16.0.0/gentoo/README.history
@@ -1,6 +1,7 @@
 32     ????
 
        + 87_all_PR123619-ipa-cp.patch
+       + 88_all_PR123650-libatomic-symlink.patch
 
 31     13 January 2026
 

Reply via email to