public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/gcc-patches:master commit in: 15.0.0/gentoo/
Date: Mon, 06 Jan 2025 10:50:12 +0000 (UTC)	[thread overview]
Message-ID: <1736160606.f6d3d0becd191f48aca221595377e39e53708adf.sam@gentoo> (raw)

commit:     f6d3d0becd191f48aca221595377e39e53708adf
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Jan  6 10:46:20 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Jan  6 10:50:06 2025 +0000
URL:        https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=f6d3d0be

15.0.0: bring back atomic patch

I PEBKAC'd and used the wrong version of the patch before.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...358-Enable-automatic-linking-of-libatomic.patch | 536 +++++++++++++++++++++
 15.0.0/gentoo/README.history                       |   1 +
 2 files changed, 537 insertions(+)

diff --git a/15.0.0/gentoo/80_all_PR81358-Enable-automatic-linking-of-libatomic.patch b/15.0.0/gentoo/80_all_PR81358-Enable-automatic-linking-of-libatomic.patch
new file mode 100644
index 0000000..d3424e7
--- /dev/null
+++ b/15.0.0/gentoo/80_all_PR81358-Enable-automatic-linking-of-libatomic.patch
@@ -0,0 +1,536 @@
+https://inbox.sourceware.org/gcc-patches/IA1PR12MB90310A559B28E87BF456C942CE072@IA1PR12MB9031.namprd12.prod.outlook.com/#t
+
+PR81358: Enable automatic linking of libatomic.
+
+ChangeLog:
+	PR driver/81358
+	* Makefile.def: Add dependencies so libatomic is built before target
+	libraries are configured.
+	* Makefile.tpl: Export TARGET_CONFIGDIRS.
+	* configure.ac: Add libatomic to bootstrap_target_libs.
+	* Makefile.in: Regenerate.
+	* configure: Regenerate.
+
+gcc/ChangeLog:
+	PR driver/81358
+	* common.opt: New option -flink-libatomic.
+	* gcc.cc (LINK_LIBATOMIC_SPEC): New macro.
+	* config/gnu-user.h (GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC): Use
+	LINK_LIBATOMIC_SPEC.
+	* doc/invoke.texi: Document -flink-libatomic.
+	* configure.ac: Define TARGET_PROVIDES_LIBATOMIC.
+	* configure: Regenerate.
+	* config.in: Regenerate.
+
+libatomic/ChangeLog:
+	PR driver/81358
+	* Makefile.am: Pass -fno-link-libatomic.
+	New rule all.
+	* configure.ac: Assert that CFLAGS is set and pass -fno-link-libatomic. 
+	* Makefile.in: Regenerate.
+	* configure: Regenerate.
+
+Signed-off-by: Prathamesh Kulkarni <prathameshk@nvidia.com>
+Co-authored-by: Matthew Malcolmson <mmalcolmson@nvidia.com>
+
+diff --git a/Makefile.def b/Makefile.def
+index 19954e7d731..90899fa28cf 100644
+--- a/Makefile.def
++++ b/Makefile.def
+@@ -656,6 +656,26 @@ lang_env_dependencies = { module=libgcc; no_gcc=true; no_c=true; };
+ // a dependency on libgcc for native targets to configure.
+ lang_env_dependencies = { module=libiberty; no_c=true; };
+ 
++dependencies = { module=configure-target-libbacktrace; on=all-target-libatomic; };
++dependencies = { module=configure-target-libgloss; on=all-target-libatomic; };
++dependencies = { module=configure-target-newlib; on=all-target-libatomic; };
++dependencies = { module=configure-target-libgomp; on=all-target-libatomic; };
++dependencies = { module=configure-target-libitm; on=all-target-libatomic; };
++dependencies = { module=configure-target-libstdc++v3; on=all-target-libatomic; };
++dependencies = { module=configure-target-libsanitizer; on=all-target-libatomic; };
++dependencies = { module=configure-target-libvtv; on=all-target-libatomic; };
++dependencies = { module=configure-target-libssp; on=all-target-libatomic; };
++dependencies = { module=configure-target-libquadmath; on=all-target-libatomic; };
++dependencies = { module=configure-target-libgfortran; on=all-target-libatomic; };
++dependencies = { module=configure-target-libffi; on=all-target-libatomic; };
++dependencies = { module=configure-target-libobjc; on=all-target-libatomic; };
++dependencies = { module=configure-target-libada; on=all-target-libatomic; };
++dependencies = { module=configure-target-libgm2; on=all-target-libatomic; };
++dependencies = { module=configure-target-libgo; on=all-target-libatomic; };
++dependencies = { module=configure-target-libgrust; on=all-target-libatomic; };
++dependencies = { module=configure-target-libphobos; on=all-target-libatomic; };
++dependencies = { module=configure-target-zlib; on=all-target-libatomic; };
++
+ dependencies = { module=configure-target-fastjar; on=configure-target-zlib; };
+ dependencies = { module=all-target-fastjar; on=all-target-zlib; };
+ dependencies = { module=configure-target-libgo; on=configure-target-libffi; };
+diff --git a/Makefile.in b/Makefile.in
+index 966d6045496..4a85f11d7e6 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -242,6 +242,7 @@ HOST_EXPORTS = \
+ 	GMPINC="$(HOST_GMPINC)"; export GMPINC; \
+ 	ISLLIBS="$(HOST_ISLLIBS)"; export ISLLIBS; \
+ 	ISLINC="$(HOST_ISLINC)"; export ISLINC; \
++	TARGET_CONFIGDIRS="$(TARGET_CONFIGDIRS)"; export TARGET_CONFIGDIRS; \
+ 	XGCC_FLAGS_FOR_TARGET="$(XGCC_FLAGS_FOR_TARGET)"; export XGCC_FLAGS_FOR_TARGET; \
+ @if gcc-bootstrap
+ 	$(RPATH_ENVVAR)=`echo "$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); \
+@@ -68551,6 +68552,66 @@ all-flex: maybe-all-build-bison
+ all-flex: maybe-all-m4
+ all-flex: maybe-all-build-texinfo
+ all-m4: maybe-all-build-texinfo
++configure-target-libbacktrace: maybe-all-target-libatomic
++configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
++configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
++configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
++configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
++configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
++configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
++configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
++configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
++configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
++configure-target-libgomp: maybe-all-target-libatomic
++configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
++configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
++configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
++configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
++configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
++configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
++configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
++configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
++configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
++configure-target-libsanitizer: maybe-all-target-libatomic
++configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
++configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
++configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
++configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
++configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
++configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
++configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
++configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
++configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
++configure-target-libvtv: maybe-all-target-libatomic
++configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
++configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
++configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
++configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
++configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
++configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
++configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
++configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
++configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
++configure-target-libphobos: maybe-all-target-libatomic
++configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
++configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
++configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
++configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
++configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
++configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
++configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
++configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
++configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
++configure-target-zlib: maybe-all-target-libatomic
++configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
++configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
++configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
++configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
++configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
++configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
++configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
++configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
++configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
+ configure-target-libgo: maybe-configure-target-libffi
+ all-target-libgo: maybe-all-target-libffi
+ configure-target-libphobos: maybe-configure-target-libbacktrace
+@@ -68678,6 +68739,45 @@ configure-m4: stage_last
+ @endif gcc-bootstrap
+ 
+ @if gcc-bootstrap
++@unless target-libatomic-bootstrap
++configure-target-libgloss: maybe-all-target-libatomic
++@endunless target-libatomic-bootstrap
++@unless target-libatomic-bootstrap
++configure-target-newlib: maybe-all-target-libatomic
++@endunless target-libatomic-bootstrap
++@unless target-libatomic-bootstrap
++configure-target-libitm: maybe-all-target-libatomic
++@endunless target-libatomic-bootstrap
++@unless target-libatomic-bootstrap
++configure-target-libstdc++v3: maybe-all-target-libatomic
++@endunless target-libatomic-bootstrap
++@unless target-libatomic-bootstrap
++configure-target-libssp: maybe-all-target-libatomic
++@endunless target-libatomic-bootstrap
++@unless target-libatomic-bootstrap
++configure-target-libquadmath: maybe-all-target-libatomic
++@endunless target-libatomic-bootstrap
++@unless target-libatomic-bootstrap
++configure-target-libgfortran: maybe-all-target-libatomic
++@endunless target-libatomic-bootstrap
++@unless target-libatomic-bootstrap
++configure-target-libffi: maybe-all-target-libatomic
++@endunless target-libatomic-bootstrap
++@unless target-libatomic-bootstrap
++configure-target-libobjc: maybe-all-target-libatomic
++@endunless target-libatomic-bootstrap
++@unless target-libatomic-bootstrap
++configure-target-libada: maybe-all-target-libatomic
++@endunless target-libatomic-bootstrap
++@unless target-libatomic-bootstrap
++configure-target-libgm2: maybe-all-target-libatomic
++@endunless target-libatomic-bootstrap
++@unless target-libatomic-bootstrap
++configure-target-libgo: maybe-all-target-libatomic
++@endunless target-libatomic-bootstrap
++@unless target-libatomic-bootstrap
++configure-target-libgrust: maybe-all-target-libatomic
++@endunless target-libatomic-bootstrap
+ @unless target-zlib-bootstrap
+ configure-target-fastjar: maybe-configure-target-zlib
+ @endunless target-zlib-bootstrap
+@@ -68755,6 +68855,19 @@ all-fastjar: maybe-all-libiberty
+ all-bison: maybe-all-gettext
+ all-flex: maybe-all-gettext
+ all-m4: maybe-all-gettext
++configure-target-libgloss: maybe-all-target-libatomic
++configure-target-newlib: maybe-all-target-libatomic
++configure-target-libitm: maybe-all-target-libatomic
++configure-target-libstdc++v3: maybe-all-target-libatomic
++configure-target-libssp: maybe-all-target-libatomic
++configure-target-libquadmath: maybe-all-target-libatomic
++configure-target-libgfortran: maybe-all-target-libatomic
++configure-target-libffi: maybe-all-target-libatomic
++configure-target-libobjc: maybe-all-target-libatomic
++configure-target-libada: maybe-all-target-libatomic
++configure-target-libgm2: maybe-all-target-libatomic
++configure-target-libgo: maybe-all-target-libatomic
++configure-target-libgrust: maybe-all-target-libatomic
+ configure-target-fastjar: maybe-configure-target-zlib
+ all-target-fastjar: maybe-all-target-zlib
+ configure-target-libgo: maybe-all-target-libstdc++-v3
+diff --git a/Makefile.tpl b/Makefile.tpl
+index da38dca697a..c6b2f7504ad 100644
+--- a/Makefile.tpl
++++ b/Makefile.tpl
+@@ -245,6 +245,7 @@ HOST_EXPORTS = \
+ 	GMPINC="$(HOST_GMPINC)"; export GMPINC; \
+ 	ISLLIBS="$(HOST_ISLLIBS)"; export ISLLIBS; \
+ 	ISLINC="$(HOST_ISLINC)"; export ISLINC; \
++	TARGET_CONFIGDIRS="$(TARGET_CONFIGDIRS)"; export TARGET_CONFIGDIRS; \
+ 	XGCC_FLAGS_FOR_TARGET="$(XGCC_FLAGS_FOR_TARGET)"; export XGCC_FLAGS_FOR_TARGET; \
+ @if gcc-bootstrap
+ 	$(RPATH_ENVVAR)=`echo "$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); \
+diff --git a/configure b/configure
+index 4ae8e1242af..532e4527719 100755
+--- a/configure
++++ b/configure
+@@ -10924,6 +10924,11 @@ if echo " ${target_configdirs} " | grep " libgomp " > /dev/null 2>&1 ; then
+   bootstrap_target_libs=${bootstrap_target_libs}target-libgomp,
+ fi
+ 
++# If we are building libatomic, bootstrap it.
++if echo " ${target_configdirs} " | grep " libatomic " > /dev/null 2>&1 ; then
++  bootstrap_target_libs=${bootstrap_target_libs}target-libatomic,
++fi
++
+ # If we are building libsanitizer and $BUILD_CONFIG contains bootstrap-asan
+ # or bootstrap-ubsan, bootstrap it.
+ if echo " ${target_configdirs} " | grep " libsanitizer " > /dev/null 2>&1; then
+diff --git a/configure.ac b/configure.ac
+index 9a72b2311bd..c44d84f32ce 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -3151,6 +3151,11 @@ if echo " ${target_configdirs} " | grep " libgomp " > /dev/null 2>&1 ; then
+   bootstrap_target_libs=${bootstrap_target_libs}target-libgomp,
+ fi
+ 
++# If we are building libatomic, bootstrap it.
++if echo " ${target_configdirs} " | grep " libatomic " > /dev/null 2>&1 ; then
++  bootstrap_target_libs=${bootstrap_target_libs}target-libatomic,
++fi
++
+ # If we are building libsanitizer and $BUILD_CONFIG contains bootstrap-asan
+ # or bootstrap-ubsan, bootstrap it.
+ if echo " ${target_configdirs} " | grep " libsanitizer " > /dev/null 2>&1; then
+diff --git a/gcc/common.opt b/gcc/common.opt
+index 1b72826d44b..30530cc8b71 100644
+--- a/gcc/common.opt
++++ b/gcc/common.opt
+@@ -3361,6 +3361,9 @@ Use the Modern linker (MOLD) linker instead of the default linker.
+ fuse-linker-plugin
+ Common Undocumented Var(flag_use_linker_plugin)
+ 
++flink-libatomic
++Common Driver Var(flag_link_libatomic) Init(1)
++
+ ; Positive if we should track variables, negative if we should run
+ ; the var-tracking pass only to discard debug annotations, zero if
+ ; we're not to run it.
+diff --git a/gcc/config.in b/gcc/config.in
+index d8145a1453b..b5060d2c0c8 100644
+--- a/gcc/config.in
++++ b/gcc/config.in
+@@ -2558,6 +2558,12 @@
+ #endif
+ 
+ 
++/* Define if libatomic is built for the target */
++#ifndef USED_FOR_TARGET
++#undef TARGET_PROVIDES_LIBATOMIC
++#endif
++
++
+ /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+ #ifndef USED_FOR_TARGET
+ #undef TIME_WITH_SYS_TIME
+diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
+index f7eefdafe8b..27d0ef07e1e 100644
+--- a/gcc/config/gnu-user.h
++++ b/gcc/config/gnu-user.h
+@@ -109,8 +109,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ #define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
+ #endif
+ 
++
+ #define GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC \
+-  "%{static|static-pie:--start-group} %G %{!nolibc:%L} \
++  "%{static|static-pie:--start-group} %G %{!nolibc:" LINK_LIBATOMIC_SPEC "%L} \
+    %{static|static-pie:--end-group}%{!static:%{!static-pie:%G}}"
+ 
+ #undef LINK_GCC_C_SEQUENCE_SPEC
+diff --git a/gcc/configure b/gcc/configure
+index a8b531d8fae..6793d97820d 100755
+--- a/gcc/configure
++++ b/gcc/configure
+@@ -33420,6 +33420,12 @@ $as_echo "#define ENABLE_DEFAULT_SSP 1" >>confdefs.h
+ fi
+ 
+ 
++if echo " ${TARGET_CONFIGDIRS} " | grep " libatomic " > /dev/null 2>&1 ; then
++
++$as_echo "#define TARGET_PROVIDES_LIBATOMIC 1" >>confdefs.h
++
++fi
++
+ # Test for <sys/sdt.h> on the target.
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking sys/sdt.h in the target C library" >&5
+diff --git a/gcc/configure.ac b/gcc/configure.ac
+index 77fab885a42..a6dd5786bd9 100644
+--- a/gcc/configure.ac
++++ b/gcc/configure.ac
+@@ -7011,6 +7011,11 @@ if test x$enable_default_ssp = xyes ; then
+ fi
+ AC_SUBST([enable_default_ssp])
+ 
++if echo " ${TARGET_CONFIGDIRS} " | grep " libatomic " > /dev/null 2>&1 ; then
++  AC_DEFINE(TARGET_PROVIDES_LIBATOMIC, 1,
++	    [Define if libatomic is built for the target])
++fi
++
+ # Test for <sys/sdt.h> on the target.
+ GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H])
+ AC_CACHE_CHECK([sys/sdt.h in the target C library], [gcc_cv_sys_sdt_h], [
+diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
+index 8ed5536365f..edf6c9f8684 100644
+--- a/gcc/doc/invoke.texi
++++ b/gcc/doc/invoke.texi
+@@ -206,7 +206,7 @@ in the following sections.
+ -fpermitted-flt-eval-methods=@var{standard}
+ -fplan9-extensions  -fsigned-bitfields  -funsigned-bitfields
+ -fsigned-char  -funsigned-char  -fstrict-flex-arrays[=@var{n}]
+--fsso-struct=@var{endianness}}
++-flink-libatomic -fsso-struct=@var{endianness}}
+ 
+ @item C++ Language Options
+ @xref{C++ Dialect Options,,Options Controlling C++ Dialect}.
+@@ -2899,6 +2899,10 @@ The @option{-fstrict_flex_arrays} option interacts with the
+ @option{-Wstrict-flex-arrays} option.  @xref{Warning Options}, for more
+ information.
+ 
++@opindex flink-libatomic
++@item -flink-libatomic
++Enable linking of libatomic if it's supported by target. Enabled by default.
++
+ @opindex fsso-struct
+ @item -fsso-struct=@var{endianness}
+ Set the default scalar storage order of structures and unions to the
+diff --git a/gcc/gcc.cc b/gcc/gcc.cc
+index 92c92996401..43d4c8763cb 100644
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -980,6 +980,13 @@ proper position among the other output files.  */
+ 
+ /* Here is the spec for running the linker, after compiling all files.  */
+ 
++#if defined(TARGET_PROVIDES_LIBATOMIC) && defined(USE_LD_AS_NEEDED)
++#define LINK_LIBATOMIC_SPEC "%{!fno-link-libatomic:" LD_AS_NEEDED_OPTION \
++			    " -latomic " LD_NO_AS_NEEDED_OPTION "} "
++#else
++#define LINK_LIBATOMIC_SPEC ""
++#endif
++
+ /* This is overridable by the target in case they need to specify the
+    -lgcc and -lc order specially, yet not require them to override all
+    of LINK_COMMAND_SPEC.  */
+diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am
+index efadd9dcd48..80bb6fbf477 100644
+--- a/libatomic/Makefile.am
++++ b/libatomic/Makefile.am
+@@ -69,7 +69,7 @@ libatomic_darwin_rpath += -Wl,-rpath,@loader_path
+ endif
+ 
+ libatomic_la_LDFLAGS = $(libatomic_version_info) $(libatomic_version_script) \
+-	$(lt_host_flags) $(libatomic_darwin_rpath)
++	-Wc,-fno-link-libatomic $(lt_host_flags) $(libatomic_darwin_rpath)
+ libatomic_la_SOURCES = gload.c gstore.c gcas.c gexch.c glfree.c lock.c init.c \
+ 	fenv.c fence.c flag.c
+ 
+@@ -162,6 +162,11 @@ libatomic_convenience_la_LIBADD = $(libatomic_la_LIBADD)
+ # when it is reloaded during the build of all-multi.
+ all-multi: $(libatomic_la_LIBADD)
+ 
++gcc_objdir = $(MULTIBUILDTOP)../../$(host_subdir)/gcc
++all: all-multi libatomic.la libatomic_convenience.la
++	$(INSTALL_DATA) .libs/libatomic.a $(gcc_objdir)$(MULTISUBDIR)/
++	chmod 644 $(gcc_objdir)$(MULTISUBDIR)/libatomic.a
++
+ # target overrides
+ -include $(tmake_file)
+ 
+diff --git a/libatomic/Makefile.in b/libatomic/Makefile.in
+index 9798e7c09e9..1d0494543d7 100644
+--- a/libatomic/Makefile.in
++++ b/libatomic/Makefile.in
+@@ -421,7 +421,7 @@ libatomic_version_info = -version-info $(libtool_VERSION)
+ @ENABLE_DARWIN_AT_RPATH_TRUE@	-Wc,-nodefaultrpaths \
+ @ENABLE_DARWIN_AT_RPATH_TRUE@	-Wl,-rpath,@loader_path
+ libatomic_la_LDFLAGS = $(libatomic_version_info) $(libatomic_version_script) \
+-	$(lt_host_flags) $(libatomic_darwin_rpath)
++	-Wc,-fno-link-libatomic $(lt_host_flags) $(libatomic_darwin_rpath)
+ 
+ libatomic_la_SOURCES = gload.c gstore.c gcas.c gexch.c glfree.c lock.c \
+ 	init.c fenv.c fence.c flag.c $(am__append_5)
+@@ -458,6 +458,7 @@ libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix \
+ @ARCH_X86_64_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -mcx16 -mcx16
+ libatomic_convenience_la_SOURCES = $(libatomic_la_SOURCES)
+ libatomic_convenience_la_LIBADD = $(libatomic_la_LIBADD)
++gcc_objdir = $(MULTIBUILDTOP)../../$(host_subdir)/gcc
+ MULTISRCTOP = 
+ MULTIBUILDTOP = 
+ MULTIDIRS = 
+@@ -901,6 +902,9 @@ vpath % $(strip $(search_path))
+ # makefile fragments to avoid broken *.Ppo getting included into the Makefile
+ # when it is reloaded during the build of all-multi.
+ all-multi: $(libatomic_la_LIBADD)
++all: all-multi libatomic.la libatomic_convenience.la
++	$(INSTALL_DATA) .libs/libatomic.a $(gcc_objdir)$(MULTISUBDIR)/
++	chmod 644 $(gcc_objdir)$(MULTISUBDIR)/libatomic.a
+ 
+ # target overrides
+ -include $(tmake_file)
+diff --git a/libatomic/configure b/libatomic/configure
+index d579bab96f8..0a340276ca6 100755
+--- a/libatomic/configure
++++ b/libatomic/configure
+@@ -3415,6 +3415,26 @@ esac
+ # the wrong, non-multilib-adjusted value will be used in multilibs.
+ # As a side effect, we have to subst CFLAGS ourselves.
+ 
++# AC_PROG_CC sets CFLAGS to "-g -O2" by default (if unset), and
++# then compile conftests with default CFLAGS, leaving no place to temporarily
++# modify CFLAGS and restore them later. However we need to pass
++# -fno-link-libatomic in CFLAGS so conftests compiled in AC_PROG_CC don't fail.
++# Assert that CFLAGS is always set by user so the default setting of CFLAGS by
++# AC_PROG_CC won't be applicable anyway.
++if test -z "${CFLAGS}"; then
++  as_fn_error $? "CFLAGS must be set." "$LINENO" 5
++fi
++
++# In order to override CFLAGS_FOR_TARGET, all of our special flags go
++# in XCFLAGS.  But we need them in CFLAGS during configury.  So put them
++# in both places for now and restore CFLAGS at the end of config.
++save_CFLAGS="$CFLAGS"
++
++# Append -fno-link-libatomic to avoid automatically linking libatomic,
++# while building libatomic itself.
++XCFLAGS="$XCFLAGS -fno-link-libatomic"
++CFLAGS="$save_CFLAGS $XCFLAGS"
++
+ 
+ 
+ ac_ext=c
+@@ -4593,11 +4613,6 @@ fi
+ 
+ 
+ 
+-# In order to override CFLAGS_FOR_TARGET, all of our special flags go
+-# in XCFLAGS.  But we need them in CFLAGS during configury.  So put them
+-# in both places for now and restore CFLAGS at the end of config.
+-save_CFLAGS="$CFLAGS"
+-
+ # Find other programs we need.
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+@@ -11456,7 +11471,7 @@ else
+   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<_LT_EOF
+-#line 11459 "configure"
++#line 11474 "configure"
+ #include "confdefs.h"
+ 
+ #if HAVE_DLFCN_H
+@@ -11562,7 +11577,7 @@ else
+   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<_LT_EOF
+-#line 11565 "configure"
++#line 11580 "configure"
+ #include "confdefs.h"
+ 
+ #if HAVE_DLFCN_H
+diff --git a/libatomic/configure.ac b/libatomic/configure.ac
+index 32a2cdb13ae..23a9695be36 100644
+--- a/libatomic/configure.ac
++++ b/libatomic/configure.ac
+@@ -129,6 +129,26 @@ AC_SUBST(toolexeclibdir)
+ # the wrong, non-multilib-adjusted value will be used in multilibs.
+ # As a side effect, we have to subst CFLAGS ourselves.
+ 
++# AC_PROG_CC sets CFLAGS to "-g -O2" by default (if unset), and
++# then compile conftests with default CFLAGS, leaving no place to temporarily
++# modify CFLAGS and restore them later. However we need to pass
++# -fno-link-libatomic in CFLAGS so conftests compiled in AC_PROG_CC don't fail.
++# Assert that CFLAGS is always set by user so the default setting of CFLAGS by
++# AC_PROG_CC won't be applicable anyway.
++if test -z "${CFLAGS}"; then
++  AC_MSG_ERROR([CFLAGS must be set.])
++fi
++
++# In order to override CFLAGS_FOR_TARGET, all of our special flags go
++# in XCFLAGS.  But we need them in CFLAGS during configury.  So put them
++# in both places for now and restore CFLAGS at the end of config.
++save_CFLAGS="$CFLAGS"
++
++# Append -fno-link-libatomic to avoid automatically linking libatomic,
++# while building libatomic itself.
++XCFLAGS="$XCFLAGS -fno-link-libatomic"
++CFLAGS="$save_CFLAGS $XCFLAGS"
++
+ m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS])
+ m4_define([_AC_ARG_VAR_PRECIOUS],[])
+ AC_PROG_CC
+@@ -137,11 +157,6 @@ m4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
+ 
+ AC_SUBST(CFLAGS)
+ 
+-# In order to override CFLAGS_FOR_TARGET, all of our special flags go
+-# in XCFLAGS.  But we need them in CFLAGS during configury.  So put them
+-# in both places for now and restore CFLAGS at the end of config.
+-save_CFLAGS="$CFLAGS"
+-
+ # Find other programs we need.
+ AC_CHECK_TOOL(AR, ar)
+ AC_CHECK_TOOL(NM, nm)

