macos: add support for MacOS 11.0
[openafs.git] / src / cf / osconf.m4
index 60af6e7..51bcdb4 100644 (file)
@@ -6,7 +6,7 @@ RXDEBUG="-DRXDEBUG"
 SHLIB_SUFFIX="so"
 CCOBJ="\$(CC)"
 MT_CC="\$(CC)"
-XLIBS="${LIB_AFSDB} ${XBSA_XLIBS} ${LIB_libintl}"
+XLIBS="${LIB_AFSDB} ${LIB_libintl}"
 MT_LIBS='-lpthread ${XLIBS}'
 XCFLAGS=
 
@@ -25,57 +25,29 @@ PAM_OPTMZ=
 
 dnl standard programs
 AC_PROG_RANLIB
-AC_CHECK_PROGS(AS, as, [${am_missing_run}as])
-AC_CHECK_PROGS(AR, ar, [${am_missing_run}ar])
-AC_CHECK_PROGS(MV, mv, [${am_missing_run}mv])
-AC_CHECK_PROGS(RM, rm, [${am_missing_run}rm])
-AC_CHECK_PROGS(LD, ld, [${am_missing_run}ld])
-AC_CHECK_PROGS(CP, cp, [${am_missing_run}cp])
-AC_CHECK_PROGS(STRIP, strip, [${am_missing_run}strip])
-AC_CHECK_PROGS(LORDER, lorder, [${am_missing_run}lorder])
-AC_CHECK_PROGS(GENCAT, gencat, [${am_missing_run}gencat])
-
-dnl TODO - need to disable STRIP if we are doing debugging in any user space code
+AC_CHECK_TOOL(AS, as, [false])
+AC_CHECK_PROGS(MV, mv, [false])
+AC_CHECK_PROGS(RM, rm, [false])
+AC_CHECK_TOOL(LD, ld, [false])
+AC_CHECK_PROGS(CP, cp, [false])
+AC_CHECK_PROGS(GENCAT, gencat, [false])
 
 case $AFS_SYSNAME in
-       alpha_dux40)
-               CC="cc"
-               CSTATIC="-non_shared"
-               DBG="-g3"
-               MT_CFLAGS='-D_REENTRANT=1 -pthread'
-               MT_LIBS="-pthread -lpthread -lmach -lexc -lc"
-               XCFLAGS="-D_NO_PROTO -DOSF"
-               SHLIB_LINKER="${CC} -all -shared -expect_unresolved \"*\""
-               ;;
-
-       alpha_dux50 | alpha_dux51)
-               CC="cc"
-               DBG="-g3"
-               CSTATIC="-non_shared"
-               LWP_OPTMZ="-O2"
-               MT_CFLAGS='-D_REENTRANT=1 -pthread'
-               MT_LIBS="-pthread -lpthread -lmach -lexc -lc"
-               XCFLAGS="-D_NO_PROTO -DOSF"
-               SHLIB_LINKER="${CC} -all -shared -expect_unresolved \"*\""
-               ;;
-
        alpha_linux_22 | alpha_linux_24 | alpha_linux_26)
                CCOBJ="\$(CC) -fPIC"
                MT_CFLAGS='-pthread -D_REENTRANT'
                PAM_OPTMZ=-O2
                PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
                SHLIB_CFLAGS="-fPIC"
-               SHLIB_LDFLAGS="-shared -Xlinker -x"
                SHLIB_LINKER="${CC} -shared"
                ;;
 
-       arm_linux_24 | arm_linux26)
+       arm_linux_24 | arm_linux26 | arm64_linux26)
                CCOBJ="\$(CC) -fPIC"
                MT_CFLAGS='-pthread -D_REENTRANT'
                PAM_OPTMZ=-O2
                PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
                SHLIB_CFLAGS="-fPIC"
-               SHLIB_LDFLAGS="-shared -Xlinker -x"
                SHLIB_LINKER="${CC} -shared"
                ;;
 
@@ -94,7 +66,6 @@ case $AFS_SYSNAME in
                PAM_LIBS="/usr/lib/libpam.1"
                RANLIB="/usr/bin/ranlib"
                RM="/bin/rm"
-               SHLIB_LDFLAGS="-b -Bsymbolic"
                SHLIB_SUFFIX="sl"
                VFSCK_CFLAGS="-D_FILE64"
                XCFLAGS0="-ldld -lc -Wp,-H200000 -Wl,-a,archive -DAUTH_DBM_LOG +z -Wl,+k -D_LARGEFILE64_SOURCE"
