diff options
author | Ilia Diachkov <ilia.diachkov@optimitech.com> | 2019-06-27 23:41:03 +0000 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 2019-06-27 16:41:03 -0700 |
commit | 5a4602805eb3ebddbc935b102481e63bffc7c5e6 (patch) | |
tree | e2aab40a13c83c1b9ee1ec034d15962d39600354 | |
parent | 7ffc7de55b058e78cbc46803b89b712849ea35b3 (diff) | |
download | gcc-5a4602805eb3ebddbc935b102481e63bffc7c5e6.zip gcc-5a4602805eb3ebddbc935b102481e63bffc7c5e6.tar.gz gcc-5a4602805eb3ebddbc935b102481e63bffc7c5e6.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/doc/install.texi | 5 | ||||
-rw-r--r-- | libgcc/ChangeLog | 7 | ||||
-rw-r--r-- | libgcc/Makefile.in | 4 | ||||
-rw-r--r-- | libgcc/configure | 15 | ||||
-rw-r--r-- | libgcc/configure.ac | 10 |
6 files changed, 44 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index eab9ab9..f8bd2b2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index 29d0470..1a0e8c7 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 5b560e8..d69e55e 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -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 diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in index 33b8380..e10a197 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 af910b6..29f6473 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 5f11455..b1b90d2 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]) |