From 5a4602805eb3ebddbc935b102481e63bffc7c5e6 Mon Sep 17 00:00:00 2001 From: Ilia Diachkov Date: Thu, 27 Jun 2019 23:41:03 +0000 Subject: [PATCH] Add --disable-tm-clone-registry libgcc configure option. 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 | 4 ++++ gcc/doc/install.texi | 5 +++++ libgcc/ChangeLog | 7 +++++++ libgcc/Makefile.in | 4 +++- libgcc/configure | 15 +++++++++++++++ libgcc/configure.ac | 10 ++++++++++ 6 files changed, 44 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index eab9ab9a859..f8bd2b21636 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2019-06-27 Ilia Diachkov + + * doc/install.texi: Document --disable-tm-clone-registry. + 2019-06-27 Jakub Jelinek PR c++/91024 diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index 29d047004fd..1a0e8c7d3f8 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -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} diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 5b560e803b1..d69e55efdd0 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,10 @@ +2019-06-27 Ilia Diachkov + + * 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 * libgcov-driver-system.c (gcov_exit_open_gcda_file): Remove obviously diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in index 33b83809cfc..e10a197a4ef 100644 --- a/libgcc/Makefile.in +++ b/libgcc/Makefile.in @@ -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 = diff --git a/libgcc/configure b/libgcc/configure index af910b62931..29f647319b4 100644 --- a/libgcc/configure +++ b/libgcc/configure @@ -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 : diff --git a/libgcc/configure.ac b/libgcc/configure.ac index 5f11455dba5..b1b90d294ff 100644 --- a/libgcc/configure.ac +++ b/libgcc/configure.ac @@ -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]) -- 2.30.2