@@ -119,7 +90,6 @@ case $AFS_SYSNAME in
                PAM_LIBS="/usr/lib/libpam.1"
                RANLIB="/usr/bin/ranlib"
                RM="/bin/rm"
-               SHLIB_LDFLAGS="-b -Bsymbolic"
                SHLIB_SUFFIX="sl"
                VFSCK_CFLAGS="-I/usr/old/usr/include -D_FILE64"
                XCFLAGS0="-ldld -lc -Wp,-H200000 -Wl,-a,archive -DAUTH_DBM_LOG +z -Wl,+k -D_LARGEFILE64_SOURCE"
@@ -145,7 +115,6 @@ case $AFS_SYSNAME in
                PAM_LIBS="/usr/lib/hpux32/libpam.so"
                RANLIB="/usr/bin/ranlib"
                RM="/bin/rm"
-               SHLIB_LDFLAGS="-b -Bsymbolic"
                SHLIB_SUFFIX="sl"
                VFSCK_CFLAGS="-I/usr/old/usr/include -D_FILE64"
                XCFLAGS0="-ldld -lc -Wp,-H200000 -Wl,-a,archive_shared -DAUTH_DBM_LOG +z -Wl,+k -D_LARGEFILE64_SOURCE"
@@ -160,7 +129,6 @@ case $AFS_SYSNAME in
                MT_CFLAGS='-pthread -D_REENTRANT'
                PAM_OPTMZ=-O2
                PAM_CFLAGS="-pipe -fPIC"
-               SHLIB_LDFLAGS="-shared -Xlinker -x"
                SHLIB_LINKER="${CC} -shared"
                XCFLAGS="-pipe"
                ;;
@@ -169,7 +137,6 @@ case $AFS_SYSNAME in
                MT_CFLAGS='-pthread -D_REENTRANT'
                PAM_OPTMZ=-O2
                PAM_CFLAGS="-pipe -fPIC"
-               SHLIB_LDFLAGS="-shared -Xlinker -x"
                SHLIB_LINKER="${CC} -shared"
                XCFLAGS="-pipe"
                ;;
@@ -177,7 +144,6 @@ case $AFS_SYSNAME in
        amd64_fbsd_*)
                MT_CFLAGS='-pthread -D_REENTRANT'
                PAM_CFLAGS="-O2 -pipe -fPIC"
-               SHLIB_LDFLAGS="-shared -Xlinker -x"
                SHLIB_LINKER="${CC} -shared"
                XCFLAGS="-O2 -pipe -fPIC"
                ;;
@@ -187,7 +153,6 @@ case $AFS_SYSNAME in
                PAM_OPTMZ=-O2
                PAM_CFLAGS="-pipe -fPIC"
                SHLIB_CFLAGS="-fPIC"
-               SHLIB_LDFLAGS="-shared -Xlinker -x"
                SHLIB_LINKER="${CC} -shared"
                XCFLAGS="-pipe"
                ;;
@@ -196,18 +161,16 @@ case $AFS_SYSNAME in
                MT_LIBS='${XLIBS}'
                PAM_OPTMZ=-O2
                PAM_CFLAGS="-pipe -fPIC"
-               SHLIB_LDFLAGS="-shared -Xlinker -x"
                SHLIB_LINKER="${CC} -shared"
                XCFLAGS="-pipe"
                ;;
 
-       ia64_linux24|ia64_linux26)
+       ia64_linux26)
                KERN_OPTMZ=-O2
                MT_CFLAGS='-pthread -D_REENTRANT'
                PAM_OPTMZ=-O2
                PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
                SHLIB_CFLAGS="-fPIC"
-               SHLIB_LDFLAGS="-shared -Xlinker -x"
                XCFLAGS="-G0"
                SHLIB_LINKER="${CC} -shared"
                ;;
@@ -219,15 +182,13 @@ case $AFS_SYSNAME in
                PAM_OPTMZ=-O2
                PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
                SHLIB_CFLAGS="-fPIC"
-               SHLIB_LDFLAGS="-shared -Xlinker -x"
                SHLIB_LINKER="${CC} -shared"
                ;;
 
