This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] powerpc: strcasecmp/strncasecmp optmization for power8
- From: "Tulio Magno Quites Machado Filho" <tuliom at linux dot vnet dot ibm dot com>
- To: Rajalakshmi Srinivasaraghavan <raji at linux dot vnet dot ibm dot com>, libc-alpha at sourceware dot org
- Cc:
- Date: Mon, 13 Jun 2016 16:13:45 -0300
- Subject: Re: [PATCH] powerpc: strcasecmp/strncasecmp optmization for power8
- Authentication-results: sourceware.org; auth=none
- References: <1461919871-30348-1-git-send-email-raji at linux dot vnet dot ibm dot com>
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