File: [local] / acopm / m4 / cflags.m4 (download)
Revision 1.1, Sat May 8 15:42:18 2021 UTC (3 years ago) by bountyht
Branch point for: MAIN
Initial revision
|
ACOPM_TEST_CFLAGS_RESULT=""
AC_DEFUN([ACOPM_TEST_CFLAGS],
[
AC_MSG_CHECKING([for C compiler flag(s) $1 ])
CFLAGS_SAVED="${CFLAGS}"
CFLAGS="${CFLAGS} $1"
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([[]], [[]])],
[
ACOPM_TEST_CFLAGS_RESULT='yes'
],
[
ACOPM_TEST_CFLAGS_RESULT='no'
CFLAGS="${CFLAGS_SAVED}"
]
)
AC_MSG_RESULT([${ACOPM_TEST_CFLAGS_RESULT}])
unset CFLAGS_SAVED
]
)
AC_DEFUN([ACOPM_TEST_CFLAGS_DIAGNOSTICS],
[
ACOPM_TEST_CFLAGS([-Werror=unknown-warning-option])
ACOPM_TEST_CFLAGS([-Werror=implicit])
ACOPM_TEST_CFLAGS([-Weverything])
if test "x${ACOPM_TEST_CFLAGS_RESULT}" = "xno" ; then
ACOPM_TEST_CFLAGS([-Wall])
ACOPM_TEST_CFLAGS([-Wextra])
ACOPM_TEST_CFLAGS([-Waggregate-return])
ACOPM_TEST_CFLAGS([-Walloc-zero])
ACOPM_TEST_CFLAGS([-Walloca])
ACOPM_TEST_CFLAGS([-Wbad-function-cast])
ACOPM_TEST_CFLAGS([-Wc99-c11-compat])
ACOPM_TEST_CFLAGS([-Wcast-qual])
ACOPM_TEST_CFLAGS([-Wconversion])
ACOPM_TEST_CFLAGS([-Wdangling-else])
ACOPM_TEST_CFLAGS([-Wdate-time])
ACOPM_TEST_CFLAGS([-Wdisabled-optimization])
ACOPM_TEST_CFLAGS([-Wdouble-promotion])
ACOPM_TEST_CFLAGS([-Wduplicate-decl-specifier])
ACOPM_TEST_CFLAGS([-Wduplicated-branches])
ACOPM_TEST_CFLAGS([-Wduplicated-cond])
ACOPM_TEST_CFLAGS([-Wfatal-errors])
ACOPM_TEST_CFLAGS([-Wformat-nonliteral])
ACOPM_TEST_CFLAGS([-Wformat-security])
ACOPM_TEST_CFLAGS([-Wformat-signedness])
ACOPM_TEST_CFLAGS([-Wformat-y2k])
ACOPM_TEST_CFLAGS([-Winline])
ACOPM_TEST_CFLAGS([-Winit-self])
ACOPM_TEST_CFLAGS([-Winvalid-pch])
ACOPM_TEST_CFLAGS([-Wjump-misses-init])
ACOPM_TEST_CFLAGS([-Wlogical-op])
ACOPM_TEST_CFLAGS([-Wmissing-declarations])
ACOPM_TEST_CFLAGS([-Wmissing-format-attribute])
ACOPM_TEST_CFLAGS([-Wmissing-include-dirs])
ACOPM_TEST_CFLAGS([-Wmissing-parameter-type])
ACOPM_TEST_CFLAGS([-Wmissing-prototypes])
ACOPM_TEST_CFLAGS([-Wnested-externs])
ACOPM_TEST_CFLAGS([-Wnormalized=nfkc])
ACOPM_TEST_CFLAGS([-Wnull-dereference])
ACOPM_TEST_CFLAGS([-Wold-style-definition])
ACOPM_TEST_CFLAGS([-Wpacked])
ACOPM_TEST_CFLAGS([-Wpointer-arith])
ACOPM_TEST_CFLAGS([-Wpointer-compare])
ACOPM_TEST_CFLAGS([-Wredundant-decls])
ACOPM_TEST_CFLAGS([-Wregister])
ACOPM_TEST_CFLAGS([-Wrestrict])
ACOPM_TEST_CFLAGS([-Wshadow])
ACOPM_TEST_CFLAGS([-Wstack-protector])
ACOPM_TEST_CFLAGS([-Wstrict-overflow=3])
if test "x${ACOPM_TEST_CFLAGS_RESULT}" = "xno" ; then
ACOPM_TEST_CFLAGS([-Wstrict-overflow])
fi
ACOPM_TEST_CFLAGS([-Wstrict-prototypes])
ACOPM_TEST_CFLAGS([-Wstringop-overflow=4])
ACOPM_TEST_CFLAGS([-Wtrampolines])
ACOPM_TEST_CFLAGS([-Wundef])
ACOPM_TEST_CFLAGS([-Wuninitialized])
ACOPM_TEST_CFLAGS([-Wunsafe-loop-optimizations])
ACOPM_TEST_CFLAGS([-Wunsuffixed-float-constants])
ACOPM_TEST_CFLAGS([-Wvla])
ACOPM_TEST_CFLAGS([-Wwrite-strings])
fi
ACOPM_TEST_CFLAGS([-Wpedantic])
if test "x${ACOPM_TEST_CFLAGS_RESULT}" = "xno" ; then
ACOPM_TEST_CFLAGS([-pedantic])
fi
ACOPM_TEST_CFLAGS([-Walloc-size-larger-than=1048576])
ACOPM_TEST_CFLAGS([-Wlarger-than=1048576])
ACOPM_TEST_CFLAGS([-Wno-address-of-packed-member])
ACOPM_TEST_CFLAGS([-Wno-cast-align])
ACOPM_TEST_CFLAGS([-Wno-disabled-macro-expansion])
ACOPM_TEST_CFLAGS([-Wno-packed])
ACOPM_TEST_CFLAGS([-Wno-padded])
ACOPM_TEST_CFLAGS([-Wno-unused-command-line-argument])
]
)
AC_DEFUN([ACOPM_TEST_CFLAGS_DEBUG],
[
ACOPM_TEST_CFLAGS([-fstack-protector-all])
if test "x${ACOPM_TEST_CFLAGS_RESULT}" = "xno" ; then
ACOPM_TEST_CFLAGS([-fstack-protector=all])
fi
ACOPM_TEST_CFLAGS([-Og])
if test "x${ACOPM_TEST_CFLAGS_RESULT}" = "xno" ; then
ACOPM_TEST_CFLAGS([-O0])
fi
ACOPM_TEST_CFLAGS([-gdwarf-4])
if test "x${ACOPM_TEST_CFLAGS_RESULT}" = "xno" ; then
ACOPM_TEST_CFLAGS([-ggdb3])
if test "x${ACOPM_TEST_CFLAGS_RESULT}" = "xno" ; then
ACOPM_TEST_CFLAGS([-g])
fi
fi
]
)
AC_DEFUN([ACOPM_TEST_CFLAGS_NODEBUG],
[
ACOPM_TEST_CFLAGS([-fstack-protector-strong])
if test "x${ACOPM_TEST_CFLAGS_RESULT}" = "xno" ; then
ACOPM_TEST_CFLAGS([-fstack-protector=strong])
fi
ACOPM_TEST_CFLAGS([-O2])
if test "x${ACOPM_TEST_CFLAGS_RESULT}" = "xno" ; then
ACOPM_TEST_CFLAGS([-O1])
if test "x${ACOPM_TEST_CFLAGS_RESULT}" = "xno" ; then
ACOPM_TEST_CFLAGS([-O])
fi
fi
]
)
AC_DEFUN([ACOPM_TEST_CFLAGS_EXTRA],
[
ACOPM_TEST_CFLAGS([-Wa,--noexecstack])
ACOPM_TEST_CFLAGS([-Wl,-z,now])
ACOPM_TEST_CFLAGS([-Wl,-z,relro])
ACOPM_TEST_CFLAGS([-Wl,--as-needed])
ACOPM_TEST_CFLAGS([-fstrict-aliasing])
ACOPM_TEST_CFLAGS([-pipe])
ACOPM_TEST_CFLAGS([-DPIC -fPIC -pie])
AC_MSG_CHECKING([whether _FORTIFY_SOURCE is defined ])
AC_RUN_IFELSE(
[
AC_LANG_PROGRAM(
[[
#include <stdlib.h>
]], [[
#ifdef _FORTIFY_SOURCE
return EXIT_SUCCESS;
#else
return EXIT_FAILURE;
#endif
]]
)
],
[
AC_MSG_RESULT([yes])
],
[
AC_MSG_RESULT([no])
ACOPM_TEST_CFLAGS([-D_FORTIFY_SOURCE=2])
],
[
AC_MSG_RESULT([cannot; cross-compiling])
ACOPM_TEST_CFLAGS([-D_FORTIFY_SOURCE=2])
]
)
]
)