-       ppc64_linux24 | ppc64_linux26)
+       ppc64_linux26|ppc64le_linux26)
                MT_CFLAGS='-pthread -D_REENTRANT'
                PAM_OPTMZ=-O2
                PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
-               SHLIB_LDFLAGS="-shared -Xlinker -x"
                SHLIB_CFLAGS="-fPIC"
                SHLIB_LINKER="${CC} -shared -m64"
                XCFLAGS="-m64"
@@ -245,11 +206,10 @@ case $AFS_SYSNAME in
                OPTMZ=-O2
                PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
                SHLIB_CFLAGS="-fPIC"
-               SHLIB_LDFLAGS="-shared -Xlinker -x"
                SHLIB_LINKER="${CC} -shared"
                ;;
 
-       i386_umlinux22 | i386_umlinux24 | i386_umlinux26)
+       i386_umlinux26)
                MT_CFLAGS='-pthread -D_REENTRANT'
                DBG=-g
                LWP_DBG=-g
@@ -258,7 +218,6 @@ case $AFS_SYSNAME in
                PAM_OPTMZ=-O2
                PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
                SHLIB_CFLAGS="-fPIC"
-               SHLIB_LDFLAGS="-shared -Xlinker -x"
                SHLIB_LINKER="${CC} -shared"
                ;;
 
@@ -270,21 +229,10 @@ case $AFS_SYSNAME in
                PAM_OPTMZ=-O2
                PAM_CFLAGS="-pipe -fpic"
                SHLIB_CFLAGS="-fpic"
-               SHLIB_LDFLAGS="-shared -Xlinker -x"
                SHLIB_LINKER="${CC} -shared"
                XCFLAGS=
                ;;
 
-       parisc_linux24)
-               KERN_OPTMZ=-O2
-               MT_CFLAGS='-pthread -D_REENTRANT'
-               PAM_OPTMZ=-O2
-               PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
-               SHLIB_CFLAGS="-fPIC"
-               SHLIB_LDFLAGS="-shared -Xlinker -x"
-               SHLIB_LINKER="${CC} -shared"
-               ;;
-
        ppc_darwin_70)
                CC="cc"
                AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework DiskArbitration -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
@@ -297,7 +245,7 @@ case $AFS_SYSNAME in
                EXTRA_VLIBOBJS="fstab.o"
                SHLIB_LINKER="${CC} \${ARCHFLAGS} -dynamiclib"
                SHLIB_SUFFIX="dylib"
-               XLIBS="${LIB_AFSDB} ${XBSA_XLIBS} -framework CoreFoundation"
+               XLIBS="${LIB_AFSDB} -framework CoreFoundation"
                ;;
 
        *_darwin_80)
@@ -314,7 +262,7 @@ case $AFS_SYSNAME in
                SHLIB_LINKER="${CC} \${ARCHFLAGS} -dynamiclib"
                SHLIB_SUFFIX="dylib"
                RANLIB="ranlib -c"
-               XLIBS="${LIB_AFSDB} ${XBSA_XLIBS} -framework CoreFoundation"
+               XLIBS="${LIB_AFSDB} -framework CoreFoundation"
                ;;
 
        *_darwin_90)
@@ -331,7 +279,7 @@ case $AFS_SYSNAME in
                SHLIB_LINKER="${CC} \${ARCHFLAGS} -dynamiclib"
                SHLIB_SUFFIX="dylib"
                RANLIB="ranlib -c"
-               XLIBS="${LIB_AFSDB} ${XBSA_XLIBS} -framework CoreFoundation"
+               XLIBS="${LIB_AFSDB} -framework CoreFoundation"
                ;;
 
        arm_darwin_100)
@@ -351,10 +299,10 @@ case $AFS_SYSNAME in
                SHLIB_LINKER="${CC} -dynamiclib"
                SHLIB_SUFFIX="dylib"
                RANLIB="ranlib"
-               XLIBS="${LIB_AFSDB} ${XBSA_XLIBS} -framework CoreFoundation"
+               XLIBS="${LIB_AFSDB} -framework CoreFoundation"
                ;;
 
-       *_darwin_100 | *_darwin_110 | *_darwin_120 )
+       *_darwin_100 | *_darwin_110 | *_darwin_120 | *_darwin_130 | *_darwin_140 | *_darwin_150 | *_darwin_160 | *_darwin_170 | *_darwin_180)
                AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework DiskArbitration -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
                MT_CFLAGS="-D_REENTRANT"
                MT_LIBS='${XLIBS}'
