diff --git a/gcc/ChangeLog b/gcc/ChangeLog index eab9ab9a8591..f8bd2b21636e 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 29d047004fd6..1a0e8c7d3f8b 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 5b560e803b1f..d69e55efdd07 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 33b83809cfc0..e10a197a4efd 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 af910b62931c..29f647319b46 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 5f11455dba5f..b1b90d294ff4 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])