vinted-memcached 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. checksums.yaml +7 -0
  2. data/BENCHMARKS +142 -0
  3. data/CHANGELOG +176 -0
  4. data/Gemfile +11 -0
  5. data/Gemfile.lock +45 -0
  6. data/LICENSE +184 -0
  7. data/Manifest +209 -0
  8. data/README.rdoc +124 -0
  9. data/Rakefile +134 -0
  10. data/TODO +1 -0
  11. data/ext/extconf-make.rb +25 -0
  12. data/ext/extconf.rb +78 -0
  13. data/ext/libmemcached-0.32/AUTHORS +7 -0
  14. data/ext/libmemcached-0.32/COPYING +32 -0
  15. data/ext/libmemcached-0.32/ChangeLog +303 -0
  16. data/ext/libmemcached-0.32/INSTALL +302 -0
  17. data/ext/libmemcached-0.32/Makefile.am +36 -0
  18. data/ext/libmemcached-0.32/Makefile.in +911 -0
  19. data/ext/libmemcached-0.32/NEWS +1 -0
  20. data/ext/libmemcached-0.32/README +33 -0
  21. data/ext/libmemcached-0.32/THANKS +14 -0
  22. data/ext/libmemcached-0.32/TODO +11 -0
  23. data/ext/libmemcached-0.32/aclocal.m4 +2108 -0
  24. data/ext/libmemcached-0.32/clients/Makefile.am +80 -0
  25. data/ext/libmemcached-0.32/clients/Makefile.in +773 -0
  26. data/ext/libmemcached-0.32/clients/client_options.h +32 -0
  27. data/ext/libmemcached-0.32/clients/execute.c +64 -0
  28. data/ext/libmemcached-0.32/clients/execute.h +5 -0
  29. data/ext/libmemcached-0.32/clients/generator.c +74 -0
  30. data/ext/libmemcached-0.32/clients/generator.h +20 -0
  31. data/ext/libmemcached-0.32/clients/memcat.c +178 -0
  32. data/ext/libmemcached-0.32/clients/memcp.c +251 -0
  33. data/ext/libmemcached-0.32/clients/memdump.c +170 -0
  34. data/ext/libmemcached-0.32/clients/memerror.c +80 -0
  35. data/ext/libmemcached-0.32/clients/memflush.c +143 -0
  36. data/ext/libmemcached-0.32/clients/memrm.c +160 -0
  37. data/ext/libmemcached-0.32/clients/memslap.c +441 -0
  38. data/ext/libmemcached-0.32/clients/memstat.c +326 -0
  39. data/ext/libmemcached-0.32/clients/utilities.c +207 -0
  40. data/ext/libmemcached-0.32/clients/utilities.h +41 -0
  41. data/ext/libmemcached-0.32/config/compile +143 -0
  42. data/ext/libmemcached-0.32/config/config.guess +1561 -0
  43. data/ext/libmemcached-0.32/config/config.rpath +666 -0
  44. data/ext/libmemcached-0.32/config/config.sub +1686 -0
  45. data/ext/libmemcached-0.32/config/depcomp +630 -0
  46. data/ext/libmemcached-0.32/config/install-sh +520 -0
  47. data/ext/libmemcached-0.32/config/ltmain.sh +9636 -0
  48. data/ext/libmemcached-0.32/config/missing +376 -0
  49. data/ext/libmemcached-0.32/config.h.in +254 -0
  50. data/ext/libmemcached-0.32/configure +23843 -0
  51. data/ext/libmemcached-0.32/configure.ac +120 -0
  52. data/ext/libmemcached-0.32/libmemcached/Makefile.am +111 -0
  53. data/ext/libmemcached-0.32/libmemcached/Makefile.in +1069 -0
  54. data/ext/libmemcached-0.32/libmemcached/byteorder.c +31 -0
  55. data/ext/libmemcached-0.32/libmemcached/common.h +189 -0
  56. data/ext/libmemcached-0.32/libmemcached/crc.c +86 -0
  57. data/ext/libmemcached-0.32/libmemcached/hsieh_hash.c +68 -0
  58. data/ext/libmemcached-0.32/libmemcached/jenkins_hash.c +213 -0
  59. data/ext/libmemcached-0.32/libmemcached/libmemcached.ver +1 -0
  60. data/ext/libmemcached-0.32/libmemcached/libmemcached_probes.d +30 -0
  61. data/ext/libmemcached-0.32/libmemcached/libmemcached_probes.h +82 -0
  62. data/ext/libmemcached-0.32/libmemcached/md5.c +354 -0
  63. data/ext/libmemcached-0.32/libmemcached/memcached/README.txt +7 -0
  64. data/ext/libmemcached-0.32/libmemcached/memcached/protocol_binary.h +385 -0
  65. data/ext/libmemcached-0.32/libmemcached/memcached.c +153 -0
  66. data/ext/libmemcached-0.32/libmemcached/memcached.h +305 -0
  67. data/ext/libmemcached-0.32/libmemcached/memcached.hpp +799 -0
  68. data/ext/libmemcached-0.32/libmemcached/memcached_allocators.c +72 -0
  69. data/ext/libmemcached-0.32/libmemcached/memcached_analyze.c +100 -0
  70. data/ext/libmemcached-0.32/libmemcached/memcached_auto.c +207 -0
  71. data/ext/libmemcached-0.32/libmemcached/memcached_behavior.c +290 -0
  72. data/ext/libmemcached-0.32/libmemcached/memcached_callback.c +175 -0
  73. data/ext/libmemcached-0.32/libmemcached/memcached_configure.h.in +23 -0
  74. data/ext/libmemcached-0.32/libmemcached/memcached_connect.c +371 -0
  75. data/ext/libmemcached-0.32/libmemcached/memcached_constants.h +146 -0
  76. data/ext/libmemcached-0.32/libmemcached/memcached_delete.c +0 -0
  77. data/ext/libmemcached-0.32/libmemcached/memcached_do.c +72 -0
  78. data/ext/libmemcached-0.32/libmemcached/memcached_dump.c +79 -0
  79. data/ext/libmemcached-0.32/libmemcached/memcached_exist.c +114 -0
  80. data/ext/libmemcached-0.32/libmemcached/memcached_exist.h +20 -0
  81. data/ext/libmemcached-0.32/libmemcached/memcached_fetch.c +102 -0
  82. data/ext/libmemcached-0.32/libmemcached/memcached_flush.c +89 -0
  83. data/ext/libmemcached-0.32/libmemcached/memcached_flush_buffers.c +23 -0
  84. data/ext/libmemcached-0.32/libmemcached/memcached_get.c +494 -0
  85. data/ext/libmemcached-0.32/libmemcached/memcached_get.h +87 -0
  86. data/ext/libmemcached-0.32/libmemcached/memcached_hash.c +252 -0
  87. data/ext/libmemcached-0.32/libmemcached/memcached_hosts.c +510 -0
  88. data/ext/libmemcached-0.32/libmemcached/memcached_internal.h +31 -0
  89. data/ext/libmemcached-0.32/libmemcached/memcached_io.c +594 -0
  90. data/ext/libmemcached-0.32/libmemcached/memcached_io.h +72 -0
  91. data/ext/libmemcached-0.32/libmemcached/memcached_key.c +28 -0
  92. data/ext/libmemcached-0.32/libmemcached/memcached_parse.c +74 -0
  93. data/ext/libmemcached-0.32/libmemcached/memcached_pool.h +38 -0
  94. data/ext/libmemcached-0.32/libmemcached/memcached_purge.c +76 -0
  95. data/ext/libmemcached-0.32/libmemcached/memcached_quit.c +75 -0
  96. data/ext/libmemcached-0.32/libmemcached/memcached_response.c +529 -0
  97. data/ext/libmemcached-0.32/libmemcached/memcached_result.c +57 -0
  98. data/ext/libmemcached-0.32/libmemcached/memcached_result.h +59 -0
  99. data/ext/libmemcached-0.32/libmemcached/memcached_sasl.c +225 -0
  100. data/ext/libmemcached-0.32/libmemcached/memcached_sasl.h +44 -0
  101. data/ext/libmemcached-0.32/libmemcached/memcached_server.c +159 -0
  102. data/ext/libmemcached-0.32/libmemcached/memcached_server.h +93 -0
  103. data/ext/libmemcached-0.32/libmemcached/memcached_stats.c +437 -0
  104. data/ext/libmemcached-0.32/libmemcached/memcached_storage.c +514 -0
  105. data/ext/libmemcached-0.32/libmemcached/memcached_storage.h +107 -0
  106. data/ext/libmemcached-0.32/libmemcached/memcached_strerror.c +92 -0
  107. data/ext/libmemcached-0.32/libmemcached/memcached_string.c +138 -0
  108. data/ext/libmemcached-0.32/libmemcached/memcached_string.h +53 -0
  109. data/ext/libmemcached-0.32/libmemcached/memcached_touch.c +60 -0
  110. data/ext/libmemcached-0.32/libmemcached/memcached_touch.h +31 -0
  111. data/ext/libmemcached-0.32/libmemcached/memcached_types.h +44 -0
  112. data/ext/libmemcached-0.32/libmemcached/memcached_util.h +15 -0
  113. data/ext/libmemcached-0.32/libmemcached/memcached_verbosity.c +36 -0
  114. data/ext/libmemcached-0.32/libmemcached/memcached_version.c +112 -0
  115. data/ext/libmemcached-0.32/libmemcached/memcached_watchpoint.h +38 -0
  116. data/ext/libmemcached-0.32/libmemcached/murmur_hash.c +76 -0
  117. data/ext/libmemcached-0.32/libmemcached/visibility.h +51 -0
  118. data/ext/libmemcached-0.32/libmemcachedutil/Makefile.am +11 -0
  119. data/ext/libmemcached-0.32/libmemcachedutil/Makefile.in +604 -0
  120. data/ext/libmemcached-0.32/libmemcachedutil/libmemcachedutil.ver +1 -0
  121. data/ext/libmemcached-0.32/libmemcachedutil/memcached_pool.c +170 -0
  122. data/ext/libmemcached-0.32/m4/ac_cxx_compile_stdcxx_0x.m4 +103 -0
  123. data/ext/libmemcached-0.32/m4/ac_cxx_header_stdcxx_98.m4 +67 -0
  124. data/ext/libmemcached-0.32/m4/acx_pthread.m4 +276 -0
  125. data/ext/libmemcached-0.32/m4/byteorder.m4 +40 -0
  126. data/ext/libmemcached-0.32/m4/deprecated.m4 +17 -0
  127. data/ext/libmemcached-0.32/m4/enable_utillib.m4 +16 -0
  128. data/ext/libmemcached-0.32/m4/extensions.m4 +94 -0
  129. data/ext/libmemcached-0.32/m4/hsieh.m4 +18 -0
  130. data/ext/libmemcached-0.32/m4/lib-prefix.m4 +221 -0
  131. data/ext/libmemcached-0.32/m4/libtool.m4 +7831 -0
  132. data/ext/libmemcached-0.32/m4/ltoptions.m4 +369 -0
  133. data/ext/libmemcached-0.32/m4/ltsugar.m4 +123 -0
  134. data/ext/libmemcached-0.32/m4/ltversion.m4 +23 -0
  135. data/ext/libmemcached-0.32/m4/lt~obsolete.m4 +98 -0
  136. data/ext/libmemcached-0.32/m4/memcached.m4 +30 -0
  137. data/ext/libmemcached-0.32/m4/pandora_64bit.m4 +55 -0
  138. data/ext/libmemcached-0.32/m4/pandora_canonical.m4 +151 -0
  139. data/ext/libmemcached-0.32/m4/pandora_check_compiler_version.m4 +37 -0
  140. data/ext/libmemcached-0.32/m4/pandora_check_cxx_standard.m4 +16 -0
  141. data/ext/libmemcached-0.32/m4/pandora_enable_dtrace.m4 +41 -0
  142. data/ext/libmemcached-0.32/m4/pandora_ensure_gcc_version.m4 +36 -0
  143. data/ext/libmemcached-0.32/m4/pandora_have_better_malloc.m4 +54 -0
  144. data/ext/libmemcached-0.32/m4/pandora_have_sasl.m4 +133 -0
  145. data/ext/libmemcached-0.32/m4/pandora_header_assert.m4 +23 -0
  146. data/ext/libmemcached-0.32/m4/pandora_libtool.m4 +15 -0
  147. data/ext/libmemcached-0.32/m4/pandora_optimize.m4 +79 -0
  148. data/ext/libmemcached-0.32/m4/pandora_shared_ptr.m4 +56 -0
  149. data/ext/libmemcached-0.32/m4/pandora_vc_build.m4 +32 -0
  150. data/ext/libmemcached-0.32/m4/pandora_warnings.m4 +262 -0
  151. data/ext/libmemcached-0.32/m4/pod2man.m4 +7 -0
  152. data/ext/libmemcached-0.32/m4/protocol_binary.m4 +23 -0
  153. data/ext/libmemcached-0.32/m4/setsockopt.m4 +57 -0
  154. data/ext/libmemcached-0.32/m4/visibility.m4 +52 -0
  155. data/ext/libmemcached-0.32/support/Makefile.am +4 -0
  156. data/ext/libmemcached-0.32/support/Makefile.in +487 -0
  157. data/ext/libmemcached-0.32/support/libmemcached-fc.spec.in +105 -0
  158. data/ext/libmemcached-0.32/support/libmemcached.pc.in +10 -0
  159. data/ext/libmemcached-0.32/support/libmemcached.spec +105 -0
  160. data/ext/libmemcached-0.32/support/libmemcached.spec.in +105 -0
  161. data/ext/libmemcached-0.32/support/set_benchmark.sh +5 -0
  162. data/ext/libmemcached-0.32/tests/Makefile.am +113 -0
  163. data/ext/libmemcached-0.32/tests/Makefile.in +762 -0
  164. data/ext/libmemcached-0.32/tests/atomsmasher.c +245 -0
  165. data/ext/libmemcached-0.32/tests/function.c +4904 -0
  166. data/ext/libmemcached-0.32/tests/ketama_test_cases.h +108 -0
  167. data/ext/libmemcached-0.32/tests/output.cmp +7 -0
  168. data/ext/libmemcached-0.32/tests/output.res +7 -0
  169. data/ext/libmemcached-0.32/tests/output2.res +46 -0
  170. data/ext/libmemcached-0.32/tests/plus.cpp +293 -0
  171. data/ext/libmemcached-0.32/tests/r/memcat.res +19 -0
  172. data/ext/libmemcached-0.32/tests/r/memcp.res +27 -0
  173. data/ext/libmemcached-0.32/tests/r/memrm.res +19 -0
  174. data/ext/libmemcached-0.32/tests/r/memslap.res +33 -0
  175. data/ext/libmemcached-0.32/tests/r/memstat.res +33 -0
  176. data/ext/libmemcached-0.32/tests/server.c +118 -0
  177. data/ext/libmemcached-0.32/tests/server.h +25 -0
  178. data/ext/libmemcached-0.32/tests/start.c +16 -0
  179. data/ext/libmemcached-0.32/tests/t/memcat.test +4 -0
  180. data/ext/libmemcached-0.32/tests/t/memcp.test +3 -0
  181. data/ext/libmemcached-0.32/tests/t/memrm.test +3 -0
  182. data/ext/libmemcached-0.32/tests/t/memslap.test +5 -0
  183. data/ext/libmemcached-0.32/tests/t/memstat.test +3 -0
  184. data/ext/libmemcached-0.32/tests/test.c +137 -0
  185. data/ext/libmemcached-0.32/tests/test.h +46 -0
  186. data/ext/libmemcached-0.32/tests/udp.c +76 -0
  187. data/ext/rlibmemcached.i +258 -0
  188. data/ext/rlibmemcached_wrap.c +13917 -0
  189. data/lib/memcached/auth.rb +16 -0
  190. data/lib/memcached/behaviors.rb +78 -0
  191. data/lib/memcached/exceptions.rb +84 -0
  192. data/lib/memcached/experimental.rb +48 -0
  193. data/lib/memcached/marshal_codec.rb +10 -0
  194. data/lib/memcached/memcached.rb +732 -0
  195. data/lib/memcached/rails.rb +250 -0
  196. data/lib/memcached.rb +33 -0
  197. data/memcached.gemspec +0 -0
  198. data/test/profile/benchmark.rb +280 -0
  199. data/test/profile/c_profiler.rb +14 -0
  200. data/test/profile/exercise.rb +185 -0
  201. data/test/profile/rb_profiler.rb +21 -0
  202. data/test/profile/valgrind.rb +10 -0
  203. data/test/setup.rb +30 -0
  204. data/test/teardown.rb +0 -0
  205. data/test/test_helper.rb +18 -0
  206. data/test/unit/binding_test.rb +8 -0
  207. data/test/unit/memcached_experimental_test.rb +272 -0
  208. data/test/unit/memcached_test.rb +1487 -0
  209. data/test/unit/rails_test.rb +330 -0
  210. metadata +336 -0
