[PATCH v2] Remove defines to builtins in string2.h
Florian Weimer
fweimer@redhat.com
Tue Nov 22 15:26:00 GMT 2016
On 11/22/2016 03:35 PM, Wilco Dijkstra wrote:
> As discussed in https://sourceware.org/ml/libc-alpha/2016-11/msg00625.html,
> for C90 functions there is no need to use define to use the GCC builtin as
> an optimization. Also other headers already ensure (most) non-C90 symbols
> are redirected to avoid name space clashes.
> -#ifndef _HAVE_STRING_ARCH_strchr
> -# define strchr(s, c) __builtin_strchr (s, c)
> -#endif
Please remove the definition of _HAVE_STRING_ARCH_strchr as well (from
sysdeps/x86/bits/string.h).
> -/* Copy SRC to DEST, returning pointer to final NUL byte. */
> -#ifdef __USE_GNU
> -# ifndef _HAVE_STRING_ARCH_stpcpy
> -# define __stpcpy(dest, src) __builtin_stpcpy (dest, src)
> -/* In glibc we use this function frequently but for namespace reasons
> - we have to use the name `__stpcpy'. */
> -# define stpcpy(dest, src) __stpcpy (dest, src)
> -# endif
> -#endif
I'm surprised to see stpcpy in this patch because the first paragraph
says this change is exclusively about C90 functions, and stpcpy isn't one.
> -/* Copy no more than N characters of SRC to DEST. */
> -#ifndef _HAVE_STRING_ARCH_strncpy
> -# define strncpy(dest, src, n) __builtin_strncpy (dest, src, n)
> -#endif
_HAVE_STRING_ARCH_strncpy needs removal.
> -#ifndef _HAVE_STRING_ARCH_strncat
> -# ifdef _USE_STRING_ARCH_strchr
These two need to be removed as well. I'm not listing the other feature
macros which can be removed.
> -#if !defined _HAVE_STRING_ARCH_strsep
> -# ifdef __USE_MISC
> -# define strsep(s, reject) __strsep (s, reject)
> -# endif
> -#endif
See above, not a C90 function.
Thanks,
Florian
More information about the Libc-alpha
mailing list