@@ -370,7 +318,26 @@ case $AFS_SYSNAME in
                SHLIB_LINKER="${CC} \${ARCHFLAGS} -dynamiclib"
                SHLIB_SUFFIX="dylib"
                RANLIB="ranlib"
-               XLIBS="${LIB_AFSDB} ${XBSA_XLIBS} -framework CoreFoundation"
+               XLIBS="${LIB_AFSDB} -framework CoreFoundation"
+               ;;
+
+       *_darwin_190 | *_darwin_200)
+               AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework DiskArbitration -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
+               MT_CFLAGS="-D_REENTRANT"
+               MT_LIBS='${XLIBS}'
+               KROOT='/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk'
+               KINCLUDES='-I$(KROOT)/System/Library/Frameworks/Kernel.framework/Headers'
+               LD="cc"
+               KERN_OPTMZ="-Os"
+               LWP_OPTMZ="-Os"
+               OPTMZ="-Os"
+               PAM_LIBS="-lpam"
+               REGEX_OBJ="regex.lo"
+               EXTRA_VLIBOBJS="fstab.o"
+               SHLIB_LINKER="${CC} \${ARCHFLAGS} -dynamiclib"
+               SHLIB_SUFFIX="dylib"
+               RANLIB="ranlib"
+               XLIBS="${LIB_AFSDB} -framework CoreFoundation"
                ;;
 
        ppc_linux*)
@@ -379,7 +346,6 @@ case $AFS_SYSNAME in
                PAM_OPTMZ=-O2
                PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
                SHLIB_CFLAGS="-fPIC"
-               SHLIB_LDFLAGS="-shared -Xlinker -x"
                SHLIB_LINKER="${CC} -shared"
                ;;
 
@@ -422,18 +388,17 @@ case $AFS_SYSNAME in
                AIX64="yes"
                ;;
 
-       s390_linux22|s390_linux24|s390_linux26)
+       s390_linux26)
                LD="ld"
                KERN_OPTMZ=-O2
                MT_CFLAGS='-pthread -D_REENTRANT'
                PAM_OPTMZ=-O2
                PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
                SHLIB_CFLAGS="-fPIC"
-               SHLIB_LDFLAGS="-shared -Xlinker -x"
                SHLIB_LINKER="${CC} -shared"
                ;;
 
-       s390x_linux24|s390x_linux26)
+       s390x_linux26)
                CCOBJ="\$(CC) -fPIC"
                LD="ld"
                KERN_OPTMZ=-O2
@@ -441,7 +406,6 @@ case $AFS_SYSNAME in
                PAM_OPTMZ=-O
                PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
                SHLIB_CFLAGS="-fPIC"
-               SHLIB_LDFLAGS="-shared -Xlinker -x -Xlinker -Bsymbolic"
                OPTMZ=-O
                XCFLAGS="-D__s390x__"
                SHLIB_LINKER="${CC} -shared"
@@ -502,7 +466,6 @@ case $AFS_SYSNAME in
                PAM_OPTMZ=-O2
                PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
                SHLIB_CFLAGS="-fPIC"
-               SHLIB_LDFLAGS="-shared -Xlinker -x"
                XCFLAGS64="-m64"
                XLDFLAGS64="-m64"
                SHLIB_LINKER="${CC} -shared"
@@ -515,7 +478,6 @@ case $AFS_SYSNAME in
                PAM_CFLAGS="-KPIC"
                PAM_LIBS="-lc -lpam -lsocket -lnsl -lm"
                SHLIB_CFLAGS="-KPIC"
-               SHLIB_LDFLAGS="-G -Bsymbolic"
                XCFLAGS64='${XCFLAGS} -m64'
                XCFLAGS="-dy -Bdynamic"
                XLIBELFA="-lelf"
@@ -525,43 +487,35 @@ case $AFS_SYSNAME in
                LWP_OPTMZ="-g"
                ;;
 