@@ -0,0 +1,262 @@
1
+ dnl Copyright (C) 2009 Sun Microsystems
2
+ dnl This file is free software; Sun Microsystems
3
+ dnl gives unlimited permission to copy and/or distribute it,
4
+ dnl with or without modifications, as long as this notice is preserved.
5
+
6
+ dnl AC_PANDORA_WARNINGS([less-warnings|warnings-always-on])
7
+ dnl less-warnings turn on a limited set of warnings
8
+ dnl warnings-always-on always set warnings=error regardless of tarball/vc
9
+
10
+ dnl @TODO: remove less-warnings option as soon as Drizzle is clean enough to
11
+ dnl allow it
12
+
13
+ AC_DEFUN([PANDORA_WARNINGS],[
14
+ m4_define([PW_LESS_WARNINGS],[no])
15
+ m4_define([PW_WARN_ALWAYS_ON],[no])
16
+ ifdef([m4_define],,[define([m4_define], defn([define]))])
17
+ ifdef([m4_undefine],,[define([m4_undefine], defn([undefine]))])
18
+ m4_foreach([pw_arg],[$*],[
19
+ m4_case(pw_arg,
20
+ [less-warnings],[
21
+ m4_undefine([PW_LESS_WARNINGS])
22
+ m4_define([PW_LESS_WARNINGS],[yes])
23
+ ],
24
+ [warnings-always-on],[
25
+ m4_undefine([PW_WARN_ALWAYS_ON])
26
+ m4_define([PW_WARN_ALWAYS_ON],[yes])
27
+ ])
28
+ ])
29
+
30
+ AC_REQUIRE([PANDORA_BUILDING_FROM_VC])
31
+ m4_if(PW_WARN_ALWAYS_ON, [yes],
32
+ [ac_cv_warnings_as_errors=yes],
33
+ AS_IF([test "$ac_cv_building_from_vc" = "yes"],
34
+ [ac_cv_warnings_as_errors=yes],
35
+ [ac_cv_warnings_as_errors=no]))
36
+
37
+ AC_ARG_ENABLE([profiling],
38
+ [AS_HELP_STRING([--enable-profiling],
39
+ [Toggle profiling @<:@default=off@:>@])],
40
+ [ac_profiling="$enableval"],
41
+ [ac_profiling="no"])
42
+
43
+ AC_ARG_ENABLE([coverage],
44
+ [AS_HELP_STRING([--enable-coverage],
45
+ [Toggle coverage @<:@default=off@:>@])],
46
+ [ac_coverage="$enableval"],
47
+ [ac_coverage="no"])
48
+
49
+ AS_IF([test "$GCC" = "yes"],[
50
+
51
+ AS_IF([test "$ac_profiling" = "yes"],[
52
+ CC_PROFILING="-pg"
53
+ save_LIBS="${LIBS}"
54
+ LIBS=""
55
+ AC_CHECK_LIB(c_p, read)
56
+ LIBC_P="${LIBS}"
57
+ LIBS="${save_LIBS}"
58
+ AC_SUBST(LIBC_P)
59
+ ],[
60
+ CC_PROFILING=" "
61
+ ])
62
+
63
+ AS_IF([test "$ac_coverage" = "yes"],
64
+ [CC_COVERAGE="-fprofile-arcs -ftest-coverage"])
65
+
66
+ AS_IF([test "$ac_cv_warnings_as_errors" = "yes"],
67
+ [W_FAIL="-Werror"])
68
+
69
+ AC_CACHE_CHECK([whether it is safe to use -fdiagnostics-show-option],
70
+ [ac_cv_safe_to_use_fdiagnostics_show_option_],
71
+ [save_CFLAGS="$CFLAGS"
72
+ CFLAGS="-fdiagnostics-show-option ${AM_CFLAGS} ${CFLAGS}"
73
+ AC_COMPILE_IFELSE(
74
+ [AC_LANG_PROGRAM([],[])],
75
+ [ac_cv_safe_to_use_fdiagnostics_show_option_=yes],
76
+ [ac_cv_safe_to_use_fdiagnostics_show_option_=no])
77
+ CFLAGS="$save_CFLAGS"])
78
+
79
+ AS_IF([test "$ac_cv_safe_to_use_fdiagnostics_show_option_" = "yes"],
80
+ [
81
+ F_DIAGNOSTICS_SHOW_OPTION="-fdiagnostics-show-option"
82
+ ])
83
+
84
+ AC_CACHE_CHECK([whether it is safe to use -Wconversion],
85
+ [ac_cv_safe_to_use_wconversion_],
86
+ [save_CFLAGS="$CFLAGS"
87
+ dnl Use -Werror here instead of ${W_FAIL} so that we don't spew
88
+ dnl conversion warnings to all the tarball folks
89
+ CFLAGS="-Wconversion -Werror -pedantic ${AM_CFLAGS} ${CFLAGS}"
90
+ AC_COMPILE_IFELSE(
91
+ [AC_LANG_PROGRAM([[
92
+ #include <stdbool.h>
93
+ void foo(bool a)
94
+ {
95
+ (void)a;
96
+ }
97
+ ]],[[
98
+ foo(0);
99
+ ]])],
100
+ [ac_cv_safe_to_use_wconversion_=yes],
101
+ [ac_cv_safe_to_use_wconversion_=no])
102
+ CFLAGS="$save_CFLAGS"])
103
+
104
+ AS_IF([test "$ac_cv_safe_to_use_wconversion_" = "yes"],
105
+ [W_CONVERSION="-Wconversion"
106
+ AC_CACHE_CHECK([whether it is safe to use -Wconversion with htons],
107
+ [ac_cv_safe_to_use_Wconversion_],
108
+ [save_CFLAGS="$CFLAGS"
109
+ dnl Use -Werror here instead of ${W_FAIL} so that we don't spew
110
+ dnl conversion warnings to all the tarball folks
111
+ CFLAGS="-Wconversion -Werror -pedantic ${AM_CFLAGS} ${CFLAGS}"
112
+ AC_COMPILE_IFELSE(
113
+ [AC_LANG_PROGRAM(
114
+ [[
115
+ #include <netinet/in.h>
116
+ ]],[[
117
+ uint16_t x= htons(80);
118
+ ]])],
119
+ [ac_cv_safe_to_use_Wconversion_=yes],
120
+ [ac_cv_safe_to_use_Wconversion_=no])
121
+ CFLAGS="$save_CFLAGS"])
122
+
123
+ AS_IF([test "$ac_cv_safe_to_use_Wconversion_" = "no"],
124
+ [NO_CONVERSION="-Wno-conversion"])
125
+ ])
126
+
127
+ NO_STRICT_ALIASING="-fno-strict-aliasing -Wno-strict-aliasing"
128
+ NO_SHADOW="-Wno-shadow"
129
+
130
+ AS_IF([test "$INTELCC" = "yes"],[
131
+ m4_if(PW_LESS_WARNINGS,[no],[
132
+ BASE_WARNINGS="-w1 -Wall -Werror -Wcheck -Wformat -Wp64 -Woverloaded-virtual -Wcast-qual"
133
+ ],[
134
+ BASE_WARNINGS="-w1 -Wall -Wcheck -Wformat -Wp64 -Woverloaded-virtual -Wcast-qual -diag-disable 981"
135
+ ])
136
+ CC_WARNINGS="${BASE_WARNINGS}"
137
+ CXX_WARNINGS="${BASE_WARNINGS}"
138
+ ],[
139
+ m4_if(PW_LESS_WARNINGS,[no],[
140
+ BASE_WARNINGS_FULL="-Wformat=2 ${W_CONVERSION} -Wstrict-aliasing"
141
+ CC_WARNINGS_FULL="-Wswitch-default -Wswitch-enum -Wwrite-strings"
142
+ CXX_WARNINGS_FULL="-Weffc++ -Wold-style-cast"
143
+ ],[
144
+ BASE_WARNINGS_FULL="-Wformat ${NO_STRICT_ALIASING}"
145
+ ])
146
+
147
+ AS_IF([test "${ac_cv_assert}" = "no"],
148
+ [NO_UNUSED="-Wno-unused-variable -Wno-unused-parameter"])
149
+
150
+ BASE_WARNINGS="${W_FAIL} -pedantic -Wall -Wextra -Wundef -Wshadow ${NO_UNUSED} ${F_DIAGNOSTICS_SHOW_OPTION} ${CFLAG_VISIBILITY} ${BASE_WARNINGS_FULL}"
151
+ CC_WARNINGS="${BASE_WARNINGS} -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align ${CC_WARNINGS_FULL}"
152
+ CXX_WARNINGS="${BASE_WARNINGS} -Woverloaded-virtual -Wnon-virtual-dtor -Wctor-dtor-privacy -Wno-long-long ${CXX_WARNINGS_FULL}"
153
+
154
+ AC_CACHE_CHECK([whether it is safe to use -Wmissing-declarations from C++],
155
+ [ac_cv_safe_to_use_Wmissing_declarations_],
156
+ [AC_LANG_PUSH(C++)
157
+ save_CXXFLAGS="$CXXFLAGS"
158
+ CXXFLAGS="-Werror -pedantic -Wmissing-declarations ${AM_CXXFLAGS}"
159
+ AC_COMPILE_IFELSE([
160
+ AC_LANG_PROGRAM(
161
+ [[
162
+ #include <stdio.h>
163
+ ]], [[]])
164
+ ],
165
+ [ac_cv_safe_to_use_Wmissing_declarations_=yes],
166
+ [ac_cv_safe_to_use_Wmissing_declarations_=no])
167
+ CXXFLAGS="$save_CXXFLAGS"
168
+ AC_LANG_POP()
169
+ ])
170
+ AS_IF([test "$ac_cv_safe_to_use_Wmissing_declarations_" = "yes"],
171
+ [CXX_WARNINGS="${CXX_WARNINGS} -Wmissing-declarations"])
172
+
173
+ AC_CACHE_CHECK([whether it is safe to use -Wlogical-op],
174
+ [ac_cv_safe_to_use_Wlogical_op_],
175
+ [save_CFLAGS="$CFLAGS"
176
+ CFLAGS="${W_FAIL} -pedantic -Wlogical-op ${AM_CFLAGS} ${CFLAGS}"
177
+ AC_COMPILE_IFELSE([
178
+ AC_LANG_PROGRAM(
179
+ [[
180
+ #include <stdio.h>
181
+ ]], [[]])
182
+ ],
183
+ [ac_cv_safe_to_use_Wlogical_op_=yes],
184
+ [ac_cv_safe_to_use_Wlogical_op_=no])
185
+ CFLAGS="$save_CFLAGS"])
186
+ AS_IF([test "$ac_cv_safe_to_use_Wlogical_op_" = "yes"],
187
+ [CC_WARNINGS="${CC_WARNINGS} -Wlogical-op"])
188
+
189
+ AC_CACHE_CHECK([whether it is safe to use -Wredundant-decls from C++],
190
+ [ac_cv_safe_to_use_Wredundant_decls_],
191
+ [AC_LANG_PUSH(C++)
192
+ save_CXXFLAGS="${CXXFLAGS}"
193
+ CXXFLAGS="${W_FAIL} -pedantic -Wredundant-decls ${AM_CXXFLAGS}"
194
+ AC_COMPILE_IFELSE(
195
+ [AC_LANG_PROGRAM([
196
+ template <typename E> struct C { void foo(); };
197
+ template <typename E> void C<E>::foo() { }
198
+ template <> void C<int>::foo();
199
+ AC_INCLUDES_DEFAULT])],
200
+ [ac_cv_safe_to_use_Wredundant_decls_=yes],
201
+ [ac_cv_safe_to_use_Wredundant_decls_=no])
202
+ CXXFLAGS="${save_CXXFLAGS}"
203
+ AC_LANG_POP()])
204
+ AS_IF([test "$ac_cv_safe_to_use_Wredundant_decls_" = "yes"],
205
+ [CXX_WARNINGS="${CXX_WARNINGS} -Wredundant-decls"],
206
+ [CXX_WARNINGS="${CXX_WARNINGS} -Wno-redundant-decls"])
207
+
208
+ NO_REDUNDANT_DECLS="-Wno-redundant-decls"
209
+ PROTOSKIP_WARNINGS="-Wno-effc++ -Wno-shadow"
210
+
211
+ ])
212
+ ])
213
+
214
+ AS_IF([test "$SUNCC" = "yes"],[
215
+
216
+ AS_IF([test "$ac_profiling" = "yes"],
217
+ [CC_PROFILING="-xinstrument=datarace"])
218
+
219
+ AS_IF([test "$ac_cv_warnings_as_errors" = "yes"],
220
+ [W_FAIL="-errwarn=%all"])
221
+
222
+ AC_CACHE_CHECK([whether E_PASTE_RESULT_NOT_TOKEN is usable],
223
+ [ac_cv_paste_result],
224
+ [
225
+ save_CFLAGS="${CFLAGS}"
226
+ CFLAGS="-errwarn=%all -erroff=E_PASTE_RESULT_NOT_TOKEN ${CFLAGS}"
227
+ AC_COMPILE_IFELSE(
228
+ [AC_LANG_PROGRAM([
229
+ AC_INCLUDES_DEFAULT
230
+ ],[
231
+ int x= 0;])],
232
+ [ac_cv_paste_result=yes],
233
+ [ac_cv_paste_result=no])
234
+ CFLAGS="${save_CFLAGS}"
235
+ ])
236
+ AS_IF([test $ac_cv_paste_result = yes],
237
+ [W_PASTE_RESULT=",E_PASTE_RESULT_NOT_TOKEN"])
238
+
239
+
240
+ m4_if(PW_LESS_WARNINGS, [no],[
241
+ CC_WARNINGS_FULL="-erroff=E_INTEGER_OVERFLOW_DETECTED${W_PASTE_RESULT}"
242
+ CXX_WARNINGS_FULL="-erroff=inllargeuse"
243
+ ],[
244
+ CC_WARNINGS_FULL="-erroff=E_ATTRIBUTE_NOT_VAR"
245
+ CXX_WARNINGS_FULL="-erroff=attrskipunsup,doubunder,reftotemp,inllargeuse,truncwarn1,signextwarn,inllargeint"
246
+ ])
247
+
248
+ CC_WARNINGS="-v -errtags=yes ${W_FAIL} ${CC_WARNINGS_FULL}"
249
+ CXX_WARNINGS="+w +w2 -xwe -xport64 -errtags=yes ${CXX_WARNINGS_FULL} ${W_FAIL}"
250
+ PROTOSKIP_WARNINGS="-erroff=attrskipunsup,doubunder,reftotemp,wbadinitl,identexpected,inllargeuse,truncwarn1,signextwarn"
251
+ NO_UNREACHED="-erroff=E_STATEMENT_NOT_REACHED"
252
+
253
+ ])
254
+
255
+ AC_SUBST(NO_CONVERSION)
256
+ AC_SUBST(NO_REDUNDANT_DECLS)
257
+ AC_SUBST(NO_UNREACHED)
258
+ AC_SUBST(NO_SHADOW)
259
+ AC_SUBST(NO_STRICT_ALIASING)
260
+ AC_SUBST(PROTOSKIP_WARNINGS)
261
+
262
+ ])
@@ -0,0 +1,7 @@
1
+ AC_DEFUN([REQUIRE_POD2MAN],[
2
+ AC_PATH_PROG([POD2MAN], [pod2man],
3
+ "no", [$PATH:/usr/bin:/usr/local/bin:/usr/perl5/bin])
4
+ AS_IF([test "x$POD2MAN" = "xno"],
5
+ AC_MSG_ERROR(["Could not find pod2man anywhere in path"]))
6
+ AC_SUBST(POD2MAN)
7
+ ])
@@ -0,0 +1,23 @@
1
+ dnl ---------------------------------------------------------------------------
2
+ dnl Macro: PROTOCOL_BINARY_TEST
3
+ dnl ---------------------------------------------------------------------------
4
+ AC_DEFUN([PROTOCOL_BINARY_TEST],
5
+ [AC_LANG_PUSH([C])
6
+ save_CFLAGS="$CFLAGS"
7
+ CFLAGS="$CFLAGS -I${srcdir}"
8
+ AC_RUN_IFELSE([
9
+ AC_LANG_PROGRAM([[
10
+ #include "libmemcached/memcached/protocol_binary.h"
11
+ ]],[[
12
+ protocol_binary_request_set request;
13
+ if (sizeof(request) != sizeof(request.bytes)) {
14
+ return 1;
15
+ }
16
+ ]])],, AC_MSG_ERROR([Unsupported struct padding done by compiler.]))
17
+ CFLAGS="$save_CFLAGS"
18
+ AC_LANG_POP
19
+ ])
20
+
21
+ dnl ---------------------------------------------------------------------------
22
+ dnl End Macro: PROTOCOL_BINARY_TEST
23
+ dnl ---------------------------------------------------------------------------
@@ -0,0 +1,57 @@
1
+ dnl ---------------------------------------------------------------------------
2
+ dnl Macro: SETSOCKOPT_SANITY
3
+ dnl ---------------------------------------------------------------------------
4
+ AC_DEFUN([SETSOCKOPT_SANITY],[
5
+ AC_LANG_PUSH([C])
6
+ AC_RUN_IFELSE([
7
+ AC_LANG_PROGRAM([[
8
+ #include <sys/types.h>
9
+ #include <sys/socket.h>
10
+ #include <time.h>
11
+ #include <sys/time.h>
12
+ #include <errno.h>
13
+ ]],[[
14
+ int sock = socket(AF_INET, SOCK_STREAM, 0);
15
+ struct timeval waittime;
16
+
17
+ waittime.tv_sec= 0;
18
+ waittime.tv_usec= 500;
19
+
20
+ if (setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO,
21
+ &waittime, (socklen_t)sizeof(struct timeval)) == -1) {
22
+ if (errno == ENOPROTOOPT) {
23
+ return 1;
24
+ }
25
+ }
26
+ return 0;
27
+ ]])],
28
+ [AC_DEFINE(HAVE_SNDTIMEO, 1, [Define to 1 if you have a working SO_SNDTIMEO])])
29
+
30
+ AC_RUN_IFELSE([
31
+ AC_LANG_PROGRAM([[
32
+ #include <sys/types.h>
33
+ #include <sys/socket.h>
34
+ #include <time.h>
35
+ #include <sys/time.h>
36
+ #include <errno.h>
37
+ ]],[[
38
+ int sock = socket(AF_INET, SOCK_STREAM, 0);
39
+ struct timeval waittime;
40
+
41
+ waittime.tv_sec= 0;
42
+ waittime.tv_usec= 500;
43
+
44
+ if (setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO,
45
+ &waittime, (socklen_t)sizeof(struct timeval)) == -1) {
46
+ if (errno == ENOPROTOOPT) {
47
+ return 1;
48
+ }
49
+ }
50
+ return 0;
51
+ ]])], [AC_DEFINE(HAVE_RCVTIMEO, 1, [Define to 1 if you have a working SO_RCVTIMEO])])
52
+
53
+ AC_LANG_POP
54
+ ])
55
+ dnl ---------------------------------------------------------------------------
56
+ dnl End Macro: SETSOCKOPT_SANITY
57
+ dnl ---------------------------------------------------------------------------
@@ -0,0 +1,52 @@
1
+ # visibility.m4 serial 2 (gettext-0.18)
2
+ dnl Copyright (C) 2005, 2008 Free Software Foundation, Inc.
3
+ dnl This file is free software; the Free Software Foundation
4
+ dnl gives unlimited permission to copy and/or distribute it,
5
+ dnl with or without modifications, as long as this notice is preserved.
6
+
7
+ dnl From Bruno Haible.
8
+
9
+ dnl Tests whether the compiler supports the command-line option
10
+ dnl -fvisibility=hidden and the function and variable attributes
11
+ dnl __attribute__((__visibility__("hidden"))) and
12
+ dnl __attribute__((__visibility__("default"))).
13
+ dnl Does *not* test for __visibility__("protected") - which has tricky
14
+ dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on
15
+ dnl MacOS X.
16
+ dnl Does *not* test for __visibility__("internal") - which has processor
17
+ dnl dependent semantics.
18
+ dnl Does *not* test for #pragma GCC visibility push(hidden) - which is
19
+ dnl "really only recommended for legacy code".
20
+ dnl Set the variable CFLAG_VISIBILITY.
21
+ dnl Defines and sets the variable HAVE_VISIBILITY.
22
+
23
+ AC_DEFUN([gl_VISIBILITY],
24
+ [
25
+ AC_REQUIRE([AC_PROG_CC])
26
+ CFLAG_VISIBILITY=
27
+ HAVE_VISIBILITY=0
28
+ if test -n "$GCC"; then
29
+ AC_MSG_CHECKING([for simple visibility declarations])
30
+ AC_CACHE_VAL([gl_cv_cc_visibility], [
31
+ gl_save_CFLAGS="$CFLAGS"
32
+ CFLAGS="$CFLAGS -fvisibility=hidden"
33
+ AC_TRY_COMPILE(
34
+ [extern __attribute__((__visibility__("hidden"))) int hiddenvar;
35
+ extern __attribute__((__visibility__("default"))) int exportedvar;
36
+ extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);
37
+ extern __attribute__((__visibility__("default"))) int exportedfunc (void);],
38
+ [],
39
+ [gl_cv_cc_visibility=yes],
40
+ [gl_cv_cc_visibility=no])
41
+ CFLAGS="$gl_save_CFLAGS"])
42
+ AC_MSG_RESULT([$gl_cv_cc_visibility])
43
+ if test $gl_cv_cc_visibility = yes; then
44
+ CFLAG_VISIBILITY="-fvisibility=hidden"
45
+ HAVE_VISIBILITY=1
46
+ fi
47
+ fi
48
+ AC_SUBST([CFLAG_VISIBILITY])
49
+ AC_SUBST([HAVE_VISIBILITY])
50
+ AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY],
51
+ [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.])
52
+ ])
@@ -0,0 +1,4 @@
1
+ EXTRA_DIST = libmemcached.spec set_benchmark.sh libmemcached-fc.spec.in
2
+
3
+ pkgconfigdir = $(libdir)/pkgconfig
4
+ pkgconfig_DATA = libmemcached.pc