Add --disable-tm-clone-registry libgcc configure option.
authorIlia Diachkov <ilia.diachkov@optimitech.com>
Thu, 27 Jun 2019 23:41:03 +0000 (23:41 +0000)
committerJim Wilson <wilson@gcc.gnu.org>
Thu, 27 Jun 2019 23:41:03 +0000 (16:41 -0700)
This patch adds libgcc configuration option to disable TM clone
registry. This option helps to reduce code size for embedded targets
which do not need transactional memory support.

gcc/
* doc/install.texi: Document --disable-tm-clone-registry.
libgcc/
* Makefile.in (USE_TM_CLONE_REGISTRY): New.
(CRTSTUFF_CFLAGS): Use USE_TM_CLONE_REGISTRY.
* configure.ac: Add --disable-tm-clone-registry option.
* configure: Regenerate.

From-SVN: r272769

gcc/ChangeLog
gcc/doc/install.texi
libgcc/ChangeLog
libgcc/Makefile.in
libgcc/configure
libgcc/configure.ac

index eab9ab9..f8bd2b2 100644 (file)
@@ -1,3 +1,7 @@
+2019-06-27  Ilia Diachkov  <ilia.diachkov@optimitech.com>
+
+       * doc/install.texi: Document --disable-tm-clone-registry.
+
 2019-06-27  Jakub Jelinek  <jakub@redhat.com>
 
        PR c++/91024
index 29d0470..1a0e8c7 100644 (file)
@@ -1284,6 +1284,11 @@ assumptions made by the configure test are incorrect.
 Specify that the target does not support TLS.
 This is an alias for @option{--enable-tls=no}.
 
+@item --disable-tm-clone-registry
+Disable TM clone registry in libgcc. It is enabled in libgcc by default.
+This option helps to reduce code size for embedded targets which do
+not use transactional memory.
+
 @item --with-cpu=@var{cpu}
 @itemx --with-cpu-32=@var{cpu}
 @itemx --with-cpu-64=@var{cpu}
index 5b560e8..d69e55e 100644 (file)
@@ -1,3 +1,10 @@
+2019-06-27  Ilia Diachkov  <ilia.diachkov@optimitech.com>
+
+       * Makefile.in (USE_TM_CLONE_REGISTRY): New.
+       (CRTSTUFF_CFLAGS): Use USE_TM_CLONE_REGISTRY.
+       * configure.ac: Add --disable-tm-clone-registry option.
+       * configure: Regenerate.
+
 2019-06-27  Martin Liska  <mliska@suse.cz>
 
        * libgcov-driver-system.c (gcov_exit_open_gcda_file): Remove obviously
index 33b8380..e10a197 100644 (file)
@@ -259,6 +259,8 @@ PICFLAG = @PICFLAG@
 
 CET_FLAGS = @CET_FLAGS@
 
+USE_TM_CLONE_REGISTRY = @use_tm_clone_registry@
+
 # Defined in libgcc2.c, included only in the static library.
 LIB2FUNCS_ST = _eprintf __gcc_bcmp
 
@@ -299,7 +301,7 @@ CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
   $(NO_PIE_CFLAGS) -finhibit-size-directive -fno-inline -fno-exceptions \
   -fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \
   -fbuilding-libgcc -fno-stack-protector $(FORCE_EXPLICIT_EH_REGISTRY) \
-  $(INHIBIT_LIBC_CFLAGS)
+  $(INHIBIT_LIBC_CFLAGS) $(USE_TM_CLONE_REGISTRY)
 
 # Extra flags to use when compiling crt{begin,end}.o.
 CRTSTUFF_T_CFLAGS =
index af910b6..29f6473 100644 (file)
@@ -604,6 +604,7 @@ vis_hide
 solaris_ld_v2_maps
 real_host_noncanonical
 accel_dir_suffix
+use_tm_clone_registry
 force_explicit_eh_registry
 CET_FLAGS
 fixed_point
@@ -712,6 +713,7 @@ enable_decimal_float
 with_system_libunwind
 enable_cet
 enable_explicit_exception_frame_registration
+enable_tm_clone_registry
 with_glibc_version
 enable_tls
 with_gcc_major_version_only
@@ -1355,6 +1357,7 @@ Optional Features:
                           register exception tables explicitly at module
                           start, for use e.g. for compatibility with
                           installations without PT_GNU_EH_FRAME support
+  --disable-tm-clone-registry    disable TM clone registry
   --enable-tls            Use thread-local storage [default=yes]
 
 Optional Packages:
@@ -4953,6 +4956,18 @@ fi
 
 
 
+# Check whether --enable-tm-clone-registry was given.
+if test "${enable_tm_clone_registry+set}" = set; then :
+  enableval=$enable_tm_clone_registry;
+use_tm_clone_registry=
+if test "$enable_tm_clone_registry" = no; then
+  use_tm_clone_registry=-DUSE_TM_CLONE_REGISTRY=0
+fi
+
+fi
+
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
 if ${acl_cv_prog_gnu_ld+:} false; then :
index 5f11455..b1b90d2 100644 (file)
@@ -261,6 +261,16 @@ fi
 ])
 AC_SUBST([force_explicit_eh_registry])
 
+AC_ARG_ENABLE([tm-clone-registry],
+[  --disable-tm-clone-registry    disable TM clone registry],
+[
+use_tm_clone_registry=
+if test "$enable_tm_clone_registry" = no; then
+  use_tm_clone_registry=-DUSE_TM_CLONE_REGISTRY=0
+fi
+])
+AC_SUBST([use_tm_clone_registry])
+
 AC_LIB_PROG_LD_GNU
 
 AC_MSG_CHECKING([for thread model used by GCC])