[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