sim: warnings: compile build tools with -Werror too
Add support for compiling build tools with various -Werror settings. Since the tools don't compile cleanly with the same set of flags as the rest of the sim code, we need to maintain & test a separate list. Only bother when not cross-compiling so we don't have to test all the flags against the build compiler. This should be good enough for our actual development flows.
This commit is contained in:
parent
5048cb28f4
commit
435ad222b3
@ -67,7 +67,7 @@ AM_CPPFLAGS_FOR_BUILD = \
|
|||||||
-I$(srcroot)/include \
|
-I$(srcroot)/include \
|
||||||
$(SIM_HW_CFLAGS) \
|
$(SIM_HW_CFLAGS) \
|
||||||
$(SIM_INLINE)
|
$(SIM_INLINE)
|
||||||
COMPILE_FOR_BUILD = $(CC_FOR_BUILD) $(AM_CPPFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD)
|
COMPILE_FOR_BUILD = $(CC_FOR_BUILD) $(AM_CPPFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(BUILD_WERROR_CFLAGS) $(BUILD_WARN_CFLAGS)
|
||||||
LINK_FOR_BUILD = $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@
|
LINK_FOR_BUILD = $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@
|
||||||
|
|
||||||
## Deps to add to the install-data-local target.
|
## Deps to add to the install-data-local target.
|
||||||
|
@ -1608,6 +1608,8 @@ AUTOCONF = @AUTOCONF@
|
|||||||
AUTOHEADER = @AUTOHEADER@
|
AUTOHEADER = @AUTOHEADER@
|
||||||
AUTOMAKE = @AUTOMAKE@
|
AUTOMAKE = @AUTOMAKE@
|
||||||
AWK = @AWK@
|
AWK = @AWK@
|
||||||
|
BUILD_WARN_CFLAGS = @BUILD_WARN_CFLAGS@
|
||||||
|
BUILD_WERROR_CFLAGS = @BUILD_WERROR_CFLAGS@
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
CCDEPMODE = @CCDEPMODE@
|
CCDEPMODE = @CCDEPMODE@
|
||||||
CC_FOR_BUILD = @CC_FOR_BUILD@
|
CC_FOR_BUILD = @CC_FOR_BUILD@
|
||||||
@ -1901,7 +1903,7 @@ AM_CPPFLAGS = $(INCGNU) -I$(srcroot) -I$(srcroot)/include -I../bfd \
|
|||||||
-,_,$(@D)_$(@F))) -I$(srcdir)/common -DSIM_TOPDIR_BUILD
|
-,_,$(@D)_$(@F))) -I$(srcdir)/common -DSIM_TOPDIR_BUILD
|
||||||
AM_CPPFLAGS_FOR_BUILD = -I$(srcroot)/include $(SIM_HW_CFLAGS) \
|
AM_CPPFLAGS_FOR_BUILD = -I$(srcroot)/include $(SIM_HW_CFLAGS) \
|
||||||
$(SIM_INLINE) -I$(srcdir)/common
|
$(SIM_INLINE) -I$(srcdir)/common
|
||||||
COMPILE_FOR_BUILD = $(CC_FOR_BUILD) $(AM_CPPFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD)
|
COMPILE_FOR_BUILD = $(CC_FOR_BUILD) $(AM_CPPFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(BUILD_WERROR_CFLAGS) $(BUILD_WARN_CFLAGS)
|
||||||
LINK_FOR_BUILD = $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@
|
LINK_FOR_BUILD = $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@
|
||||||
SIM_INSTALL_DATA_LOCAL_DEPS =
|
SIM_INSTALL_DATA_LOCAL_DEPS =
|
||||||
SIM_INSTALL_EXEC_LOCAL_DEPS = $(am__append_33)
|
SIM_INSTALL_EXEC_LOCAL_DEPS = $(am__append_33)
|
||||||
|
70
sim/configure
vendored
70
sim/configure
vendored
@ -991,6 +991,8 @@ PACKAGE_NAME
|
|||||||
PATH_SEPARATOR
|
PATH_SEPARATOR
|
||||||
SHELL
|
SHELL
|
||||||
SIM_TOOLCHAIN_VARS
|
SIM_TOOLCHAIN_VARS
|
||||||
|
BUILD_WERROR_CFLAGS
|
||||||
|
BUILD_WARN_CFLAGS
|
||||||
WERROR_CFLAGS
|
WERROR_CFLAGS
|
||||||
WARN_CFLAGS'
|
WARN_CFLAGS'
|
||||||
ac_subst_files=''
|
ac_subst_files=''
|
||||||
@ -12683,7 +12685,7 @@ else
|
|||||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||||
lt_status=$lt_dlunknown
|
lt_status=$lt_dlunknown
|
||||||
cat > conftest.$ac_ext <<_LT_EOF
|
cat > conftest.$ac_ext <<_LT_EOF
|
||||||
#line 12686 "configure"
|
#line 12688 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
#if HAVE_DLFCN_H
|
#if HAVE_DLFCN_H
|
||||||
@ -12789,7 +12791,7 @@ else
|
|||||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||||
lt_status=$lt_dlunknown
|
lt_status=$lt_dlunknown
|
||||||
cat > conftest.$ac_ext <<_LT_EOF
|
cat > conftest.$ac_ext <<_LT_EOF
|
||||||
#line 12792 "configure"
|
#line 12794 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
#if HAVE_DLFCN_H
|
#if HAVE_DLFCN_H
|
||||||
@ -16179,6 +16181,12 @@ build_warnings="$build_warnings
|
|||||||
-Wstrict-prototypes
|
-Wstrict-prototypes
|
||||||
-Wno-enum-conversion
|
-Wno-enum-conversion
|
||||||
"
|
"
|
||||||
|
build_build_warnings="
|
||||||
|
-Wno-missing-braces
|
||||||
|
-Wno-stringop-truncation
|
||||||
|
-Wno-implicit-fallthrough
|
||||||
|
-Wno-shadow=local
|
||||||
|
"
|
||||||
|
|
||||||
case "${host}" in
|
case "${host}" in
|
||||||
*-*-mingw32*)
|
*-*-mingw32*)
|
||||||
@ -16228,9 +16236,12 @@ if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
WARN_CFLAGS=""
|
WARN_CFLAGS=""
|
||||||
|
BUILD_WARN_CFLAGS=""
|
||||||
if test "x${build_warnings}" != x -a "x$GCC" = xyes
|
if test "x${build_warnings}" != x -a "x$GCC" = xyes
|
||||||
then
|
then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking compiler warning flags" >&5
|
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking compiler warning flags" >&5
|
||||||
$as_echo_n "checking compiler warning flags... " >&6; }
|
$as_echo_n "checking compiler warning flags... " >&6; }
|
||||||
# Separate out the -Werror flag as some files just cannot be
|
# Separate out the -Werror flag as some files just cannot be
|
||||||
# compiled with it enabled.
|
# compiled with it enabled.
|
||||||
@ -16273,6 +16284,59 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
|||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${WARN_CFLAGS} ${WERROR_CFLAGS}" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${WARN_CFLAGS} ${WERROR_CFLAGS}" >&5
|
||||||
$as_echo "${WARN_CFLAGS} ${WERROR_CFLAGS}" >&6; }
|
$as_echo "${WARN_CFLAGS} ${WERROR_CFLAGS}" >&6; }
|
||||||
|
|
||||||
|
|
||||||
|
if test "x$cross_compiling" = "xno"; then :
|
||||||
|
SAVE_WARN_CFLAGS=$WARN_CFLAGS
|
||||||
|
build_warnings=$build_build_warnings
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking compiler warning flags" >&5
|
||||||
|
$as_echo_n "checking compiler warning flags... " >&6; }
|
||||||
|
# Separate out the -Werror flag as some files just cannot be
|
||||||
|
# compiled with it enabled.
|
||||||
|
for w in ${build_warnings}; do
|
||||||
|
case $w in
|
||||||
|
-Werr*) WERROR_CFLAGS=-Werror ;;
|
||||||
|
*) w="$w"
|
||||||
|
case $w in
|
||||||
|
-Wno-*)
|
||||||
|
wtest=`echo $w | sed 's/-Wno-/-W/g'` ;;
|
||||||
|
-Wformat-nonliteral)
|
||||||
|
w="-Wformat $w"
|
||||||
|
wtest="$w"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
wtest=$w ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
saved_CFLAGS="$CFLAGS"
|
||||||
|
CFLAGS="$CFLAGS -Werror $wtest"
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_c_try_compile "$LINENO"; then :
|
||||||
|
WARN_CFLAGS="${WARN_CFLAGS} $w"
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
CFLAGS="$saved_CFLAGS"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${WARN_CFLAGS} ${WERROR_CFLAGS}" >&5
|
||||||
|
$as_echo "${WARN_CFLAGS} ${WERROR_CFLAGS}" >&6; }
|
||||||
|
|
||||||
|
BUILD_WARN_CFLAGS=$WARN_CFLAGS
|
||||||
|
WARN_CFLAGS=$SAVE_WARN_CFLAGS
|
||||||
|
BUILD_WERROR_CFLAGS=$WERROR_CFLAGS
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -Wno-shadow=local is supported" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -Wno-shadow=local is supported" >&5
|
||||||
$as_echo_n "checking whether -Wno-shadow=local is supported... " >&6; }
|
$as_echo_n "checking whether -Wno-shadow=local is supported... " >&6; }
|
||||||
w="-Wno-shadow=local"
|
w="-Wno-shadow=local"
|
||||||
|
@ -76,6 +76,17 @@ dnl The cgen virtual insn logic involves enum conversions.
|
|||||||
dnl Disable until we can figure out how to make this work.
|
dnl Disable until we can figure out how to make this work.
|
||||||
-Wno-enum-conversion
|
-Wno-enum-conversion
|
||||||
"
|
"
|
||||||
|
build_build_warnings="
|
||||||
|
dnl TODO Fix the sh/gencode.c which triggers a ton of these warnings.
|
||||||
|
-Wno-missing-braces
|
||||||
|
dnl TODO Figure out the igen code that triggers warnings w/FORTIFY_SOURCE.
|
||||||
|
-Wno-stringop-truncation
|
||||||
|
dnl Fixing this requires ATTRIBUTE_FALLTHROUGH support at build time, but we
|
||||||
|
dnl don't have gnulib there (yet).
|
||||||
|
-Wno-implicit-fallthrough
|
||||||
|
dnl TODO Enable this after cleaning up code.
|
||||||
|
-Wno-shadow=local
|
||||||
|
"
|
||||||
|
|
||||||
case "${host}" in
|
case "${host}" in
|
||||||
*-*-mingw32*)
|
*-*-mingw32*)
|
||||||
@ -123,8 +134,10 @@ if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
|
|||||||
echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
|
echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
|
||||||
fi])dnl
|
fi])dnl
|
||||||
WARN_CFLAGS=""
|
WARN_CFLAGS=""
|
||||||
|
BUILD_WARN_CFLAGS=""
|
||||||
if test "x${build_warnings}" != x -a "x$GCC" = xyes
|
if test "x${build_warnings}" != x -a "x$GCC" = xyes
|
||||||
then
|
then
|
||||||
|
AC_DEFUN([_SIM_TEST_ALL_WARNING_FLAGS], [dnl
|
||||||
AC_MSG_CHECKING(compiler warning flags)
|
AC_MSG_CHECKING(compiler warning flags)
|
||||||
# Separate out the -Werror flag as some files just cannot be
|
# Separate out the -Werror flag as some files just cannot be
|
||||||
# compiled with it enabled.
|
# compiled with it enabled.
|
||||||
@ -135,6 +148,20 @@ then
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
|
AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl Test the host flags.
|
||||||
|
_SIM_TEST_ALL_WARNING_FLAGS
|
||||||
|
|
||||||
|
dnl Test the build flags.
|
||||||
|
AS_IF([test "x$cross_compiling" = "xno"], [dnl
|
||||||
|
SAVE_WARN_CFLAGS=$WARN_CFLAGS
|
||||||
|
build_warnings=$build_build_warnings
|
||||||
|
_SIM_TEST_ALL_WARNING_FLAGS
|
||||||
|
BUILD_WARN_CFLAGS=$WARN_CFLAGS
|
||||||
|
WARN_CFLAGS=$SAVE_WARN_CFLAGS
|
||||||
|
BUILD_WERROR_CFLAGS=$WERROR_CFLAGS
|
||||||
|
])
|
||||||
|
|
||||||
dnl Test individual flags to export to dedicated variables.
|
dnl Test individual flags to export to dedicated variables.
|
||||||
m4_map([_SIM_EXPORT_WARNING_FLAG], m4_split(m4_normalize([
|
m4_map([_SIM_EXPORT_WARNING_FLAG], m4_split(m4_normalize([
|
||||||
@ -183,3 +210,5 @@ AC_DEFUN([_SIM_EXPORT_WARNING_FLAG], [dnl
|
|||||||
])
|
])
|
||||||
AC_SUBST(WARN_CFLAGS)
|
AC_SUBST(WARN_CFLAGS)
|
||||||
AC_SUBST(WERROR_CFLAGS)
|
AC_SUBST(WERROR_CFLAGS)
|
||||||
|
AC_SUBST(BUILD_WARN_CFLAGS)
|
||||||
|
AC_SUBST(BUILD_WERROR_CFLAGS)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user