annotate m4/memmem.m4 @ 14434:7624b26aea3d

sys_socket, netdb: Document problem with socklen_t. * doc/posix-headers/sys_socket.texi: Mention lack of socklen_t on some platforms. * doc/posix-headers/netdb.texi: Likewise.
author Bruno Haible <bruno@clisp.org>
date Sat, 19 Mar 2011 13:39:12 +0100
parents 97fc9a21a8fb
children 577ff30eb284
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13935
0e43457abc1c memmem-simple: Stylistic changes.
Bruno Haible <bruno@clisp.org>
parents: 13934
diff changeset
1 # memmem.m4 serial 22
14079
97fc9a21a8fb maint: update almost all copyright ranges to include 2011
Jim Meyering <meyering@redhat.com>
parents: 13935
diff changeset
2 dnl Copyright (C) 2002-2004, 2007-2011 Free Software Foundation, Inc.
5611
87c42e194f4a Use an all-permissive copyright notice, recommended by RMS.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5310
diff changeset
3 dnl This file is free software; the Free Software Foundation
87c42e194f4a Use an all-permissive copyright notice, recommended by RMS.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5310
diff changeset
4 dnl gives unlimited permission to copy and/or distribute it,
87c42e194f4a Use an all-permissive copyright notice, recommended by RMS.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5310
diff changeset
5 dnl with or without modifications, as long as this notice is preserved.
5310
26382eb5dbd2 New module 'memmem', from Simon Josefsson.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6
13934
0e10c7f526c5 memmem: rearrange memmem and expand memmem-simple modules
Pádraig Brady <P@draigBrady.com>
parents: 13933
diff changeset
7 dnl Check that memmem is present and functional.
9591
83fd101f67f0 Add memmem-simple module.
Eric Blake <ebb9@byu.net>
parents: 9572
diff changeset
8 AC_DEFUN([gl_FUNC_MEMMEM_SIMPLE],
5310
26382eb5dbd2 New module 'memmem', from Simon Josefsson.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
9 [
26382eb5dbd2 New module 'memmem', from Simon Josefsson.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
10 dnl Persuade glibc <string.h> to declare memmem().
9209
5a0294ce5372 Track CVS Autoconf on AC_USE_SYSTEM_EXTENSIONS.
Eric Blake <ebb9@byu.net>
parents: 7982
diff changeset
11 AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
5310
26382eb5dbd2 New module 'memmem', from Simon Josefsson.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
12
7982
6b61aba76343 Enforce ordering constraints between gl_HEADER_STRING_H_DEFAULTS and the
Bruno Haible <bruno@clisp.org>
parents: 7944
diff changeset
13 AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
11007
f6cba5a556ce many *.m4 files: improve m4 quoting
Jim Meyering <meyering@redhat.com>
parents: 10189
diff changeset
14 AC_REPLACE_FUNCS([memmem])
f6cba5a556ce many *.m4 files: improve m4 quoting
Jim Meyering <meyering@redhat.com>
parents: 10189
diff changeset
15 AC_CHECK_DECLS_ONCE([memmem])
7944
a1d177cd9523 * doc/gnulib-tool.texi (Initial import): Update to match current
Paul Eggert <eggert@cs.ucla.edu>
parents: 5611
diff changeset
16 if test $ac_cv_have_decl_memmem = no; then
a1d177cd9523 * doc/gnulib-tool.texi (Initial import): Update to match current
Paul Eggert <eggert@cs.ucla.edu>
parents: 5611
diff changeset
17 HAVE_DECL_MEMMEM=0
13772
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
18 else
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
19 dnl Detect http://sourceware.org/bugzilla/show_bug.cgi?id=12092.
13934
0e10c7f526c5 memmem: rearrange memmem and expand memmem-simple modules
Pádraig Brady <P@draigBrady.com>
parents: 13933
diff changeset
20 dnl Also check that we handle empty needles correctly.
13772
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
21 AC_CACHE_CHECK([whether memmem works],
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
22 [gl_cv_func_memmem_works_always],
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
23 [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
24 #include <string.h> /* for memmem */
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
25 #define P "_EF_BF_BD"
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
26 #define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
27 #define NEEDLE P P P P P
13934
0e10c7f526c5 memmem: rearrange memmem and expand memmem-simple modules
Pádraig Brady <P@draigBrady.com>
parents: 13933
diff changeset
28 ]], [[
0e10c7f526c5 memmem: rearrange memmem and expand memmem-simple modules
Pádraig Brady <P@draigBrady.com>
parents: 13933
diff changeset
29 int result = 0;
0e10c7f526c5 memmem: rearrange memmem and expand memmem-simple modules
Pádraig Brady <P@draigBrady.com>
parents: 13933
diff changeset
30 if (memmem (HAYSTACK, strlen (HAYSTACK), NEEDLE, strlen (NEEDLE)))
0e10c7f526c5 memmem: rearrange memmem and expand memmem-simple modules
Pádraig Brady <P@draigBrady.com>
parents: 13933
diff changeset
31 result |= 1;
0e10c7f526c5 memmem: rearrange memmem and expand memmem-simple modules
Pádraig Brady <P@draigBrady.com>
parents: 13933
diff changeset
32 /* Check for empty needle behavior. */
0e10c7f526c5 memmem: rearrange memmem and expand memmem-simple modules
Pádraig Brady <P@draigBrady.com>
parents: 13933
diff changeset
33 {
13935
0e43457abc1c memmem-simple: Stylistic changes.
Bruno Haible <bruno@clisp.org>
parents: 13934
diff changeset
34 const char *haystack = "AAA";
0e43457abc1c memmem-simple: Stylistic changes.
Bruno Haible <bruno@clisp.org>
parents: 13934
diff changeset
35 if (memmem (haystack, 3, NULL, 0) != haystack)
13934
0e10c7f526c5 memmem: rearrange memmem and expand memmem-simple modules
Pádraig Brady <P@draigBrady.com>
parents: 13933
diff changeset
36 result |= 2;
0e10c7f526c5 memmem: rearrange memmem and expand memmem-simple modules
Pádraig Brady <P@draigBrady.com>
parents: 13933
diff changeset
37 }
0e10c7f526c5 memmem: rearrange memmem and expand memmem-simple modules
Pádraig Brady <P@draigBrady.com>
parents: 13933
diff changeset
38 return result;
13772
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
39 ]])],
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
40 [gl_cv_func_memmem_works_always=yes],
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
41 [gl_cv_func_memmem_works_always=no],
13935
0e43457abc1c memmem-simple: Stylistic changes.
Bruno Haible <bruno@clisp.org>
parents: 13934
diff changeset
42 [dnl glibc 2.9..2.12 and cygwin 1.7.7 have issue #12092 above.
0e43457abc1c memmem-simple: Stylistic changes.
Bruno Haible <bruno@clisp.org>
parents: 13934
diff changeset
43 dnl Also empty needles work on glibc >= 2.1 and cygwin >= 1.7.0.
13934
0e10c7f526c5 memmem: rearrange memmem and expand memmem-simple modules
Pádraig Brady <P@draigBrady.com>
parents: 13933
diff changeset
44 dnl uClibc is not affected, since it uses different source code.
0e10c7f526c5 memmem: rearrange memmem and expand memmem-simple modules
Pádraig Brady <P@draigBrady.com>
parents: 13933
diff changeset
45 dnl Assume that it works on all other platforms (even if not linear).
13772
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
46 AC_EGREP_CPP([Lucky user],
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
47 [
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
48 #ifdef __GNU_LIBRARY__
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
49 #include <features.h>
13934
0e10c7f526c5 memmem: rearrange memmem and expand memmem-simple modules
Pádraig Brady <P@draigBrady.com>
parents: 13933
diff changeset
50 #if ((__GLIBC__ == 2 && ((__GLIBC_MINOR > 0 && __GLIBC_MINOR__ < 9) \
0e10c7f526c5 memmem: rearrange memmem and expand memmem-simple modules
Pádraig Brady <P@draigBrady.com>
parents: 13933
diff changeset
51 || __GLIBC_MINOR__ > 12)) \
13935
0e43457abc1c memmem-simple: Stylistic changes.
Bruno Haible <bruno@clisp.org>
parents: 13934
diff changeset
52 || (__GLIBC__ > 2)) \
0e43457abc1c memmem-simple: Stylistic changes.
Bruno Haible <bruno@clisp.org>
parents: 13934
diff changeset
53 || defined __UCLIBC__
13772
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
54 Lucky user
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
55 #endif
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
56 #elif defined __CYGWIN__
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
57 #include <cygwin/version.h>
13774
e53ef64052ed cygwin: use more robust version check
Eric Blake <eblake@redhat.com>
parents: 13772
diff changeset
58 #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7)
13772
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
59 Lucky user
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
60 #endif
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
61 #else
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
62 Lucky user
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
63 #endif
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
64 ],
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
65 [gl_cv_func_memmem_works_always=yes],
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
66 [gl_cv_func_memmem_works_always="guessing no"])
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
67 ])
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
68 ])
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
69 if test "$gl_cv_func_memmem_works_always" != yes; then
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
70 REPLACE_MEMMEM=1
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
71 AC_LIBOBJ([memmem])
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
72 fi
9591
83fd101f67f0 Add memmem-simple module.
Eric Blake <ebb9@byu.net>
parents: 9572
diff changeset
73 fi
83fd101f67f0 Add memmem-simple module.
Eric Blake <ebb9@byu.net>
parents: 9572
diff changeset
74 gl_PREREQ_MEMMEM
83fd101f67f0 Add memmem-simple module.
Eric Blake <ebb9@byu.net>
parents: 9572
diff changeset
75 ]) # gl_FUNC_MEMMEM_SIMPLE
83fd101f67f0 Add memmem-simple module.
Eric Blake <ebb9@byu.net>
parents: 9572
diff changeset
76
13934
0e10c7f526c5 memmem: rearrange memmem and expand memmem-simple modules
Pádraig Brady <P@draigBrady.com>
parents: 13933
diff changeset
77 dnl Additionally, check that memmem has linear performance characteristics
9591
83fd101f67f0 Add memmem-simple module.
Eric Blake <ebb9@byu.net>
parents: 9572
diff changeset
78 AC_DEFUN([gl_FUNC_MEMMEM],
83fd101f67f0 Add memmem-simple module.
Eric Blake <ebb9@byu.net>
parents: 9572
diff changeset
79 [
83fd101f67f0 Add memmem-simple module.
Eric Blake <ebb9@byu.net>
parents: 9572
diff changeset
80 AC_REQUIRE([gl_FUNC_MEMMEM_SIMPLE])
13886
77796657c565 memmem: Fix autoconf test.
Bruno Haible <bruno@clisp.org>
parents: 13885
diff changeset
81 if test $HAVE_DECL_MEMMEM = 1 && test $REPLACE_MEMMEM = 0; then
9572
b3a856f09e7f Avoid quadratic system memmem.
Eric Blake <ebb9@byu.net>
parents: 9538
diff changeset
82 AC_CACHE_CHECK([whether memmem works in linear time],
13772
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
83 [gl_cv_func_memmem_works_fast],
9921
01cfd65cc7e0 Fix underquoting of AC_LANG_PROGRAM arguments.
Bruno Haible <bruno@clisp.org>
parents: 9596
diff changeset
84 [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
10189
2304e9103317 Work around environments that (stupidly) ignore SIGALRM.
Eric Blake <ebb9@byu.net>
parents: 10082
diff changeset
85 #include <signal.h> /* for signal */
9572
b3a856f09e7f Avoid quadratic system memmem.
Eric Blake <ebb9@byu.net>
parents: 9538
diff changeset
86 #include <string.h> /* for memmem */
b3a856f09e7f Avoid quadratic system memmem.
Eric Blake <ebb9@byu.net>
parents: 9538
diff changeset
87 #include <stdlib.h> /* for malloc */
b3a856f09e7f Avoid quadratic system memmem.
Eric Blake <ebb9@byu.net>
parents: 9538
diff changeset
88 #include <unistd.h> /* for alarm */
13611
06bf5f91b9df strstr, memmem, strcasestr: avoid leaked shell message
Eric Blake <eblake@redhat.com>
parents: 12559
diff changeset
89 static void quit (int sig) { exit (sig + 128); }
13918
d5a74c6ec06b Put more information about failed tests into the test return codes.
Bruno Haible <bruno@clisp.org>
parents: 13886
diff changeset
90 ]], [[
d5a74c6ec06b Put more information about failed tests into the test return codes.
Bruno Haible <bruno@clisp.org>
parents: 13886
diff changeset
91 int result = 0;
d5a74c6ec06b Put more information about failed tests into the test return codes.
Bruno Haible <bruno@clisp.org>
parents: 13886
diff changeset
92 size_t m = 1000000;
9572
b3a856f09e7f Avoid quadratic system memmem.
Eric Blake <ebb9@byu.net>
parents: 9538
diff changeset
93 char *haystack = (char *) malloc (2 * m + 1);
b3a856f09e7f Avoid quadratic system memmem.
Eric Blake <ebb9@byu.net>
parents: 9538
diff changeset
94 char *needle = (char *) malloc (m + 1);
b3a856f09e7f Avoid quadratic system memmem.
Eric Blake <ebb9@byu.net>
parents: 9538
diff changeset
95 /* Failure to compile this test due to missing alarm is okay,
b3a856f09e7f Avoid quadratic system memmem.
Eric Blake <ebb9@byu.net>
parents: 9538
diff changeset
96 since all such platforms (mingw) also lack memmem. */
13611
06bf5f91b9df strstr, memmem, strcasestr: avoid leaked shell message
Eric Blake <eblake@redhat.com>
parents: 12559
diff changeset
97 signal (SIGALRM, quit);
9572
b3a856f09e7f Avoid quadratic system memmem.
Eric Blake <ebb9@byu.net>
parents: 9538
diff changeset
98 alarm (5);
9591
83fd101f67f0 Add memmem-simple module.
Eric Blake <ebb9@byu.net>
parents: 9572
diff changeset
99 /* Check for quadratic performance. */
9572
b3a856f09e7f Avoid quadratic system memmem.
Eric Blake <ebb9@byu.net>
parents: 9538
diff changeset
100 if (haystack && needle)
b3a856f09e7f Avoid quadratic system memmem.
Eric Blake <ebb9@byu.net>
parents: 9538
diff changeset
101 {
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11007
diff changeset
102 memset (haystack, 'A', 2 * m);
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11007
diff changeset
103 haystack[2 * m] = 'B';
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11007
diff changeset
104 memset (needle, 'A', m);
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11007
diff changeset
105 needle[m] = 'B';
13918
d5a74c6ec06b Put more information about failed tests into the test return codes.
Bruno Haible <bruno@clisp.org>
parents: 13886
diff changeset
106 if (!memmem (haystack, 2 * m + 1, needle, m + 1))
d5a74c6ec06b Put more information about failed tests into the test return codes.
Bruno Haible <bruno@clisp.org>
parents: 13886
diff changeset
107 result |= 1;
9572
b3a856f09e7f Avoid quadratic system memmem.
Eric Blake <ebb9@byu.net>
parents: 9538
diff changeset
108 }
13918
d5a74c6ec06b Put more information about failed tests into the test return codes.
Bruno Haible <bruno@clisp.org>
parents: 13886
diff changeset
109 return result;
d5a74c6ec06b Put more information about failed tests into the test return codes.
Bruno Haible <bruno@clisp.org>
parents: 13886
diff changeset
110 ]])],
13772
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
111 [gl_cv_func_memmem_works_fast=yes], [gl_cv_func_memmem_works_fast=no],
13934
0e10c7f526c5 memmem: rearrange memmem and expand memmem-simple modules
Pádraig Brady <P@draigBrady.com>
parents: 13933
diff changeset
112 [dnl Only glibc >= 2.9 and cygwin > 1.7.0 are known to have a
0e10c7f526c5 memmem: rearrange memmem and expand memmem-simple modules
Pádraig Brady <P@draigBrady.com>
parents: 13933
diff changeset
113 dnl memmem that works in linear time.
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11007
diff changeset
114 AC_EGREP_CPP([Lucky user],
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11007
diff changeset
115 [
10081
ea9dd8bc5005 Update cross-compiling guess now that glibc 2.9 will have fast implementations.
Bruno Haible <bruno@clisp.org>
parents: 9921
diff changeset
116 #include <features.h>
ea9dd8bc5005 Update cross-compiling guess now that glibc 2.9 will have fast implementations.
Bruno Haible <bruno@clisp.org>
parents: 9921
diff changeset
117 #ifdef __GNU_LIBRARY__
13934
0e10c7f526c5 memmem: rearrange memmem and expand memmem-simple modules
Pádraig Brady <P@draigBrady.com>
parents: 13933
diff changeset
118 #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 9) || (__GLIBC__ > 2)) \
13885
87a95303747f Port to uClibc.
Bruno Haible <bruno@clisp.org>
parents: 13774
diff changeset
119 && !defined __UCLIBC__
10082
44e8848f6ce8 Extend previous patch to cygwin 1.7.0.
Eric Blake <ebb9@byu.net>
parents: 10081
diff changeset
120 Lucky user
44e8848f6ce8 Extend previous patch to cygwin 1.7.0.
Eric Blake <ebb9@byu.net>
parents: 10081
diff changeset
121 #endif
44e8848f6ce8 Extend previous patch to cygwin 1.7.0.
Eric Blake <ebb9@byu.net>
parents: 10081
diff changeset
122 #endif
44e8848f6ce8 Extend previous patch to cygwin 1.7.0.
Eric Blake <ebb9@byu.net>
parents: 10081
diff changeset
123 #ifdef __CYGWIN__
44e8848f6ce8 Extend previous patch to cygwin 1.7.0.
Eric Blake <ebb9@byu.net>
parents: 10081
diff changeset
124 #include <cygwin/version.h>
13934
0e10c7f526c5 memmem: rearrange memmem and expand memmem-simple modules
Pádraig Brady <P@draigBrady.com>
parents: 13933
diff changeset
125 #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 0)
10082
44e8848f6ce8 Extend previous patch to cygwin 1.7.0.
Eric Blake <ebb9@byu.net>
parents: 10081
diff changeset
126 Lucky user
10081
ea9dd8bc5005 Update cross-compiling guess now that glibc 2.9 will have fast implementations.
Bruno Haible <bruno@clisp.org>
parents: 9921
diff changeset
127 #endif
ea9dd8bc5005 Update cross-compiling guess now that glibc 2.9 will have fast implementations.
Bruno Haible <bruno@clisp.org>
parents: 9921
diff changeset
128 #endif
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11007
diff changeset
129 ],
13772
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
130 [gl_cv_func_memmem_works_fast=yes],
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
131 [gl_cv_func_memmem_works_fast="guessing no"])
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11007
diff changeset
132 ])
10081
ea9dd8bc5005 Update cross-compiling guess now that glibc 2.9 will have fast implementations.
Bruno Haible <bruno@clisp.org>
parents: 9921
diff changeset
133 ])
13772
1d8a613275c6 memmem, strstr, strcasestr: fix bug with long periodic needle
Eric Blake <eblake@redhat.com>
parents: 13611
diff changeset
134 if test "$gl_cv_func_memmem_works_fast" != yes; then
9538
43d9769bf4d0 Fix memmem to avoid O(n^2) worst-case complexity.
Eric Blake <ebb9@byu.net>
parents: 9209
diff changeset
135 REPLACE_MEMMEM=1
43d9769bf4d0 Fix memmem to avoid O(n^2) worst-case complexity.
Eric Blake <ebb9@byu.net>
parents: 9209
diff changeset
136 AC_LIBOBJ([memmem])
43d9769bf4d0 Fix memmem to avoid O(n^2) worst-case complexity.
Eric Blake <ebb9@byu.net>
parents: 9209
diff changeset
137 fi
7944
a1d177cd9523 * doc/gnulib-tool.texi (Initial import): Update to match current
Paul Eggert <eggert@cs.ucla.edu>
parents: 5611
diff changeset
138 fi
9591
83fd101f67f0 Add memmem-simple module.
Eric Blake <ebb9@byu.net>
parents: 9572
diff changeset
139 ]) # gl_FUNC_MEMMEM
5310
26382eb5dbd2 New module 'memmem', from Simon Josefsson.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
140
26382eb5dbd2 New module 'memmem', from Simon Josefsson.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
141 # Prerequisites of lib/memmem.c.
26382eb5dbd2 New module 'memmem', from Simon Josefsson.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
142 AC_DEFUN([gl_PREREQ_MEMMEM], [:])