1
0
mirror of https://git.savannah.gnu.org/git/gnulib.git synced 2025-09-01 04:41:58 +03:00

strstr, strcasestr: replace on platforms with broken memchr

* modules/strstr: Split into...
* modules/strstr-simple: ...new module that does not care about
performance, but does care about glibc bug.
* m4/strstr.m4 (gl_FUNC_STRSTR): Split...
(gl_FUNC_STRSTR_SIMPLE): ...into new macro, which replaces strstr
if platform memchr is broken, per Debian bug 521737.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): React to broken
memchr.
* m4/memchr.m4 (gl_FUNC_MEMCHR): Only expand once.
* doc/posix-functions/strstr.texi (strstr): Document the fix.
* doc/glibc-functions/strcasestr.texi (strcasestr): Likewise.
* modules/mountlist (Depends-on): Add strstr-simple.
* modules/gen-uni-tables (Depends-on): Likewise.
* modules/argz (Depends-on): Add strstr.

Signed-off-by: Eric Blake <ebb9@byu.net>
This commit is contained in:
Eric Blake
2009-06-16 06:14:05 -06:00
parent ea5142f736
commit e3e47d1710
11 changed files with 93 additions and 21 deletions

View File

@@ -4,14 +4,23 @@
POSIX specification: @url{http://www.opengroup.org/onlinepubs/9699919799/functions/strstr.html}
Gnulib module: strstr
Gnulib module: strstr or strstr-simple
Portability problems fixed by Gnulib:
Portability problems fixed by either Gnulib module @code{strstr-simple}
or @code{strstr}:
@itemize
@item
This function can trigger memchr bugs on some platforms:
glibc 2.10.
@end itemize
Portability problems fixed by Gnulib @code{strstr}:
@itemize
@item
This function has quadratic instead of linear worst-case complexity on some
platforms:
glibc 2.8, MacOS X 10.3, FreeBSD 6.2, NetBSD 3.0, OpenBSD 4.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw.
glibc 2.8, MacOS X 10.3, FreeBSD 6.2, NetBSD 3.0, OpenBSD 4.0, AIX
5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw.
@end itemize
Portability problems not fixed by Gnulib: