aboutsummaryrefslogtreecommitdiffstats
path: root/main/gcc/0040-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/gcc/0040-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch')
-rw-r--r--main/gcc/0040-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch269
1 files changed, 0 insertions, 269 deletions
diff --git a/main/gcc/0040-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch b/main/gcc/0040-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
deleted file mode 100644
index 4727c37ebef..00000000000
--- a/main/gcc/0040-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
+++ /dev/null
@@ -1,269 +0,0 @@
-From 8ac36878ba8714afeac6f439632de8bacb2e72e3 Mon Sep 17 00:00:00 2001
-From: Drew DeVault <sir@cmpwn.com>
-Date: Wed, 9 Dec 2020 16:07:26 +0000
-Subject: [PATCH] configure: Add --enable-autolink-libatomic, use in
- LINK_GCC_C_SEQUENCE_SPEC [PR81358]
-
-This fixes issues with RISC-V.
----
- Makefile.in | 1 +
- gcc/config.in | 6 ++++++
- gcc/config/gnu-user.h | 12 +++++++++++-
- gcc/configure | 34 ++++++++++++++++++++++++++++++++--
- gcc/configure.ac | 23 ++++++++++++++++++++++-
- gcc/doc/install.texi | 8 ++++++++
- gcc/doc/tm.texi | 8 +++++++-
- gcc/doc/tm.texi.in | 8 +++++++-
- gcc/gcc.c | 12 +++++++++++-
- 9 files changed, 105 insertions(+), 7 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index c7f1f84d683..cb3983ca547 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -222,6 +222,7 @@ HOST_EXPORTS = \
- RANLIB_FOR_TARGET="$(RANLIB_FOR_TARGET)"; export RANLIB_FOR_TARGET; \
- READELF_FOR_TARGET="$(READELF_FOR_TARGET)"; export READELF_FOR_TARGET; \
- TOPLEVEL_CONFIGURE_ARGUMENTS="$(TOPLEVEL_CONFIGURE_ARGUMENTS)"; export TOPLEVEL_CONFIGURE_ARGUMENTS; \
-+ TARGET_CONFIGDIRS="$(TARGET_CONFIGDIRS)"; export TARGET_CONFIGDIRS; \
- HOST_LIBS="$(STAGE1_LIBS)"; export HOST_LIBS; \
- GMPLIBS="$(HOST_GMPLIBS)"; export GMPLIBS; \
- GMPINC="$(HOST_GMPINC)"; export GMPINC; \
-diff --git a/gcc/config.in b/gcc/config.in
-index 9551c0dfdf9..c8ca910df8a 100644
---- a/gcc/config.in
-+++ b/gcc/config.in
-@@ -106,6 +106,12 @@
- #endif
-
-
-+/* Define if libatomic should always be linked. */
-+#ifndef USED_FOR_TARGET
-+#undef ENABLE_AUTOLINK_LIBATOMIC
-+#endif
-+
-+
- /* Define to 1 to specify that we are using the BID decimal floating point
- format instead of DPD */
- #ifndef USED_FOR_TARGET
-diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
-index 7f30c363e4a..246698bfea5 100644
---- a/gcc/config/gnu-user.h
-+++ b/gcc/config/gnu-user.h
-@@ -109,8 +109,18 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
- #define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
- #endif
-
-+#if !defined(LINK_LIBATOMIC_SPEC) && defined(ENABLE_AUTOLINK_LIBATOMIC)
-+# ifdef LD_AS_NEEDED_OPTION
-+# define LINK_LIBATOMIC_SPEC LD_AS_NEEDED_OPTION " -latomic " LD_NO_AS_NEEDED_OPTION
-+# else
-+# define LINK_LIBATOMIC_SPEC "-latomic"
-+# endif
-+#elif !defined(LINK_LIBATOMIC_SPEC)
-+# define LINK_LIBATOMIC_SPEC ""
-+#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 808570b6c99..6c1e95e0444 100755
---- a/gcc/configure
-+++ b/gcc/configure
-@@ -969,6 +969,7 @@ with_documentation_root_url
- with_changes_root_url
- enable_languages
- with_multilib_list
-+enable_autolink_libatomic
- with_zstd
- with_zstd_include
- with_zstd_lib
-@@ -1695,6 +1696,9 @@ Optional Features:
- --disable-shared don't provide a shared libgcc
- --disable-gcov don't provide libgcov and related host tools
- --enable-languages=LIST specify which front-ends to build
-+ --enable-autolink-libatomic
-+ enable automatic linking of libatomic (ignored if
-+ not built)
- --disable-rpath do not hardcode runtime library paths
- --enable-sjlj-exceptions
- arrange to use setjmp/longjmp exception handling
-@@ -8009,6 +8013,33 @@ else
- fi
-
-
-+# If libatomic is available, whether it should be linked automatically
-+# Check whether --enable-autolink-libatomic was given.
-+if test "${enable_autolink_libatomic+set}" = set; then :
-+ enableval=$enable_autolink_libatomic;
-+ case $enable_autolink_libatomic in
-+ yes | no) ;;
-+ *) as_fn_error $? "'$enable_autolink_libatomic' is an invalid value for
-+--enable-autolink-libatomic. Valid choices are 'yes' and 'no'." "$LINENO" 5 ;;
-+ esac
-+
-+else
-+ enable_autolink_libatomic=''
-+fi
-+
-+
-+if test x$enable_autolink_libatomic = xyes; then
-+ if echo " ${TARGET_CONFIGDIRS} " | grep " libatomic " > /dev/null 2>&1 ; then
-+
-+$as_echo "#define ENABLE_AUTOLINK_LIBATOMIC 1" >>confdefs.h
-+
-+ else
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libatomic is not build for this target, --enable-autolink-libatomic ignored" >&5
-+$as_echo "$as_me: WARNING: libatomic is not build for this target, --enable-autolink-libatomic ignored" >&2;}
-+ fi
-+fi
-+
-+
- # -------------------------
- # Checks for other programs
- # -------------------------
-@@ -19131,7 +19162,7 @@ else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
--#line 19131 "configure"
-+#line 19158 "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-@@ -32267,4 +32298,3 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
- fi
-
--
-diff --git a/gcc/configure.ac b/gcc/configure.ac
-index 9c2571de709..52fd6d8fe06 100644
---- a/gcc/configure.ac
-+++ b/gcc/configure.ac
-@@ -1110,6 +1110,28 @@ AC_ARG_WITH(multilib-list,
- :,
- with_multilib_list=default)
-
-+# If libatomic is available, whether it should be linked automatically
-+AC_ARG_ENABLE(autolink-libatomic,
-+[AS_HELP_STRING([--enable-autolink-libatomic],
-+ [enable automatic linking of libatomic (ignored if not built)])],
-+[
-+ case $enable_autolink_libatomic in
-+ yes | no) ;;
-+ *) AC_MSG_ERROR(['$enable_autolink_libatomic' is an invalid value for
-+--enable-autolink-libatomic. Valid choices are 'yes' and 'no'.]) ;;
-+ esac
-+], [enable_autolink_libatomic=''])
-+
-+if test x$enable_autolink_libatomic = xyes; then
-+ if echo " ${TARGET_CONFIGDIRS} " | grep " libatomic " > /dev/null 2>&1 ; then
-+ AC_DEFINE(ENABLE_AUTOLINK_LIBATOMIC, 1,
-+ [Define if libatomic should always be linked.])
-+ else
-+ AC_MSG_WARN([libatomic is not build for this target, --enable-autolink-libatomic ignored])
-+ fi
-+fi
-+
-+
- # -------------------------
- # Checks for other programs
- # -------------------------
-@@ -6945,4 +6967,3 @@ done
- ],
- [subdirs='$subdirs'])
- AC_OUTPUT
--
-diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
-index 7d98ec4190a..a58d5a05be2 100644
---- a/gcc/doc/install.texi
-+++ b/gcc/doc/install.texi
-@@ -2169,6 +2169,14 @@ files, but these changed header paths may conflict with some compilation
- environments. Enabled by default, and may be disabled using
- @option{--disable-canonical-system-headers}.
-
-+@item --enable-autolink-libatomic
-+@itemx --disable-autolink-libatomic
-+Tell GCC that it should automatically link libatomic; if supported by
-+the linker, the file is only linked as needed. This flag is ignored
-+when libatomic is not built. Note that this conigure flag is in particular
-+useful when building an offloading-target compiler; as for those, a
-+user had to specify @code{-foffload=target=-latomic} otherwise.
-+
- @item --with-glibc-version=@var{major}.@var{minor}
- Tell GCC that when the GNU C Library (glibc) is used on the target it
- will be version @var{major}.@var{minor} or later. Normally this can
-diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
-index fcb7245e95c..67b485e8d0c 100644
---- a/gcc/doc/tm.texi
-+++ b/gcc/doc/tm.texi
-@@ -381,7 +381,13 @@ the argument @option{-lgcc} to tell the linker to do the search.
-
- @defmac LINK_GCC_C_SEQUENCE_SPEC
- The sequence in which libgcc and libc are specified to the linker.
--By default this is @code{%G %L %G}.
-+By default this is @code{%G LINK_LIBATOMIC_SPEC %L %G}.
-+@end defmac
-+
-+@defmac LINK_LIBATOMIC_SPEC
-+This macro is used in the default @code{LINK_GCC_C_SEQUENCE_SPEC} to link
-+libatomic. By default, it is unset unless @code{ENABLE_AUTOLINK_LIBATOMIC}
-+is set.
- @end defmac
-
- @defmac POST_LINK_SPEC
-diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in
-index c17209daa51..3ec63f6d091 100644
---- a/gcc/doc/tm.texi.in
-+++ b/gcc/doc/tm.texi.in
-@@ -381,7 +381,13 @@ the argument @option{-lgcc} to tell the linker to do the search.
-
- @defmac LINK_GCC_C_SEQUENCE_SPEC
- The sequence in which libgcc and libc are specified to the linker.
--By default this is @code{%G %L %G}.
-+By default this is @code{%G LINK_LIBATOMIC_SPEC %L %G}.
-+@end defmac
-+
-+@defmac LINK_LIBATOMIC_SPEC
-+This macro is used in the default @code{LINK_GCC_C_SEQUENCE_SPEC} to link
-+libatomic. By default, it is unset unless @code{ENABLE_AUTOLINK_LIBATOMIC}
-+is set.
- @end defmac
-
- @defmac POST_LINK_SPEC
-diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 40e07354b3d..81bd50b4d7c 100644
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -877,13 +877,23 @@ proper position among the other output files. */
- # define ASM_DEBUG_SPEC ""
- #endif
-
-+#if !defined(LINK_LIBATOMIC_SPEC) && defined(ENABLE_AUTOLINK_LIBATOMIC)
-+# ifdef LD_AS_NEEDED_OPTION
-+# define LINK_LIBATOMIC_SPEC LD_AS_NEEDED_OPTION " -latomic " LD_NO_AS_NEEDED_OPTION
-+# else
-+# define LINK_LIBATOMIC_SPEC "-latomic"
-+# endif
-+#elif !defined(LINK_LIBATOMIC_SPEC)
-+# define LINK_LIBATOMIC_SPEC ""
-+#endif
-+
- /* Here is the spec for running the linker, after compiling all files. */
-
- /* 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. */
- #ifndef LINK_GCC_C_SEQUENCE_SPEC
--#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
-+#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:" LINK_LIBATOMIC_SPEC " %L %G}"
- #endif
-
- #ifdef ENABLE_DEFAULT_SSP
---
-2.31.1
-