This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] powerpc: strcasecmp/strncasecmp optmization for power8


Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> writes:

> diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-ppc64.c
> new file mode 100644
> index 0000000..90f75ce
> --- /dev/null
> +++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-ppc64.c
> @@ -0,0 +1,25 @@
> +/* Multiarch strcasecmp for PPC64.
> +   Copyright (C) 2016 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
> +   <http://www.gnu.org/licenses/>.  */
> +
> +#include <string.h>
> +
> +extern __typeof (__strcasecmp) __strcasecmp_ppc attribute_hidden;

Can't you remove this include and this prototype?

> diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c
> index 1f22336..2b554dc 100644
> --- a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c
> +++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c
> @@ -1,4 +1,4 @@
> -/* Multiple versions of strcasecmp.
> +/* Multiple versions of strcasecmp
>     Copyright (C) 2013-2016 Free Software Foundation, Inc.
>     This file is part of the GNU C Library.
>
> @@ -16,25 +16,22 @@
>     License along with the GNU C Library; if not, see
>     <http://www.gnu.org/licenses/>.  */
>
> -#if IS_IN (libc)
> -# include <string.h>
> -# define strcasecmp __strcasecmp_ppc
> -extern __typeof (__strcasecmp) __strcasecmp_ppc attribute_hidden;
> -extern __typeof (__strcasecmp) __strcasecmp_power7 attribute_hidden;
> -#endif
> +#include <string.h>
> +#include <shlib-compat.h>
> +#include "init-arch.h"
>
> -#include <string/strcasecmp.c>
>  #undef strcasecmp

Can't you remove this undef too?

> diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncase-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strncase-ppc64.c
> new file mode 100644
> index 0000000..3123965
> --- /dev/null
> +++ b/sysdeps/powerpc/powerpc64/multiarch/strncase-ppc64.c
> @@ -0,0 +1,25 @@
> +/* Multiarch strncasecmp for PPC64.
> +   Copyright (C) 2016 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
> +   <http://www.gnu.org/licenses/>.  */
> +
> +#include <string.h>
> +
> +extern __typeof (__strncasecmp) __strncasecmp_ppc attribute_hidden;

Likewise.

> diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncase.c b/sysdeps/powerpc/powerpc64/multiarch/strncase.c
> index 2729fce..7b8e7d3 100644
> --- a/sysdeps/powerpc/powerpc64/multiarch/strncase.c
> +++ b/sysdeps/powerpc/powerpc64/multiarch/strncase.c
> @@ -16,26 +16,22 @@
>     License along with the GNU C Library; if not, see
>     <http://www.gnu.org/licenses/>.  */
>
> -#if IS_IN (libc)
> -# include <string.h>
> -# define strncasecmp __strncasecmp_ppc
> -extern __typeof (__strncasecmp) __strncasecmp_ppc attribute_hidden;
> -extern __typeof (__strncasecmp) __strncasecmp_power7 attribute_hidden;
> -#endif
> +#include <string.h>
> +#include <shlib-compat.h>
> +#include "init-arch.h"
>
> -#include <string/strncase.c>
>  #undef strncasecmp

Likewise

LGTM after removing those lines.

-- 
Tulio Magno


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]