[PATCH 2/4] i386: Remove memset_chk-nonshared.S

Carlos O'Donell carlos@redhat.com
Wed Jul 26 01:51:37 GMT 2023


On 7/25/23 11:16, Adhemerval Zanella via Libc-alpha wrote:
> Similar to memcpy, mempcpy, and memmove there is no need for an
> specific memset_chk-nonshared.S.  It can be provided by
> memset-ia32.S itself for static library.

Agreed. LGTM. I'll retest i686 after this goes in.

Andreas, As the RM is this OK to push?

Reviewed-by: Carlos O'Donell <carlos@redhat.com>

> Checked on i686-linux-gnu.
> ---
>  sysdeps/i386/i686/memset.S                    |  2 +-
>  sysdeps/i386/i686/multiarch/Makefile          |  4 ----
>  sysdeps/i386/i686/multiarch/memset-ia32.S     |  9 ++++----
>  .../i686/multiarch/memset_chk-nonshared.S     | 21 -------------------
>  4 files changed, 6 insertions(+), 30 deletions(-)
>  delete mode 100644 sysdeps/i386/i686/multiarch/memset_chk-nonshared.S
> 
> diff --git a/sysdeps/i386/i686/memset.S b/sysdeps/i386/i686/memset.S
> index 0b5e671d83..b84dc3fbe9 100644
> --- a/sysdeps/i386/i686/memset.S
> +++ b/sysdeps/i386/i686/memset.S
> @@ -27,7 +27,7 @@
>  #define LEN	CHR+4
>  
>          .text
> -#if defined SHARED && IS_IN (libc)
> +#if defined PIC && IS_IN (libc)
>  ENTRY_CHK (__memset_chk)
>  	movl	12(%esp), %eax
>  	cmpl	%eax, 16(%esp)
> diff --git a/sysdeps/i386/i686/multiarch/Makefile b/sysdeps/i386/i686/multiarch/Makefile
> index f48b06741f..f86e69de55 100644
> --- a/sysdeps/i386/i686/multiarch/Makefile
> +++ b/sysdeps/i386/i686/multiarch/Makefile
> @@ -44,7 +44,3 @@ libm-sysdep_routines += s_fma-fma s_fmaf-fma
>  CFLAGS-s_fma-fma.c += -mavx -mfpmath=sse
>  CFLAGS-s_fmaf-fma.c += -mavx -mfpmath=sse
>  endif
> -
> -ifeq ($(subdir),debug)
> -sysdep_routines += memset_chk-nonshared
> -endif
> diff --git a/sysdeps/i386/i686/multiarch/memset-ia32.S b/sysdeps/i386/i686/multiarch/memset-ia32.S
> index ac57e456d4..a1b3919a19 100644
> --- a/sysdeps/i386/i686/multiarch/memset-ia32.S
> +++ b/sysdeps/i386/i686/multiarch/memset-ia32.S
> @@ -18,16 +18,17 @@
>  
>  #if IS_IN (libc)
>  # define memset __memset_ia32
> -# define __memset_chk __memset_chk_ia32
>  
>  # ifdef SHARED
> -#  undef libc_hidden_builtin_def
> +#  define __memset_chk __memset_chk_ia32

OK.

> +# endif
> +
> +# undef libc_hidden_builtin_def
>  /* IFUNC doesn't work with the hidden functions in shared library since
>     they will be called without setting up EBX needed for PLT which is
>     used by IFUNC.  */
> -#  define libc_hidden_builtin_def(name) \
> +# define libc_hidden_builtin_def(name) \
>  	.globl __GI_memset; __GI_memset = memset
> -# endif
>  #endif
>  
>  #include <sysdeps/i386/i686/memset.S>
> diff --git a/sysdeps/i386/i686/multiarch/memset_chk-nonshared.S b/sysdeps/i386/i686/multiarch/memset_chk-nonshared.S
> deleted file mode 100644
> index e68c6e43b3..0000000000
> --- a/sysdeps/i386/i686/multiarch/memset_chk-nonshared.S
> +++ /dev/null
> @@ -1,21 +0,0 @@
> -/* Non-shared version of memset_chk for i686.
> -   Copyright (C) 2017-2023 Free Software Foundation, Inc.
> -   This file is part of the GNU C Library.
> -
> -   The GNU C Library is free software; you can redistribute it and/or
> -   modify it under the terms of the GNU Lesser General Public
> -   License as published by the Free Software Foundation; either
> -   version 2.1 of the License, or (at your option) any later version.
> -
> -   The GNU C Library is distributed in the hope that it will be useful,
> -   but WITHOUT ANY WARRANTY; without even the implied warranty of
> -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> -   Lesser General Public License for more details.
> -
> -   You should have received a copy of the GNU Lesser General Public
> -   License along with the GNU C Library; if not, see
> -   <https://www.gnu.org/licenses/>.  */
> -
> -#if IS_IN (libc) && !defined SHARED
> -# include <sysdeps/i386/memset_chk.S>
> -#endif

OK.

-- 
Cheers,
Carlos.



More information about the Libc-alpha mailing list