-       sunx86_58|sunx86_59)
-               CC=$SOLARISCC
-               LD="/usr/ccs/bin/ld"
-               MT_CFLAGS='-mt'
-               PAM_CFLAGS="-KPIC"
-               PAM_LIBS="-lc -lpam -lsocket -lnsl -lm"
-               SHLIB_CFLAGS="-KPIC"
-               SHLIB_LDFLAGS="-G -Bsymbolic"
-               XCFLAGS64='${XCFLAGS} -xarch=amd64'
-               XCFLAGS="-dy -Bdynamic"
-               XLIBELFA="-lelf"
-               XLIBKVM="-lkvm"
-               XLIBS="${LIB_AFSDB} -lsocket -lnsl -lintl -ldl"
-               SHLIB_LINKER="${CC} -G -dy -Bsymbolic -z text"
-               ;;
+       sunx86_5*)
+               case $AFS_SYSNAME in
+                       sunx86_58|sunx86_59)
+                               XARCHFLAGS=""
+                               ;;
+                       *)
+                               if test "x`echo "${ARCHFLAGS}" | grep m32`" != "x" ; then
+                                       CURRENTBUILDARCH=i386
+                               fi
+                               if test "x`echo "${ARCHFLAGS}" | grep m64`" != "x" ; then
+                                       CURRENTBUILDARCH=amd64
+                               fi
+                               if test "x${CURRENTBUILDARCH}" = "x" ; then
+                                       CURRENTBUILDARCH=`isainfo -k`
+                               fi
+                               if test "${CURRENTBUILDARCH}" = "amd64" ; then
+                                       XARCHFLAGS="-m64"
+                               fi
+                               ;;
+               esac
 
-       sunx86_510|sunx86_511)
-               if test "x`echo "${ARCHFLAGS}" | grep m32`" != "x" ; then
-                       CURRENTBUILDARCH=i386
-               fi
-               if test "x`echo "${ARCHFLAGS}" | grep m64`" != "x" ; then
-                       CURRENTBUILDARCH=amd64
-               fi
-               if test "x${CURRENTBUILDARCH}" = "x" ; then
-                       CURRENTBUILDARCH=`isainfo -k`
-               fi
-               if test "${CURRENTBUILDARCH}" = "amd64" ; then
-                       XARCHFLAGS="-m64"
-               fi
                CC=$SOLARISCC
-               CFLAGS="$CFLAGS $XARCHFLAGS"
+               CFLAGS="$CFLAGS ${XARCHFLAGS}"
                LD="/usr/ccs/bin/ld"
                MT_CFLAGS='-mt'
+               KERN_OPTMZ="-xO3"
                PAM_CFLAGS="-KPIC"
                PAM_LIBS="-lc -lpam -lsocket -lnsl -lm"
                SHLIB_CFLAGS="-KPIC"
-               SHLIB_LDFLAGS="-G -Bsymbolic"
                XCFLAGS0="-dy -Bdynamic"
                XCFLAGS64="${XCFLAGS0} -m64"
                XCFLAGS="${XCFLAGS0} ${XARCHFLAGS}"
@@ -571,13 +525,27 @@ case $AFS_SYSNAME in
                XLIBELFA="-lelf"
                XLIBKVM="-lkvm"
                XLIBS="${LIB_AFSDB} -lsocket -lnsl -lintl -ldl"
-               SHLIB_LINKER="${CC} ${XCFLAGS} -G -z text"
+               SHLIB_LINKER="${CC} ${XARCHFLAGS} -G -dy -Bsymbolic -z text"
                ;;
 
 esac
 
 MT_CFLAGS="${MT_CFLAGS} -DAFS_PTHREAD_ENV"
 
+AFS_LT_INIT
+
+dnl if ar is not present, libtool.m4 (provided by libtool) sets AR to false
+dnl if strip is not present, libtool.m4 (provided by libtool) sets STRIP to :
+AS_IF([test "x$AR" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'ar'])])
+AS_IF([test "x$AS" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'as'])])
+AS_IF([test "x$MV" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'mv'])])
+AS_IF([test "x$RM" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'rm'])])
+AS_IF([test "x$LD" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'ld'])])
+AS_IF([test "x$CP" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'cp'])])
+AS_IF([test "x$GENCAT" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'gencat'])])
+
+dnl TODO - need to disable STRIP if we are doing debugging in any user space code
+
 #
 # Defaults for --enable-optimize-kernel
 #
