Simon Josefsson <simon <at> josefsson.org> writes:

> 
> > (remember, however, that the system memmem may be broken, as on
> > cygwin).
> 
> Did the old check find that brokenness?  Has this brokenness been
> discussed before, and was a m4 test to detect it produced?  I can't see
> anything in memmem.m4 about it now.

On cygwin 1.5.25-7 and earlier, memmem(ptr1,len,ptr2,0) returned NULL, not 
ptr1.  This has since been fixed in cygwin CVS (but unreleased); with that fix, 
cygwin is now in the same boat as glibc 2.6.1 (working, but quadratic).  This 
bug is detected by the following line in the run-time test, added when I first 
started touching memmem last month:

    return !result || !memmem ("a", 1, 0, 0);]])],

It's also documented in doc/functions/memmem.texi.

For cross-compiling, I would just blindly replace memmem, even when targeting 
glibc or other platform where the system memmem works, since that is easier 
than dragging in a dependency on AC_CANONICAL_TARGET and adding a case 
statement to distinguish known good systems.

-- 
Eric Blake




Reply via email to