diff mbox series

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

Message ID 20230725151641.923083-3-adhemerval.zanella@linaro.org
State New
Headers show
Series Fix i386 build with --enable-fortify-source | expand

Commit Message

Adhemerval Zanella Netto July 25, 2023, 3:16 p.m. UTC
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.

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

Comments

Carlos O'Donell July 26, 2023, 1:51 a.m. UTC | #1
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.
Andreas K. Huettel July 26, 2023, 9:17 a.m. UTC | #2
Am Mittwoch, 26. Juli 2023, 03:51:37 CEST schrieb Carlos O'Donell:
> 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>

Yes please go ahead.

> 
> > 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.
> 
>
diff mbox series

Patch

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
+# 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