diff --git a/15.0.0/gentoo/README.history b/15.0.0/gentoo/README.history
index 666e4b2..2d01229 100644
--- a/15.0.0/gentoo/README.history
+++ b/15.0.0/gentoo/README.history
@@ -1,6 +1,7 @@
 37	????
 
 	- 78_all_PR118032-Revert-gimple-Add-limit-after-which-slower-switchlow.patch
+	+ 80_all_PR81358-Enable-automatic-linking-of-libatomic.patch
 	+ 81_all_PR118199-c-Clear-TARGET_EXPR_ELIDING_P-when-forced-to-use-a-c.patch
 
 36	5 January 2025


             reply	other threads:[~2025-01-06 10:50 UTC|newest]

Thread overview: 165+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-06 10:50 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-03-13 10:08 [gentoo-commits] proj/gcc-patches:master commit in: 15.0.0/gentoo/ Sam James
2025-03-11 10:32 Sam James
2025-03-07 16:54 Sam James
2025-03-03 16:38 Sam James
2025-03-01 10:33 Sam James
2025-03-01  6:50 Sam James
2025-02-17  1:30 Sam James
2025-02-13  9:23 Sam James
2025-02-12 15:12 Sam James
2025-02-10 21:22 Sam James
2025-02-09 23:58 Sam James
2025-02-07 23:37 Sam James
2025-02-07 21:19 Sam James
2025-02-03 22:04 Sam James
2025-02-02 22:41 Sam James
2025-01-29 20:21 Sam James
2025-01-26 22:52 Sam James
2025-01-22 16:27 Sam James
2025-01-19 22:43 Sam James
2025-01-16 23:11 Sam James
2025-01-16 23:11 Sam James
2025-01-15 11:41 Sam James
2025-01-14 16:22 Sam James
2025-01-14 15:06 Sam James
2025-01-14 15:06 Sam James
2025-01-14 12:29 Sam James
2025-01-14  8:43 Sam James
2025-01-14  8:40 Sam James
2025-01-13 13:58 Sam James
2025-01-13  6:00 Sam James
2025-01-13  3:40 Sam James
2025-01-13  3:23 Sam James
2025-01-13  3:20 Sam James
2025-01-13  0:20 Sam James
2025-01-12 18:53 Sam James
2025-01-11 12:53 Sam James
2025-01-08 21:51 Sam James
2025-01-06 10:03 Sam James
2025-01-06  4:49 Sam James
2025-01-06  4:44 Sam James
2025-01-06  4:13 Sam James
2025-01-06  4:13 Sam James
2025-01-06  4:13 Sam James
2025-01-06  4:03 Sam James
2025-01-05 23:19 Sam James
2025-01-03  3:07 Sam James
2024-12-30  1:05 Sam James
2024-12-29 10:00 Sam James
2024-12-27 15:14 Sam James
2024-12-24 20:48 Sam James
2024-12-22 22:46 Sam James
2024-12-20 11:25 Sam James
2024-12-20  5:57 Sam James
2024-12-20  1:55 Sam James
2024-12-19 18:34 Sam James
2024-12-13 13:23 Sam James
2024-12-13 11:52 Sam James
2024-12-13  5:08 Sam James
2024-12-12 12:28 Sam James
2024-12-11  4:41 Sam James
2024-12-11  0:58 Sam James
2024-12-10 19:19 Sam James
2024-12-10 14:55 Sam James
2024-12-10  5:19 Sam James
2024-12-10  5:13 Sam James
2024-12-10  5:11 Sam James
2024-12-10  5:07 Sam James
2024-12-09  3:05 Sam James
2024-12-08 22:41 Sam James
2024-12-06 17:33 Sam James
2024-12-04 20:40 Sam James
2024-12-01 22:51 Sam James
2024-12-01 22:51 Sam James
2024-11-30 11:30 Sam James
2024-11-27 17:42 Sam James
2024-11-25 15:10 Sam James
2024-11-25  3:01 Sam James
2024-11-25  3:00 Sam James
2024-11-25  3:00 Sam James
2024-11-24 22:42 Sam James
2024-11-18 17:25 Sam James
2024-11-18 10:42 Sam James
2024-11-18 10:42 Sam James
2024-11-18  9:25 Sam James
2024-11-18  9:25 Sam James
2024-11-14 18:38 Sam James
2024-11-13  4:26 Sam James
2024-11-13  0:16 Sam James
2024-11-12  2:33 Sam James
2024-11-11 19:46 Sam James
2024-11-11 19:46 Sam James
2024-11-10 22:41 Sam James
2024-11-09 16:24 Sam James
2024-11-09  7:55 Sam James
2024-11-08  8:22 Sam James
2024-11-07 16:13 Sam James
2024-11-03 23:16 Sam James
2024-11-01  8:24 Sam James
2024-11-01  8:24 Sam James
2024-11-01  8:18 Sam James
2024-11-01  8:17 Sam James
2024-10-30 16:03 Sam James
2024-10-29 19:17 Sam James
2024-10-28 21:32 Sam James
2024-10-28  8:09 Sam James
2024-10-23 15:40 Sam James
2024-10-22 19:09 Sam James
2024-10-22 18:34 Sam James
2024-10-21 12:33 Sam James
2024-10-21 12:27 Sam James
2024-10-21 12:26 Sam James
2024-10-21 11:45 Sam James
2024-10-20 22:42 Sam James
2024-10-18 14:05 Sam James
2024-10-18 10:35 Sam James
2024-10-17 23:33 Sam James
2024-10-17 23:03 Sam James
2024-10-17  5:01 Sam James
2024-10-17  4:15 Sam James
2024-10-13 22:48 Sam James
2024-10-07  2:45 Sam James
2024-10-04 10:37 Sam James
2024-10-04  9:28 Sam James
2024-10-02 19:45 Sam James
2024-09-30 14:05 Sam James
2024-09-29 22:56 Sam James
2024-09-24  1:41 Sam James
2024-09-23 15:23 Sam James
2024-09-02  2:28 Sam James
2024-08-26 13:44 Sam James
2024-08-26  6:24 Sam James
2024-08-23 13:51 Sam James
2024-08-20 20:31 Sam James
2024-08-19 18:43 Sam James
2024-08-14  9:48 Sam James
2024-08-14  2:57 Sam James
2024-08-11 22:40 Sam James
2024-08-09 19:54 Sam James
2024-08-09 19:54 Sam James
2024-08-09 19:47 Sam James
2024-08-09 19:25 Sam James
2024-08-08 11:10 Sam James
2024-08-08 11:06 Sam James
2024-08-08 11:03 Sam James
2024-08-05  9:09 Sam James
2024-08-05  1:54 Sam James
2024-08-05  1:51 Sam James
2024-08-02 20:39 Sam James
2024-08-01 14:40 Sam James
2024-07-28 23:34 Sam James
2024-07-22  1:11 Sam James
2024-07-19 11:14 Sam James
2024-07-18  0:45 Sam James
2024-07-14 23:36 Sam James
2024-06-28 12:49 Sam James
2024-06-27  0:02 Sam James
2024-06-26 23:57 Sam James
2024-06-16 22:45 Sam James
2024-06-10 20:18 Sam James
2024-06-10 17:28 Sam James
2024-06-10 17:28 Sam James
2024-06-10  2:08 Sam James
2024-06-08 17:03 Sam James
2024-06-08 17:03 Sam James

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1736160606.f6d3d0becd191f48aca221595377e39e53708adf.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox