Anyone object if I add:
2004-05-26 Jakub Jelinek <jakub@redhat.com>
* include/string.h (mempcpy, stpcpy): Add
libc_hidden_builtin_proto.
* string/bits/string2.h (memset): Disable macro for GCC 3.0+.
(__mempcpy): Use __builtin_mempcpy for GCC 3.4+.
(strchr): For GCC 3.2+, only use __rawmemchr if second argument
is
constant '\0' and first argument is not constant.
(__stpcpy): Use __builtin_stpcpy for GCC 3.4+.
(strncpy): Remove #ifdef _USE_STRING_ARCH_mempcpy variant.
For GCC 3.2+ use __builtin_strncpy.
(strncat): For GCC 3.2+ use __builtin_strncat.
(strcmp): For GCC 3.2+ use __builtin_strcmp if both arguments
are
constant.
(strcspn, strspn, strpbrk): For GCC 3.2+, use builtin function
if both arguments are constant.
(There's a follow up patch to this that should also be included for
completeness)
To glibc? Using the gcc builtins fixes a segfault on the Hurd where
threads are used in a statically linked executable. Like the root
filesystem. =)
I don't know enough about string handling in gcc to know for certain how
safe this is. I will cheerfully test on i386, sparc, ia64 and hppa to
make sure though.
(I'll do this if no objections by the end of OLS)
Tks,
Jeff Bailey
--
I never know what to expect when you respond to my postings. No insult
intended, you are merely a surprise :)
- Carlos O'Donnell
Attachment:
signature.asc
Description: This is a digitally signed message part