X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=m4%2Fsxe-compiler.m4;h=af61b929a0f70e25781446bdd4bed5c78580849a;hb=refs%2Ftags%2Fv22.1.16;hp=83d16343cd1a08b34aa3cf4f39cbfc5bf01b2ebe;hpb=3197b6ea8a0ff24ff7e24e468e6eaad5487c3289;p=sxemacs diff --git a/m4/sxe-compiler.m4 b/m4/sxe-compiler.m4 index 83d1634..af61b92 100644 --- a/m4/sxe-compiler.m4 +++ b/m4/sxe-compiler.m4 @@ -67,7 +67,7 @@ AC_DEFUN([SXE_CHECK_CC_VERSION], [dnl dnl non-gcc machine-specific magic - contributions welcome *) case "$ac_cv_build" in - *-*-aix* ) + *-*-aix* ) dnl Yes, it's this ugly for AIX... realcc=`which $SXEMACS_CC` dnl Might be a symlink created by replaceCset command @@ -165,7 +165,7 @@ AC_DEFUN([SXE_CHECK_CC_EXTERN_INLINE_DARWIN], [ gcc*\ 4.0.1* | * ) # For now we assume all MacOS compilers # are not able to handle EXTERN_INLINE - AC_DEFINE([SXE_STATIC_EXTERN_INLINE], [1], + AC_DEFINE([SXE_STATIC_EXTERN_INLINE], [1], [The MacOS gcc does not support extern inline]) sxe_cc_gnu89_extern_inline="no" ;; @@ -305,7 +305,7 @@ AC_DEFUN([SXE_CHECK_CC_CHAR], [dnl #define _VA_LIST va_list typedef void *__gnuc_va_list; typedef __gnuc_va_list va_list;]],[[1]])], [dnl - AC_MSG_RESULT(yes) + AC_MSG_RESULT(yes) AC_DEFINE([NEED_GNUC_VA_LIST], [1], [Description here!])], [dnl AC_MSG_RESULT(no)]) fi @@ -402,7 +402,7 @@ AC_DEFUN([SXE_DO_CC_HACKS], [dnl SXE_DIE("Building with g++ is not supported") fi - + ])dnl SXE_DO_CC_HACKS AC_DEFUN([SXE_CHECK_CC_NESTED_FUNS], [dnl @@ -740,7 +740,7 @@ AC_DEFUN([SXE_OPTIFLAGS], [dnl echo "" optiflags="-O3" fi - + SXE_CHECK_COMPILER_FLAGS([$optiflags], [:], [ echo "" echo "********************************************************" @@ -926,26 +926,26 @@ AC_DEFUN([SXE_CC_MAXOPT_GNU], [dnl fi ## these belong to the corresponding MAXOPT macro -dnl SXE_CHECK_COMPILER_FLAGS([-xopenmp], [ -dnl optiflags="$optiflags -xopenmp" -dnl sxe_cv_feat_omp="yes" -dnl ]) -dnl SXE_CHECK_COMPILER_FLAGS([-openmp], [ -dnl optiflags="$optiflags -openmp" -dnl sxe_cv_feat_omp="yes" -dnl ]) -dnl SXE_CHECK_COMPILER_FLAGS([-mp], [ -dnl optiflags="$optiflags -mp" -dnl sxe_cv_feat_omp="yes" -dnl ]) -dnl SXE_CHECK_COMPILER_FLAGS([-omp], [ -dnl optiflags="$optiflags -omp" -dnl sxe_cv_feat_omp="yes" -dnl ]) -dnl SXE_CHECK_COMPILER_FLAGS([-qsmp=omp], [ -dnl optiflags="$optiflags -qsmp=omp" -dnl sxe_cv_feat_omp="yes" -dnl ]) +dnl SXE_CHECK_COMPILER_FLAGS([-xopenmp], [ +dnl optiflags="$optiflags -xopenmp" +dnl sxe_cv_feat_omp="yes" +dnl ]) +dnl SXE_CHECK_COMPILER_FLAGS([-openmp], [ +dnl optiflags="$optiflags -openmp" +dnl sxe_cv_feat_omp="yes" +dnl ]) +dnl SXE_CHECK_COMPILER_FLAGS([-mp], [ +dnl optiflags="$optiflags -mp" +dnl sxe_cv_feat_omp="yes" +dnl ]) +dnl SXE_CHECK_COMPILER_FLAGS([-omp], [ +dnl optiflags="$optiflags -omp" +dnl sxe_cv_feat_omp="yes" +dnl ]) +dnl SXE_CHECK_COMPILER_FLAGS([-qsmp=omp], [ +dnl optiflags="$optiflags -qsmp=omp" +dnl sxe_cv_feat_omp="yes" +dnl ]) ## add -lgomp to ldflags if test "$sxe_cv_feat_omp" = "yes"; then LDFLAGS="$LDFLAGS -lgomp" @@ -958,9 +958,9 @@ dnl ]) ## would be nice to have this but it triggers too many ## meaningless warnings -dnl ## -fstrict-aliasing for gcc-2.95+ -dnl SXE_CHECK_COMPILER_FLAGS([-fstrict-aliasing], -dnl [optiflags="$optiflags -fstrict-aliasing"]) +dnl ## -fstrict-aliasing for gcc-2.95+ +dnl SXE_CHECK_COMPILER_FLAGS([-fstrict-aliasing], +dnl [optiflags="$optiflags -fstrict-aliasing"]) SXE_CHECK_COMPILER_FLAGS([-fearly-inlining], [optiflags="$optiflags -fearly-inlining"]) @@ -985,14 +985,6 @@ dnl [optiflags="$optiflags -fstrict-aliasing"]) SXE_CHECK_COMPILER_FLAGS([-fsection-anchors], [optiflags="$optiflags -fsection-anchors"]) -dnl ## actually this belongs to error-checking stuff -dnl SXE_CHECK_COMPILER_FLAGS([-fstack-protector], -dnl [optiflags="$optiflags -fstack-protector"]) -dnl if test "$sxe_cv_c_flags__fstack_protector" = "yes"; then -dnl ## just check for ssp in this case -dnl AC_CHECK_LIB([ssp], [__stack_chk_guard]) -dnl fi - SXE_CHECK_COMPILER_FLAGS([-fbranch-target-load-optimize]) SXE_CHECK_COMPILER_FLAGS([-fbranch-target-load-optimize2]) if test "$sxe_cv_c_flags__fbranch_target_load_optimize2" = "yes"; then @@ -1554,7 +1546,7 @@ AC_DEFUN([SXE_CHECK_C99_NJSF], [dnl ]],[[ return 0; ]])], [AC_MSG_RESULT(yes) - have_c99="yes"], + have_c99="yes"], [c_switch_site=$sace_c_switch_site AC_MSG_RESULT(no) AC_MSG_WARN([C99 not supported, reverting option append]) @@ -1610,7 +1602,25 @@ extern void f(void*restrict[]); [Define restrict to nothing]) fi AC_MSG_RESULT([$typeofname]) -])dnl SXE_CHECK_BROKEN_RESTRICT +])dnl SXE_CHECK_BROKEN_RESTRICT + +AC_DEFUN([SXE_STACK_FLAGS], [dnl + ## actually this belongs to error-checking stuff + SXE_CHECK_COMPILER_FLAGS([-fstack-protector]) + if test "${sxe_cv_c_flags__fstack_protector}" = "yes"; then + case "$opsys" in + freebsd) + diagflags="${diagflags} -fstack-protector" + ;; + *) + AC_CHECK_LIB([ssp], [__stack_chk_guard]) + if test "${ac_cv_lib_ssp___stack_chk_guard}" = "yes"; then + diagflags="${diagflags} -fstack-protector" + fi + ;; + esac + fi +])dnl SXE_STACK_FLAGS dnl recommended interface macros ## compiler wrapper @@ -1662,16 +1672,31 @@ AC_DEFUN([SXE_CHECK_CFLAGS], [dnl dnl #### This may need to be overhauled so that all of SXEMACS_CC's flags dnl are handled separately, not just the xe_cflags_warning stuff. + ## diagnostic stuff and error checking + ## this may somehow be in contradiction to optimisation flags later on + ## so we issue the tests right here + if test "${with_error_checking_stack}" = "yes"; then + SXE_STACK_FLAGS + fi + if test "${with_error_checking_malldbg}" = "yes"; then + ## keep MALLOC_PERTURB_ and friends? + : + else + EXTRA_BATCHENV="MALLOC_PERTURB_= MALLOC_CHECK_=" + AC_SUBST([EXTRA_BATCHENV]) + fi + SXE_CFLAGS="${SXE_CFLAGS} ${diagflags}" + ## Use either command line flag, environment var, or autodetection if test "$with_ridiculously_aggressive_optimisations" = "yes"; then CFLAGS="" SXE_DEBUGFLAGS SXE_WARNFLAGS SXE_OPTIFLAGS - SXE_CFLAGS="$debugflags $optiflags $warnflags" + SXE_CFLAGS="$SXE_CFLAGS $debugflags $optiflags $warnflags" SXE_FEATFLAGS - SXE_CFLAGS="$debugflags $featflags $optiflags $warnflags" + SXE_CFLAGS="$SXE_CFLAGS $featflags" elif test "$CFLAGS_uspecified_p" = "no" -o \ "$ac_test_CFLAGS" != "set"; then @@ -1712,16 +1737,17 @@ AC_DEFUN([SXE_CHECK_CFLAGS], [dnl optiflags="-O"]) fi - SXE_CFLAGS="$debugflags $optiflags $warnflags" + SXE_CFLAGS="$SXE_CFLAGS $debugflags $optiflags $warnflags" SXE_FEATFLAGS - SXE_CFLAGS="$debugflags $featflags $optiflags $warnflags" + SXE_CFLAGS="$SXE_CFLAGS $featflags" else - SXE_CFLAGS=${USER_CFLAGS} + SXE_CFLAGS="${SXE_CFLAGS} ${USER_CFLAGS}" featflags="" debugflags="" optiflags="" warnflags="" + diagflags="" fi ## unset the werror flag again