ax_harden_compiler_flags.m4 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  1. # vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
  2. # ===========================================================================
  3. # https://github.com/BrianAker/ddm4/
  4. # ===========================================================================
  5. #
  6. # SYNOPSIS
  7. #
  8. # AX_HARDEN_COMPILER_FLAGS() AX_HARDEN_LINKER_FLAGS()
  9. #
  10. # DESCRIPTION
  11. #
  12. # Any compiler flag that "hardens" or tests code. C99 is assumed.
  13. #
  14. # NOTE: Implementation based on AX_APPEND_FLAG.
  15. #
  16. # LICENSE
  17. #
  18. # Copyright (C) 2012 Brian Aker
  19. # All rights reserved.
  20. #
  21. # Redistribution and use in source and binary forms, with or without
  22. # modification, are permitted provided that the following conditions are
  23. # met:
  24. #
  25. # * Redistributions of source code must retain the above copyright
  26. # notice, this list of conditions and the following disclaimer.
  27. #
  28. # * Redistributions in binary form must reproduce the above
  29. # copyright notice, this list of conditions and the following disclaimer
  30. # in the documentation and/or other materials provided with the
  31. # distribution.
  32. #
  33. # * The names of its contributors may not be used to endorse or
  34. # promote products derived from this software without specific prior
  35. # written permission.
  36. #
  37. # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  38. # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  39. # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  40. # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  41. # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  42. # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  43. # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  44. # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  45. # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  46. # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  47. # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  48. # The Following flags are not checked for
  49. # -Wdeclaration-after-statement is counter to C99
  50. # _APPEND_COMPILE_FLAGS_ERROR([-std=c++11]) -- Not ready yet
  51. # _APPEND_COMPILE_FLAGS_ERROR([-pedantic]) --
  52. # ? _APPEND_COMPILE_FLAGS_ERROR([-Wlong-long]) -- Don't turn on for
  53. # compatibility issues memcached_stat_st
  54. #serial 8
  55. AC_DEFUN([_WARNINGS_AS_ERRORS],
  56. [AC_CACHE_CHECK([if all warnings into errors],[ac_cv_warnings_as_errors],
  57. [AS_IF([test "x$ac_cv_vcs_checkout" = xyes],[ac_cv_warnings_as_errors=yes],
  58. [ac_cv_warnings_as_errors=no])
  59. ])
  60. ])
  61. # Note: Should this be LIBS or LDFLAGS?
  62. AC_DEFUN([_APPEND_LINK_FLAGS_ERROR],
  63. [AC_REQUIRE([AX_APPEND_LINK_FLAGS])
  64. AX_APPEND_LINK_FLAGS([$1],[LDFLAGS],[-Werror])
  65. ])
  66. AC_DEFUN([_APPEND_COMPILE_FLAGS_ERROR],
  67. [AC_REQUIRE([AX_APPEND_COMPILE_FLAGS])
  68. AX_APPEND_COMPILE_FLAGS([$1],,[-Werror])
  69. ])
  70. # Everything above this does the heavy lifting, while what follows does the specifics.
  71. AC_DEFUN([_HARDEN_LINKER_FLAGS],
  72. [
  73. AS_IF([test "$CC" != "clang"],
  74. [_APPEND_LINK_FLAGS_ERROR([-z relro -z now])
  75. #_APPEND_LINK_FLAGS_ERROR([-pie])
  76. AS_IF([test "x$ac_cv_warnings_as_errors" = xyes],
  77. [AX_APPEND_LINK_FLAGS([-Werror])])])
  78. ])
  79. AC_DEFUN([_HARDEN_CC_COMPILER_FLAGS],
  80. [AC_LANG_PUSH([C])dnl
  81. AS_IF([test "x$ax_enable_debug" = xyes],
  82. [CFLAGS=''
  83. _APPEND_COMPILE_FLAGS_ERROR([-H])
  84. _APPEND_COMPILE_FLAGS_ERROR([-ggdb])
  85. _APPEND_COMPILE_FLAGS_ERROR([-g])
  86. _APPEND_COMPILE_FLAGS_ERROR([-O0])],
  87. [_APPEND_COMPILE_FLAGS_ERROR([-g])
  88. _APPEND_COMPILE_FLAGS_ERROR([-O2])])
  89. AS_IF([test "x$ac_cv_vcs_checkout" = xyes],
  90. [_APPEND_COMPILE_FLAGS_ERROR([-fstack-check])
  91. _APPEND_COMPILE_FLAGS_ERROR([-Wpragmas])
  92. _APPEND_COMPILE_FLAGS_ERROR([-Wunknown-pragmas])],
  93. [_APPEND_COMPILE_FLAGS_ERROR([-Wno-unknown-pragmas])
  94. _APPEND_COMPILE_FLAGS_ERROR([-Wno-pragmas])])
  95. AS_IF([test "$CC" = "clang"],
  96. [_APPEND_COMPILE_FLAGS_ERROR([-Qunused-arguments])])
  97. _APPEND_COMPILE_FLAGS_ERROR([-Wall])
  98. _APPEND_COMPILE_FLAGS_ERROR([-Wextra])
  99. _APPEND_COMPILE_FLAGS_ERROR([-Wthis-test-should-fail])
  100. _APPEND_COMPILE_FLAGS_ERROR([-std=c99])
  101. # Anything below this comment please keep sorted.
  102. # _APPEND_COMPILE_FLAGS_ERROR([-Wmissing-format-attribute])
  103. _APPEND_COMPILE_FLAGS_ERROR([-Wunsuffixed-float-constants])
  104. _APPEND_COMPILE_FLAGS_ERROR([-Wjump-misses-init])
  105. _APPEND_COMPILE_FLAGS_ERROR([-Wno-attributes])
  106. _APPEND_COMPILE_FLAGS_ERROR([-Waddress])
  107. _APPEND_COMPILE_FLAGS_ERROR([-Wvarargs])
  108. _APPEND_COMPILE_FLAGS_ERROR([-Warray-bounds])
  109. _APPEND_COMPILE_FLAGS_ERROR([-Wbad-function-cast])
  110. # Not in use -Wc++-compat
  111. _APPEND_COMPILE_FLAGS_ERROR([-Wchar-subscripts])
  112. _APPEND_COMPILE_FLAGS_ERROR([-Wcomment])
  113. _APPEND_COMPILE_FLAGS_ERROR([-Wfloat-equal])
  114. _APPEND_COMPILE_FLAGS_ERROR([-Wformat-security])
  115. _APPEND_COMPILE_FLAGS_ERROR([-Wformat=2])
  116. _APPEND_COMPILE_FLAGS_ERROR([-Wformat-y2k])
  117. _APPEND_COMPILE_FLAGS_ERROR([-Wlogical-op])
  118. _APPEND_COMPILE_FLAGS_ERROR([-Wmaybe-uninitialized])
  119. _APPEND_COMPILE_FLAGS_ERROR([-Wmissing-field-initializers])
  120. AS_IF([test "x$MINGW" = xyes],
  121. [_APPEND_COMPILE_FLAGS_ERROR([-Wno-missing-noreturn])],
  122. [_APPEND_COMPILE_FLAGS_ERROR([-Wmissing-noreturn])])
  123. _APPEND_COMPILE_FLAGS_ERROR([-Wmissing-prototypes])
  124. _APPEND_COMPILE_FLAGS_ERROR([-Wnested-externs])
  125. _APPEND_COMPILE_FLAGS_ERROR([-Wnormalized=id])
  126. _APPEND_COMPILE_FLAGS_ERROR([-Woverride-init])
  127. _APPEND_COMPILE_FLAGS_ERROR([-Wpointer-arith])
  128. _APPEND_COMPILE_FLAGS_ERROR([-Wpointer-sign])
  129. AS_IF([test "x$MINGW" = xyes],
  130. [_APPEND_COMPILE_FLAGS_ERROR([-Wno-suggest-attribute=const])
  131. _APPEND_COMPILE_FLAGS_ERROR([-Wno-suggest-attribute=noreturn])
  132. _APPEND_COMPILE_FLAGS_ERROR([-Wno-suggest-attribute=pure])
  133. _APPEND_COMPILE_FLAGS_ERROR([-Wno-redundant-decls])],
  134. [_APPEND_COMPILE_FLAGS_ERROR([-Wredundant-decls])])
  135. _APPEND_COMPILE_FLAGS_ERROR([-Wshadow])
  136. _APPEND_COMPILE_FLAGS_ERROR([-Wshorten-64-to-32])
  137. _APPEND_COMPILE_FLAGS_ERROR([-Wsign-compare])
  138. _APPEND_COMPILE_FLAGS_ERROR([-Wstrict-overflow=1])
  139. _APPEND_COMPILE_FLAGS_ERROR([-Wstrict-prototypes])
  140. _APPEND_COMPILE_FLAGS_ERROR([-Wswitch-enum])
  141. _APPEND_COMPILE_FLAGS_ERROR([-Wtrampolines])
  142. _APPEND_COMPILE_FLAGS_ERROR([-Wundef])
  143. _APPEND_COMPILE_FLAGS_ERROR([-Wunsafe-loop-optimizations -funsafe-loop-optimizations])
  144. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=address])
  145. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=integer])
  146. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=thread])
  147. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=memory])
  148. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=alignment])
  149. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=bool])
  150. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=bounds])
  151. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=enum])
  152. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=float-cast-overflow])
  153. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=float-divide-by-zero])
  154. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=integer-divide-by-zero])
  155. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=null])
  156. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=object-size])
  157. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=return])
  158. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=shift])
  159. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=signed-integer-overflow])
  160. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=unreachable])
  161. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=unsigned-integer-overflow])
  162. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=vla-bound])
  163. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=vptr])
  164. _APPEND_COMPILE_FLAGS_ERROR([-Wclobbered])
  165. _APPEND_COMPILE_FLAGS_ERROR([-Wunused])
  166. _APPEND_COMPILE_FLAGS_ERROR([-Wunused-result])
  167. _APPEND_COMPILE_FLAGS_ERROR([-Wunused-variable])
  168. _APPEND_COMPILE_FLAGS_ERROR([-Wunused-parameter])
  169. _APPEND_COMPILE_FLAGS_ERROR([-Wunused-local-typedefs])
  170. _APPEND_COMPILE_FLAGS_ERROR([-Wwrite-strings])
  171. _APPEND_COMPILE_FLAGS_ERROR([-floop-parallelize-all])
  172. _APPEND_COMPILE_FLAGS_ERROR([-fwrapv])
  173. _APPEND_COMPILE_FLAGS_ERROR([-fmudflapt])
  174. _APPEND_COMPILE_FLAGS_ERROR([-pipe])
  175. AS_IF([test "x$ax_enable_debug" = xno],
  176. [AS_IF([test "x$ac_cv_vcs_checkout" = xyes],
  177. [AS_IF([test "x${target_os}" != "xmingw"],
  178. [AS_IF([test "x$ac_c_gcc_recent" = xyes],
  179. [_APPEND_COMPILE_FLAGS_ERROR([-D_FORTIFY_SOURCE=2])
  180. #_APPEND_COMPILE_FLAGS_ERROR([-Wstack-protector])
  181. #_APPEND_COMPILE_FLAGS_ERROR([-fstack-protector])
  182. #_APPEND_COMPILE_FLAGS_ERROR([--param=ssp-buffer-size=1])
  183. _APPEND_COMPILE_FLAGS_ERROR([-fstack-protector-all])
  184. ])])])])
  185. AS_IF([test "x$ac_cv_warnings_as_errors" = xyes],
  186. [AX_APPEND_FLAG([-Werror])])
  187. AC_LANG_POP([C])
  188. ])
  189. AC_DEFUN([_HARDEN_CXX_COMPILER_FLAGS],
  190. [AC_LANG_PUSH([C++])
  191. AC_REQUIRE([_APPEND_COMPILE_FLAGS_ERROR])
  192. AS_IF([test "x$ax_enable_debug" = xyes],
  193. [CXXFLAGS=''
  194. _APPEND_COMPILE_FLAGS_ERROR([-H])
  195. _APPEND_COMPILE_FLAGS_ERROR([-ggdb])
  196. _APPEND_COMPILE_FLAGS_ERROR([-g])
  197. _APPEND_COMPILE_FLAGS_ERROR([-O0])],
  198. [_APPEND_COMPILE_FLAGS_ERROR([-g])
  199. _APPEND_COMPILE_FLAGS_ERROR([-O2])])
  200. AS_IF([test "x$ac_cv_vcs_checkout" = xyes],
  201. [_APPEND_COMPILE_FLAGS_ERROR([-fstack-check])
  202. _APPEND_COMPILE_FLAGS_ERROR([-Wpragmas])
  203. _APPEND_COMPILE_FLAGS_ERROR([-Wunknown-pragmas])],
  204. [_APPEND_COMPILE_FLAGS_ERROR([-Wno-unknown-pragmas])
  205. _APPEND_COMPILE_FLAGS_ERROR([-Wno-pragmas])])
  206. AS_IF([test "$CXX" = "clang++"],
  207. [_APPEND_COMPILE_FLAGS_ERROR([-Qunused-arguments])])
  208. _APPEND_COMPILE_FLAGS_ERROR([-Wall])
  209. _APPEND_COMPILE_FLAGS_ERROR([-Wextra])
  210. _APPEND_COMPILE_FLAGS_ERROR([-Wthis-test-should-fail])
  211. # Anything below this comment please keep sorted.
  212. # _APPEND_COMPILE_FLAGS_ERROR([-Wmissing-format-attribute])
  213. _APPEND_COMPILE_FLAGS_ERROR([-Wno-attributes])
  214. _APPEND_COMPILE_FLAGS_ERROR([-Wvarargs])
  215. _APPEND_COMPILE_FLAGS_ERROR([-Waddress])
  216. _APPEND_COMPILE_FLAGS_ERROR([-Warray-bounds])
  217. _APPEND_COMPILE_FLAGS_ERROR([-Wchar-subscripts])
  218. _APPEND_COMPILE_FLAGS_ERROR([-Wcomment])
  219. _APPEND_COMPILE_FLAGS_ERROR([-Wctor-dtor-privacy])
  220. _APPEND_COMPILE_FLAGS_ERROR([-Wfloat-equal])
  221. _APPEND_COMPILE_FLAGS_ERROR([-Wformat=2])
  222. _APPEND_COMPILE_FLAGS_ERROR([-Wformat-y2k])
  223. _APPEND_COMPILE_FLAGS_ERROR([-Wmaybe-uninitialized])
  224. _APPEND_COMPILE_FLAGS_ERROR([-Wmissing-field-initializers])
  225. _APPEND_COMPILE_FLAGS_ERROR([-Wlogical-op])
  226. _APPEND_COMPILE_FLAGS_ERROR([-Wnon-virtual-dtor])
  227. _APPEND_COMPILE_FLAGS_ERROR([-Wnormalized=id])
  228. _APPEND_COMPILE_FLAGS_ERROR([-Woverloaded-virtual])
  229. _APPEND_COMPILE_FLAGS_ERROR([-Wpointer-arith])
  230. AS_IF([test "x$MINGW" = xyes],
  231. [_APPEND_COMPILE_FLAGS_ERROR([-Wno-suggest-attribute=const])
  232. _APPEND_COMPILE_FLAGS_ERROR([-Wno-missing-noreturn])
  233. _APPEND_COMPILE_FLAGS_ERROR([-Wmissing-noreturn])
  234. _APPEND_COMPILE_FLAGS_ERROR([-Wno-suggest-attribute=noreturn])
  235. _APPEND_COMPILE_FLAGS_ERROR([-Wno-error=suggest-attribute=noreturn])
  236. _APPEND_COMPILE_FLAGS_ERROR([-Wno-redundant-decls])],
  237. [_APPEND_COMPILE_FLAGS_ERROR([-Wredundant-decls])])
  238. _APPEND_COMPILE_FLAGS_ERROR([-Wshadow])
  239. _APPEND_COMPILE_FLAGS_ERROR([-Wshorten-64-to-32])
  240. _APPEND_COMPILE_FLAGS_ERROR([-Wsign-compare])
  241. _APPEND_COMPILE_FLAGS_ERROR([-Wstrict-overflow=1])
  242. _APPEND_COMPILE_FLAGS_ERROR([-Wswitch-enum])
  243. _APPEND_COMPILE_FLAGS_ERROR([-Wtrampolines])
  244. _APPEND_COMPILE_FLAGS_ERROR([-Wundef])
  245. _APPEND_COMPILE_FLAGS_ERROR([-Wunsafe-loop-optimizations -funsafe-loop-optimizations])
  246. _APPEND_COMPILE_FLAGS_ERROR([-Wc++11-compat])
  247. # _APPEND_COMPILE_FLAGS_ERROR([-Weffc++])
  248. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=address])
  249. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=integer])
  250. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=thread])
  251. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=memory])
  252. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=alignment])
  253. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=bool])
  254. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=bounds])
  255. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=enum])
  256. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=float-cast-overflow])
  257. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=float-divide-by-zero])
  258. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=integer-divide-by-zero])
  259. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=null])
  260. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=object-size])
  261. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=return])
  262. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=shift])
  263. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=signed-integer-overflow])
  264. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=unreachable])
  265. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=unsigned-integer-overflow])
  266. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=vla-bound])
  267. _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=vptr])
  268. # _APPEND_COMPILE_FLAGS_ERROR([-Wold-style-cast])
  269. _APPEND_COMPILE_FLAGS_ERROR([-Wclobbered])
  270. _APPEND_COMPILE_FLAGS_ERROR([-Wunused])
  271. _APPEND_COMPILE_FLAGS_ERROR([-Wunused-result])
  272. _APPEND_COMPILE_FLAGS_ERROR([-Wunused-variable])
  273. _APPEND_COMPILE_FLAGS_ERROR([-Wunused-parameter])
  274. _APPEND_COMPILE_FLAGS_ERROR([-Wunused-local-typedefs])
  275. _APPEND_COMPILE_FLAGS_ERROR([-Wwrite-strings])
  276. _APPEND_COMPILE_FLAGS_ERROR([-Wformat-security])
  277. _APPEND_COMPILE_FLAGS_ERROR([-floop-parallelize-all])
  278. _APPEND_COMPILE_FLAGS_ERROR([-fwrapv])
  279. _APPEND_COMPILE_FLAGS_ERROR([-fmudflapt])
  280. _APPEND_COMPILE_FLAGS_ERROR([-pipe])
  281. AS_IF([test "x$ax_enable_debug" = xno],
  282. [AS_IF([test "x$ac_cv_vcs_checkout" = xyes],
  283. [AS_IF([test "x${target_os}" != "xmingw"],
  284. [AS_IF([test "x$ac_c_gcc_recent" = xyes],
  285. [_APPEND_COMPILE_FLAGS_ERROR([-D_FORTIFY_SOURCE=2])
  286. #_APPEND_COMPILE_FLAGS_ERROR([-Wstack-protector])
  287. #_APPEND_COMPILE_FLAGS_ERROR([-fstack-protector])
  288. #_APPEND_COMPILE_FLAGS_ERROR([--param=ssp-buffer-size=1])
  289. _APPEND_COMPILE_FLAGS_ERROR([-fstack-protector-all])
  290. ])])])])
  291. AS_IF([test "x$ac_cv_warnings_as_errors" = xyes],
  292. [AX_APPEND_FLAG([-Werror])])
  293. AC_LANG_POP([C++])
  294. ])
  295. # All of the heavy lifting happens in _HARDEN_LINKER_FLAGS,
  296. # _HARDEN_CC_COMPILER_FLAGS, _HARDEN_CXX_COMPILER_FLAGS
  297. AC_DEFUN([AX_HARDEN_COMPILER_FLAGS],
  298. [AC_PREREQ([2.63])dnl
  299. AC_REQUIRE([_WARNINGS_AS_ERRORS])
  300. AC_REQUIRE([AX_APPEND_LINK_FLAGS])
  301. AC_REQUIRE([AX_COMPILER_VERSION])
  302. AC_REQUIRE([AX_DEBUG])
  303. AC_REQUIRE([AX_VCS_CHECKOUT])
  304. AC_REQUIRE([gl_VISIBILITY])
  305. AS_IF([test -n "$CFLAG_VISIBILITY"],[CPPFLAGS="$CPPFLAGS $CFLAG_VISIBILITY"])
  306. AC_REQUIRE([_HARDEN_LINKER_FLAGS])
  307. AC_REQUIRE([_HARDEN_CC_COMPILER_FLAGS])
  308. AC_REQUIRE([_HARDEN_CXX_COMPILER_FLAGS])
  309. ])