Lines 974-993
AC_SUBST(UNIVERSAL_ARCH_FLAGS)
Link Here
|
974 |
# tweak BASECFLAGS based on compiler and platform |
974 |
# tweak BASECFLAGS based on compiler and platform |
975 |
case $GCC in |
975 |
case $GCC in |
976 |
yes) |
976 |
yes) |
977 |
# Python violates C99 rules, by casting between incompatible |
977 |
# Python doesn't violate C99 aliasing rules, but older versions of |
978 |
# pointer types. GCC may generate bad code as a result of that, |
978 |
# GCC produce warnings for legal Python code. Enable |
979 |
# so use -fno-strict-aliasing if supported. |
979 |
# -fno-strict-aliasing on versions of GCC that support but produce |
980 |
AC_MSG_CHECKING(whether $CC accepts -fno-strict-aliasing) |
980 |
# warnings. See Issue3326 |
|
|
981 |
AC_MSG_CHECKING(whether $CC accepts and needs -fno-strict-aliasing) |
981 |
ac_save_cc="$CC" |
982 |
ac_save_cc="$CC" |
982 |
CC="$CC -fno-strict-aliasing" |
983 |
CC="$CC -fno-strict-aliasing" |
983 |
AC_CACHE_VAL(ac_cv_no_strict_aliasing_ok, |
984 |
save_CFLAGS="$CFLAGS" |
|
|
985 |
AC_CACHE_VAL(ac_cv_no_strict_aliasing, |
984 |
AC_COMPILE_IFELSE( |
986 |
AC_COMPILE_IFELSE( |
985 |
[AC_LANG_PROGRAM([[]], [[]])], |
987 |
[ |
986 |
[ac_cv_no_strict_aliasing_ok=yes], |
988 |
AC_LANG_PROGRAM([[]], [[]]) |
987 |
[ac_cv_no_strict_aliasing_ok=no])) |
989 |
],[ |
|
|
990 |
CC="$ac_save_cc -fstrict-aliasing" |
991 |
CFLAGS="$CFLAGS -Werror -Wstrict-aliasing" |
992 |
AC_COMPILE_IFELSE( |
993 |
[ |
994 |
AC_LANG_PROGRAM([[void f(int **x) {}]], |
995 |
[[double *x; f((int **) &x);]]) |
996 |
],[ |
997 |
ac_cv_no_strict_aliasing=no |
998 |
],[ |
999 |
ac_cv_no_strict_aliasing=yes |
1000 |
]) |
1001 |
],[ |
1002 |
ac_cv_no_strict_aliasing=no |
1003 |
])) |
1004 |
CFLAGS="$save_CFLAGS" |
988 |
CC="$ac_save_cc" |
1005 |
CC="$ac_save_cc" |
989 |
AC_MSG_RESULT($ac_cv_no_strict_aliasing_ok) |
1006 |
AC_MSG_RESULT($ac_cv_no_strict_aliasing) |
990 |
if test $ac_cv_no_strict_aliasing_ok = yes |
1007 |
if test $ac_cv_no_strict_aliasing = yes |
991 |
then |
1008 |
then |
992 |
BASECFLAGS="$BASECFLAGS -fno-strict-aliasing" |
1009 |
BASECFLAGS="$BASECFLAGS -fno-strict-aliasing" |
993 |
fi |
1010 |
fi |