Update to latest ddm4
[awesomized/libmemcached] / m4 / ax_harden_compiler_flags.m4
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
49 # The Following flags are not checked for
50 # -Wdeclaration-after-statement is counter to C99
51 # _APPEND_COMPILE_FLAGS_ERROR([-std=c++11]) -- Not ready yet
52 # _APPEND_COMPILE_FLAGS_ERROR([-pedantic]) --
53 # ? _APPEND_COMPILE_FLAGS_ERROR([-Wlong-long]) -- Don't turn on for
54 # compatibility issues memcached_stat_st
55
56 #serial 9
57
58 AC_DEFUN([_WARNINGS_AS_ERRORS],
59 [AC_CACHE_CHECK([if all warnings into errors],[ac_cv_warnings_as_errors],
60 [AS_IF([test "x$ac_cv_vcs_checkout" = xyes],[ac_cv_warnings_as_errors=yes],
61 [ac_cv_warnings_as_errors=no])
62 ])
63 ])
64
65 # Note: Should this be LIBS or LDFLAGS?
66 AC_DEFUN([_APPEND_LINK_FLAGS_ERROR],
67 [AC_REQUIRE([AX_APPEND_LINK_FLAGS])
68 AX_APPEND_LINK_FLAGS([$1],[LDFLAGS],[-Werror])
69 ])
70
71 AC_DEFUN([_APPEND_COMPILE_FLAGS_ERROR],
72 [AC_REQUIRE([AX_APPEND_COMPILE_FLAGS])
73 AX_APPEND_COMPILE_FLAGS([$1],,[-Werror])
74 ])
75
76 # Everything above this does the heavy lifting, while what follows does the specifics.
77
78 AC_DEFUN([_HARDEN_LINKER_FLAGS],
79 [
80 AS_IF([test "$CC" != "clang"],
81 [_APPEND_LINK_FLAGS_ERROR([-z relro -z now])
82 #_APPEND_LINK_FLAGS_ERROR([-pie])
83 AS_IF([test "x$ac_cv_warnings_as_errors" = xyes],
84 [AX_APPEND_LINK_FLAGS([-Werror])])])
85 ])
86
87 AC_DEFUN([_HARDEN_CC_COMPILER_FLAGS],
88 [AC_LANG_PUSH([C])dnl
89
90 AS_IF([test "x$ax_enable_debug" = xyes],
91 [CFLAGS=''
92 _APPEND_COMPILE_FLAGS_ERROR([-H])
93 _APPEND_COMPILE_FLAGS_ERROR([-ggdb])
94 _APPEND_COMPILE_FLAGS_ERROR([-g])
95 _APPEND_COMPILE_FLAGS_ERROR([-O0]),
96 _APPEND_COMPILE_FLAGS_ERROR([-fno-omit-frame-pointer])
97 ],[
98 _APPEND_COMPILE_FLAGS_ERROR([-g])
99 _APPEND_COMPILE_FLAGS_ERROR([-O2])
100 ])
101
102 AS_IF([test "x$ac_cv_vcs_checkout" = xyes],
103 [_APPEND_COMPILE_FLAGS_ERROR([-fstack-check])
104 _APPEND_COMPILE_FLAGS_ERROR([-Wpragmas])
105 _APPEND_COMPILE_FLAGS_ERROR([-Wunknown-pragmas])],
106 [_APPEND_COMPILE_FLAGS_ERROR([-Wno-unknown-pragmas])
107 _APPEND_COMPILE_FLAGS_ERROR([-Wno-pragmas])])
108
109 AS_IF([test "$CC" = "clang"],
110 [_APPEND_COMPILE_FLAGS_ERROR([-Qunused-arguments])])
111
112 _APPEND_COMPILE_FLAGS_ERROR([-Wall])
113 _APPEND_COMPILE_FLAGS_ERROR([-Wextra])
114 _APPEND_COMPILE_FLAGS_ERROR([-Wthis-test-should-fail])
115 _APPEND_COMPILE_FLAGS_ERROR([-std=c99])
116 # Anything below this comment please keep sorted.
117 # _APPEND_COMPILE_FLAGS_ERROR([-Wmissing-format-attribute])
118 _APPEND_COMPILE_FLAGS_ERROR([-Wunsuffixed-float-constants])
119 _APPEND_COMPILE_FLAGS_ERROR([-Wjump-misses-init])
120 _APPEND_COMPILE_FLAGS_ERROR([-Wno-attributes])
121 _APPEND_COMPILE_FLAGS_ERROR([-Waddress])
122 _APPEND_COMPILE_FLAGS_ERROR([-Wvarargs])
123 _APPEND_COMPILE_FLAGS_ERROR([-Warray-bounds])
124 _APPEND_COMPILE_FLAGS_ERROR([-Wbad-function-cast])
125 # Not in use -Wc++-compat
126 _APPEND_COMPILE_FLAGS_ERROR([-Wchar-subscripts])
127 _APPEND_COMPILE_FLAGS_ERROR([-Wcomment])
128 _APPEND_COMPILE_FLAGS_ERROR([-Wfloat-equal])
129 _APPEND_COMPILE_FLAGS_ERROR([-Wformat-security])
130 _APPEND_COMPILE_FLAGS_ERROR([-Wformat=2])
131 _APPEND_COMPILE_FLAGS_ERROR([-Wformat-y2k])
132 _APPEND_COMPILE_FLAGS_ERROR([-Wlogical-op])
133 _APPEND_COMPILE_FLAGS_ERROR([-Wmaybe-uninitialized])
134 _APPEND_COMPILE_FLAGS_ERROR([-Wmissing-field-initializers])
135 AS_IF([test "x$MINGW" = xyes],
136 [_APPEND_COMPILE_FLAGS_ERROR([-Wno-missing-noreturn])],
137 [_APPEND_COMPILE_FLAGS_ERROR([-Wmissing-noreturn])])
138 _APPEND_COMPILE_FLAGS_ERROR([-Wmissing-prototypes])
139 _APPEND_COMPILE_FLAGS_ERROR([-Wnested-externs])
140 _APPEND_COMPILE_FLAGS_ERROR([-Wnormalized=id])
141 _APPEND_COMPILE_FLAGS_ERROR([-Woverride-init])
142 _APPEND_COMPILE_FLAGS_ERROR([-Wpointer-arith])
143 _APPEND_COMPILE_FLAGS_ERROR([-Wpointer-sign])
144 AS_IF([test "x$MINGW" = xyes],
145 [_APPEND_COMPILE_FLAGS_ERROR([-Wno-suggest-attribute=const])
146 _APPEND_COMPILE_FLAGS_ERROR([-Wno-suggest-attribute=noreturn])
147 _APPEND_COMPILE_FLAGS_ERROR([-Wno-suggest-attribute=pure])
148 _APPEND_COMPILE_FLAGS_ERROR([-Wno-redundant-decls])],
149 [_APPEND_COMPILE_FLAGS_ERROR([-Wredundant-decls])])
150
151 _APPEND_COMPILE_FLAGS_ERROR([-Wshadow])
152 _APPEND_COMPILE_FLAGS_ERROR([-Wshorten-64-to-32])
153 _APPEND_COMPILE_FLAGS_ERROR([-Wsign-compare])
154 _APPEND_COMPILE_FLAGS_ERROR([-Wstrict-overflow=1])
155 _APPEND_COMPILE_FLAGS_ERROR([-Wstrict-prototypes])
156 _APPEND_COMPILE_FLAGS_ERROR([-Wswitch-enum])
157 _APPEND_COMPILE_FLAGS_ERROR([-Wtrampolines])
158 _APPEND_COMPILE_FLAGS_ERROR([-Wundef])
159 _APPEND_COMPILE_FLAGS_ERROR([-Wunsafe-loop-optimizations])
160 _APPEND_COMPILE_FLAGS_ERROR([-funsafe-loop-optimizations])
161 AS_IF([test "x$ac_cv_vcs_checkout" = xyes],[
162 _APPEND_COMPILE_FLAGS_ERROR([-fno-omit-frame-pointer])
163 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=address])
164 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=integer])
165 AS_IF([test "x$enable_shared" = "xyes"],[
166 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=thread])
167 ])
168 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=memory])
169 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=alignment])
170 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=bool])
171 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=bounds])
172 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=enum])
173 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=float-cast-overflow])
174 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=float-divide-by-zero])
175 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=integer-divide-by-zero])
176 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=null])
177 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=object-size])
178 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=return])
179 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=shift])
180 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=signed-integer-overflow])
181 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=unreachable])
182 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=unsigned-integer-overflow])
183 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=vla-bound])
184 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=vptr])
185 ])
186 _APPEND_COMPILE_FLAGS_ERROR([-Wclobbered])
187 _APPEND_COMPILE_FLAGS_ERROR([-Wunused])
188 _APPEND_COMPILE_FLAGS_ERROR([-Wunused-result])
189 _APPEND_COMPILE_FLAGS_ERROR([-Wunused-variable])
190 _APPEND_COMPILE_FLAGS_ERROR([-Wunused-parameter])
191 _APPEND_COMPILE_FLAGS_ERROR([-Wunused-local-typedefs])
192 _APPEND_COMPILE_FLAGS_ERROR([-Wwrite-strings])
193 _APPEND_COMPILE_FLAGS_ERROR([-floop-parallelize-all])
194 _APPEND_COMPILE_FLAGS_ERROR([-fwrapv])
195 _APPEND_COMPILE_FLAGS_ERROR([-fmudflapt])
196 _APPEND_COMPILE_FLAGS_ERROR([-pipe])
197 _APPEND_COMPILE_FLAGS_ERROR([-Wsizeof-pointer-memaccess])
198
199 AS_IF([test "x$ax_enable_debug" = xno],
200 [AS_IF([test "x$ac_cv_vcs_checkout" = xyes],
201 [AS_IF([test "x${target_os}" != "xmingw"],
202 [AS_IF([test "x$ac_c_gcc_recent" = xyes],
203 [_APPEND_COMPILE_FLAGS_ERROR([-D_FORTIFY_SOURCE=2])
204 #_APPEND_COMPILE_FLAGS_ERROR([-Wstack-protector])
205 #_APPEND_COMPILE_FLAGS_ERROR([-fstack-protector])
206 #_APPEND_COMPILE_FLAGS_ERROR([--param=ssp-buffer-size=1])
207 _APPEND_COMPILE_FLAGS_ERROR([-fstack-protector-all])
208 ])])])])
209
210 AS_IF([test "x$ac_cv_warnings_as_errors" = xyes],
211 [AX_APPEND_FLAG([-Werror])])
212
213 AC_LANG_POP([C])
214 ])
215
216 AC_DEFUN([_HARDEN_CXX_COMPILER_FLAGS],
217 [AC_LANG_PUSH([C++])
218 AC_REQUIRE([_APPEND_COMPILE_FLAGS_ERROR])
219
220 AS_IF([test "x$ax_enable_debug" = xyes],
221 [CXXFLAGS=''
222 _APPEND_COMPILE_FLAGS_ERROR([-H])
223 _APPEND_COMPILE_FLAGS_ERROR([-ggdb])
224 _APPEND_COMPILE_FLAGS_ERROR([-g])
225 _APPEND_COMPILE_FLAGS_ERROR([-O0]),
226 _APPEND_COMPILE_FLAGS_ERROR([-fno-omit-frame-pointer])
227 ],[
228 _APPEND_COMPILE_FLAGS_ERROR([-g])
229 _APPEND_COMPILE_FLAGS_ERROR([-O2])
230 ])
231
232 AS_IF([test "x$ac_cv_vcs_checkout" = xyes],
233 [_APPEND_COMPILE_FLAGS_ERROR([-fstack-check])
234 _APPEND_COMPILE_FLAGS_ERROR([-Wpragmas])
235 _APPEND_COMPILE_FLAGS_ERROR([-Wunknown-pragmas])],
236 [_APPEND_COMPILE_FLAGS_ERROR([-Wno-unknown-pragmas])
237 _APPEND_COMPILE_FLAGS_ERROR([-Wno-pragmas])])
238
239 AS_IF([test "$CXX" = "clang++"],
240 [_APPEND_COMPILE_FLAGS_ERROR([-Qunused-arguments])])
241
242 _APPEND_COMPILE_FLAGS_ERROR([-Wall])
243 _APPEND_COMPILE_FLAGS_ERROR([-Wextra])
244 _APPEND_COMPILE_FLAGS_ERROR([-Wthis-test-should-fail])
245 # Anything below this comment please keep sorted.
246 # _APPEND_COMPILE_FLAGS_ERROR([-Wmissing-format-attribute])
247 _APPEND_COMPILE_FLAGS_ERROR([-Wno-attributes])
248 _APPEND_COMPILE_FLAGS_ERROR([-Wvarargs])
249 _APPEND_COMPILE_FLAGS_ERROR([-Waddress])
250 _APPEND_COMPILE_FLAGS_ERROR([-Warray-bounds])
251 _APPEND_COMPILE_FLAGS_ERROR([-Wchar-subscripts])
252 _APPEND_COMPILE_FLAGS_ERROR([-Wcomment])
253 _APPEND_COMPILE_FLAGS_ERROR([-Wctor-dtor-privacy])
254 _APPEND_COMPILE_FLAGS_ERROR([-Wfloat-equal])
255 _APPEND_COMPILE_FLAGS_ERROR([-Wformat=2])
256 _APPEND_COMPILE_FLAGS_ERROR([-Wformat-y2k])
257 _APPEND_COMPILE_FLAGS_ERROR([-Wmaybe-uninitialized])
258 _APPEND_COMPILE_FLAGS_ERROR([-Wmissing-field-initializers])
259 _APPEND_COMPILE_FLAGS_ERROR([-Wlogical-op])
260 _APPEND_COMPILE_FLAGS_ERROR([-Wnon-virtual-dtor])
261 _APPEND_COMPILE_FLAGS_ERROR([-Wnormalized=id])
262 _APPEND_COMPILE_FLAGS_ERROR([-Woverloaded-virtual])
263 _APPEND_COMPILE_FLAGS_ERROR([-Wpointer-arith])
264 AS_IF([test "x$MINGW" = xyes],
265 [_APPEND_COMPILE_FLAGS_ERROR([-Wno-suggest-attribute=const])
266 _APPEND_COMPILE_FLAGS_ERROR([-Wno-missing-noreturn])
267 _APPEND_COMPILE_FLAGS_ERROR([-Wmissing-noreturn])
268 _APPEND_COMPILE_FLAGS_ERROR([-Wno-suggest-attribute=noreturn])
269 _APPEND_COMPILE_FLAGS_ERROR([-Wno-error=suggest-attribute=noreturn])
270 _APPEND_COMPILE_FLAGS_ERROR([-Wno-redundant-decls])],
271 [_APPEND_COMPILE_FLAGS_ERROR([-Wredundant-decls])])
272 _APPEND_COMPILE_FLAGS_ERROR([-Wshadow])
273 _APPEND_COMPILE_FLAGS_ERROR([-Wshorten-64-to-32])
274 _APPEND_COMPILE_FLAGS_ERROR([-Wsign-compare])
275 _APPEND_COMPILE_FLAGS_ERROR([-Wstrict-overflow=1])
276 _APPEND_COMPILE_FLAGS_ERROR([-Wswitch-enum])
277 _APPEND_COMPILE_FLAGS_ERROR([-Wtrampolines])
278 _APPEND_COMPILE_FLAGS_ERROR([-Wundef])
279 _APPEND_COMPILE_FLAGS_ERROR([-Wunsafe-loop-optimizations])
280 _APPEND_COMPILE_FLAGS_ERROR([-funsafe-loop-optimizations])
281 _APPEND_COMPILE_FLAGS_ERROR([-Wc++11-compat])
282 # _APPEND_COMPILE_FLAGS_ERROR([-Weffc++])
283 AS_IF([test "x$ac_cv_vcs_checkout" = xyes],[
284 _APPEND_COMPILE_FLAGS_ERROR([-fno-omit-frame-pointer])
285 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=address])
286 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=integer])
287 AS_IF([test "x$enable_shared" = "xyes"],[
288 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=thread])
289 ])
290 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=memory])
291 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=alignment])
292 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=bool])
293 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=bounds])
294 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=enum])
295 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=float-cast-overflow])
296 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=float-divide-by-zero])
297 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=integer-divide-by-zero])
298 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=null])
299 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=object-size])
300 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=return])
301 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=shift])
302 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=signed-integer-overflow])
303 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=unreachable])
304 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=unsigned-integer-overflow])
305 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=vla-bound])
306 _APPEND_COMPILE_FLAGS_ERROR([-fsanitize=vptr])
307 ])
308 # _APPEND_COMPILE_FLAGS_ERROR([-Wold-style-cast])
309 _APPEND_COMPILE_FLAGS_ERROR([-Wclobbered])
310 _APPEND_COMPILE_FLAGS_ERROR([-Wunused])
311 _APPEND_COMPILE_FLAGS_ERROR([-Wunused-result])
312 _APPEND_COMPILE_FLAGS_ERROR([-Wunused-variable])
313 _APPEND_COMPILE_FLAGS_ERROR([-Wunused-parameter])
314 _APPEND_COMPILE_FLAGS_ERROR([-Wunused-local-typedefs])
315 _APPEND_COMPILE_FLAGS_ERROR([-Wwrite-strings])
316 _APPEND_COMPILE_FLAGS_ERROR([-Wformat-security])
317 _APPEND_COMPILE_FLAGS_ERROR([-floop-parallelize-all])
318 _APPEND_COMPILE_FLAGS_ERROR([-fwrapv])
319 _APPEND_COMPILE_FLAGS_ERROR([-fmudflapt])
320 _APPEND_COMPILE_FLAGS_ERROR([-pipe])
321 _APPEND_COMPILE_FLAGS_ERROR([-Wsizeof-pointer-memaccess])
322
323 AS_IF([test "x$ax_enable_debug" = xno],
324 [AS_IF([test "x$ac_cv_vcs_checkout" = xyes],
325 [AS_IF([test "x${target_os}" != "xmingw"],
326 [AS_IF([test "x$ac_c_gcc_recent" = xyes],
327 [_APPEND_COMPILE_FLAGS_ERROR([-D_FORTIFY_SOURCE=2])
328 #_APPEND_COMPILE_FLAGS_ERROR([-Wstack-protector])
329 #_APPEND_COMPILE_FLAGS_ERROR([-fstack-protector])
330 #_APPEND_COMPILE_FLAGS_ERROR([--param=ssp-buffer-size=1])
331 _APPEND_COMPILE_FLAGS_ERROR([-fstack-protector-all])
332 ])])])])
333
334 AS_IF([test "x$ac_cv_warnings_as_errors" = xyes],
335 [AX_APPEND_FLAG([-Werror])])
336 AC_LANG_POP([C++])
337 ])
338
339 # All of the heavy lifting happens in _HARDEN_LINKER_FLAGS,
340 # _HARDEN_CC_COMPILER_FLAGS, _HARDEN_CXX_COMPILER_FLAGS
341 AC_DEFUN([AX_HARDEN_COMPILER_FLAGS],
342 [AC_PREREQ([2.63])dnl
343 AC_REQUIRE([_WARNINGS_AS_ERRORS])
344 AC_REQUIRE([AX_APPEND_LINK_FLAGS])
345 AC_REQUIRE([AX_COMPILER_VERSION])
346 AC_REQUIRE([AX_DEBUG])
347 AC_REQUIRE([AX_VCS_CHECKOUT])
348
349 AC_REQUIRE([gl_VISIBILITY])
350 AS_IF([test -n "$CFLAG_VISIBILITY"],[CPPFLAGS="$CPPFLAGS $CFLAG_VISIBILITY"])
351
352 AC_REQUIRE([_HARDEN_LINKER_FLAGS])
353 AC_REQUIRE([_HARDEN_CC_COMPILER_FLAGS])
354 AC_REQUIRE([_HARDEN_CXX_COMPILER_FLAGS])
355 ])