@@ -585,10 +553,12 @@ if test "x$enable_optimize_kernel" = "x" ; then
   AS_CASE([$AFS_SYSNAME],
     [sunx86_510|sunx86_511],
       dnl Somewhere around Solaris Studio 12.*, the compiler started adding SSE
-      dnl instructions to optimized code, without any ability to turn it off.
-      dnl So just default to not optimizing kernel code for the relevant
-      dnl platforms, until we get a better autoconf test for this.
-      [enable_optimize_kernel=no],
+      dnl instructions to optimized code, without any known way to turn it off.
+      dnl To cope, this condition was added to change the default to
+      dnl 'no'.
+      dnl Now that we have an autoconf test to allow disabling the SSE
+      dnl optimizations, it's safe to once more default to 'yes' here.
+      [enable_optimize_kernel=yes],
     [enable_optimize_kernel=yes])
 fi
 
@@ -651,9 +621,10 @@ else
 fi
 
 CFLAGS_NOERROR=
-CFLAGS_NOSTRICT=
+CFLAGS_NOSTRICT=-fno-strict-aliasing
 CFLAGS_NOUNUSED=
 CFLAGS_NOOLDSTYLE=
+CFLAGS_NOIMPLICIT_FALLTHROUGH=
 XCFLAGS_NOCHECKING="$XCFLAGS"
 
 if test "x$GCC" = "xyes"; then
@@ -661,13 +632,17 @@ if test "x$GCC" = "xyes"; then
     XCFLAGS="${XCFLAGS} -Wall -Wstrict-prototypes -Wold-style-definition -Wpointer-arith"
   fi
   if test "x$enable_checking" != "xno"; then
-    XCFLAGS="${XCFLAGS} -Wall -Wstrict-prototypes -Wold-style-definition -Werror -fdiagnostics-show-option -Wpointer-arith"
+    XCFLAGS="${XCFLAGS} -Wall -Wstrict-prototypes -Wold-style-definition -Werror -fdiagnostics-show-option -Wpointer-arith -fno-common"
+    CFLAGS_WERROR="-Werror"
     if test "x$enable_checking" != "xall"; then
       CFLAGS_NOERROR="-Wno-error"
-      CFLAGS_NOSTRICT="-fno-strict-aliasing"
       CFLAGS_NOUNUSED="-Wno-unused"
       CFLAGS_NOOLDSTYLE="-Wno-old-style-definition"
+      AX_APPEND_COMPILE_FLAGS([-Wno-implicit-fallthrough],
+                               [CFLAGS_NOIMPLICIT_FALLTHROUGH])
       AC_DEFINE(IGNORE_SOME_GCC_WARNINGS, 1, [define to disable some gcc warnings in warnings-as-errors mode])
+    else
+      CFLAGS_NOSTRICT=
     fi
   fi
 else
@@ -688,6 +663,11 @@ else
   esac
 fi
 
+dnl add additional checks if compilers support the flags
+AS_IF([test "x$enable_checking" != "xno"],
+      [AX_APPEND_COMPILE_FLAGS([-Wimplicit-fallthrough], [XCFLAGS])
+])
+
 dnl horribly cheating, assuming double / is ok.
 case $INSTALL in
   ./* ) 
@@ -732,7 +712,6 @@ AC_SUBST(REGEX_OBJ)
 AC_SUBST(RM)
 AC_SUBST(RXDEBUG)
 AC_SUBST(SHLIB_CFLAGS)
-AC_SUBST(SHLIB_LDFLAGS)
 AC_SUBST(SHLIB_LINKER)
 AC_SUBST(SHLIB_SUFFIX)
 AC_SUBST(VFSCK_CFLAGS)
@@ -741,6 +720,8 @@ AC_SUBST(CFLAGS_NOERROR)
 AC_SUBST(CFLAGS_NOSTRICT)
 AC_SUBST(CFLAGS_NOUNUSED)
 AC_SUBST(CFLAGS_NOOLDSTYLE)
+AC_SUBST(CFLAGS_NOIMPLICIT_FALLTHROUGH)
+AC_SUBST(CFLAGS_WERROR)
 AC_SUBST(XCFLAGS64)
 AC_SUBST(XLDFLAGS)
 AC_SUBST(XLDFLAGS64)
@@ -748,6 +729,8 @@ AC_SUBST(XLIBELFA)
 AC_SUBST(XLIBKVM)
 AC_SUBST(XLIBS)
 AC_SUBST(YACC)
+AC_SUBST(KROOT)
+AC_SUBST(KINCLUDES)
 
 
 ])