mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 17:34:18 +03:00
Enable compiler stack protection flags
This commit is contained in:
parent
07fb9d64b0
commit
1c236e9c25
@ -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>
|
||||
|
||||
* qemud/conf.c: Fixed buffer overflow in code building up
|
||||
|
47
acinclude.m4
47
acinclude.m4
@ -12,31 +12,36 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
|
||||
AC_ARG_ENABLE(compile-warnings,
|
||||
AC_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@],
|
||||
[Turn on compiler warnings]),,
|
||||
[enable_compile_warnings="m4_default([$1],[yes])"])
|
||||
[enable_compile_warnings="m4_default([$1],[maximum])"])
|
||||
|
||||
warnCFLAGS=
|
||||
if test "x$GCC" != xyes; then
|
||||
enable_compile_warnings=no
|
||||
fi
|
||||
|
||||
warning_flags=
|
||||
realsave_CFLAGS="$CFLAGS"
|
||||
try_compiler_flags="-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables"
|
||||
|
||||
case "$enable_compile_warnings" in
|
||||
no)
|
||||
warning_flags=
|
||||
;;
|
||||
minimum)
|
||||
warning_flags="-Wall"
|
||||
try_compiler_flags="$try_compiler_flags -Wall"
|
||||
;;
|
||||
yes)
|
||||
warning_flags="-Wall -Wmissing-prototypes"
|
||||
try_compiler_flags="$try_compiler_flags -Wall -Wmissing-prototypes"
|
||||
;;
|
||||
maximum|error)
|
||||
warning_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"
|
||||
CFLAGS="$warning_flags $CFLAGS"
|
||||
for option in -Wno-sign-compare; do
|
||||
try_compiler_flags="$try_compiler_flags -Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith"
|
||||
try_compiler_flags="$try_compiler_flags -Wextra -Wshadow -Wcast-align -Wwrite-strings -Waggregate-return"
|
||||
try_compiler_falgs="$try_compiler_flags -Wstrict-prototypes -Winline -Wredundant-decls -Wno-sign-compare"
|
||||
if test "$enable_compile_warnings" = "error" ; then
|
||||
try_compiler_flags="$try_compiler_flags -Werror"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings)
|
||||
;;
|
||||
esac
|
||||
|
||||
compiler_flags=
|
||||
for option in $try_compiler_flags; do
|
||||
SAVE_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $option"
|
||||
AC_MSG_CHECKING([whether gcc understands $option])
|
||||
@ -46,23 +51,15 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
|
||||
CFLAGS="$SAVE_CFLAGS"
|
||||
AC_MSG_RESULT($has_option)
|
||||
if test $has_option = yes; then
|
||||
warning_flags="$warning_flags $option"
|
||||
compiler_flags="$compiler_flags $option"
|
||||
fi
|
||||
unset has_option
|
||||
unset SAVE_CFLAGS
|
||||
done
|
||||
unset option
|
||||
if test "$enable_compile_warnings" = "error" ; then
|
||||
warning_flags="$warning_flags -Werror"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings)
|
||||
;;
|
||||
esac
|
||||
unset try_compiler_flags
|
||||
|
||||
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_HELP_STRING([--enable-iso-c],
|
||||
@ -85,6 +82,6 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
|
||||
fi
|
||||
AC_MSG_RESULT($complCFLAGS)
|
||||
|
||||
WARN_CFLAGS="$warning_flags $complCFLAGS"
|
||||
WARN_CFLAGS="$compiler_flags $complCFLAGS"
|
||||
AC_SUBST(WARN_CFLAGS)
|
||||
])
|
||||
|
Loading…
Reference in New Issue
Block a user