1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-01-10 05:17:59 +03:00

Enable compiler stack protection flags

This commit is contained in:
Daniel P. Berrange 2007-03-21 14:52:12 +00:00
parent 07fb9d64b0
commit 1c236e9c25
2 changed files with 36 additions and 32 deletions

View File

@ -1,3 +1,10 @@
Wed Mar 21 10:52:06 EST 2007 Daniel P. Berrange <berrange@redhat.com>
* acinclude.m4: Always use -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector --param=ssp-buffer-size=4
-fasynchronous-unwind-tables if supported by the compiler. Check
all warnings flags for compiler support
Tue Mar 20 10:00:06 EST 2007 Daniel P. Berrange <berrange@redhat.com> Tue Mar 20 10:00:06 EST 2007 Daniel P. Berrange <berrange@redhat.com>
* qemud/conf.c: Fixed buffer overflow in code building up * qemud/conf.c: Fixed buffer overflow in code building up

View File

@ -12,57 +12,54 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
AC_ARG_ENABLE(compile-warnings, AC_ARG_ENABLE(compile-warnings,
AC_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@], AC_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@],
[Turn on compiler warnings]),, [Turn on compiler warnings]),,
[enable_compile_warnings="m4_default([$1],[yes])"]) [enable_compile_warnings="m4_default([$1],[maximum])"])
warnCFLAGS= warnCFLAGS=
if test "x$GCC" != xyes; then
enable_compile_warnings=no
fi
warning_flags= try_compiler_flags="-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables"
realsave_CFLAGS="$CFLAGS"
case "$enable_compile_warnings" in case "$enable_compile_warnings" in
no) no)
warning_flags=
;; ;;
minimum) minimum)
warning_flags="-Wall" try_compiler_flags="$try_compiler_flags -Wall"
;; ;;
yes) yes)
warning_flags="-Wall -Wmissing-prototypes" try_compiler_flags="$try_compiler_flags -Wall -Wmissing-prototypes"
;; ;;
maximum|error) maximum|error)
warning_flags="-Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith" try_compiler_flags="$try_compiler_flags -Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith"
warning_flags="$warning_flags -Wextra -Wshadow -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Winline -Wredundant-decls" try_compiler_flags="$try_compiler_flags -Wextra -Wshadow -Wcast-align -Wwrite-strings -Waggregate-return"
CFLAGS="$warning_flags $CFLAGS" try_compiler_falgs="$try_compiler_flags -Wstrict-prototypes -Winline -Wredundant-decls -Wno-sign-compare"
for option in -Wno-sign-compare; do
SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $option"
AC_MSG_CHECKING([whether gcc understands $option])
AC_TRY_COMPILE([], [],
has_option=yes,
has_option=no,)
CFLAGS="$SAVE_CFLAGS"
AC_MSG_RESULT($has_option)
if test $has_option = yes; then
warning_flags="$warning_flags $option"
fi
unset has_option
unset SAVE_CFLAGS
done
unset option
if test "$enable_compile_warnings" = "error" ; then if test "$enable_compile_warnings" = "error" ; then
warning_flags="$warning_flags -Werror" try_compiler_flags="$try_compiler_flags -Werror"
fi fi
;; ;;
*) *)
AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings) AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings)
;; ;;
esac esac
compiler_flags=
for option in $try_compiler_flags; do
SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $option"
AC_MSG_CHECKING([whether gcc understands $option])
AC_TRY_COMPILE([], [],
has_option=yes,
has_option=no,)
CFLAGS="$SAVE_CFLAGS"
AC_MSG_RESULT($has_option)
if test $has_option = yes; then
compiler_flags="$compiler_flags $option"
fi
unset has_option
unset SAVE_CFLAGS
done
unset option
unset try_compiler_flags
CFLAGS="$realsave_CFLAGS" CFLAGS="$realsave_CFLAGS"
AC_MSG_CHECKING(what warning flags to pass to the C compiler)
AC_MSG_RESULT($warning_flags)
AC_ARG_ENABLE(iso-c, AC_ARG_ENABLE(iso-c,
AC_HELP_STRING([--enable-iso-c], AC_HELP_STRING([--enable-iso-c],
@ -85,6 +82,6 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
fi fi
AC_MSG_RESULT($complCFLAGS) AC_MSG_RESULT($complCFLAGS)
WARN_CFLAGS="$warning_flags $complCFLAGS" WARN_CFLAGS="$compiler_flags $complCFLAGS"
AC_SUBST(WARN_CFLAGS) AC_SUBST(WARN_CFLAGS)
]) ])