dnl dnl GCC_CET_FLAGS dnl (SHELL-CODE_HANDLER) dnl AC_DEFUN([GCC_CET_FLAGS],[dnl GCC_ENABLE(cet, no, ,[enable Intel CET in target libraries], permit yes|no|auto) AC_MSG_CHECKING([for CET support]) case "$host" in i[[34567]]86-*-linux* | x86_64-*-linux*) case "$enable_cet" in auto) # Check if target supports multi-byte NOPs # and if assembler supports CET insn. AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [], [ #if !defined(__SSE2__) #error target does not support multi-byte NOPs #else asm ("setssbsy"); #endif ])], [enable_cet=yes], [enable_cet=no]) ;; yes) # Check if assembler supports CET. AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [], [asm ("setssbsy");])], [], [AC_MSG_ERROR([assembler with CET support is required for --enable-cet])]) ;; esac ;; *) enable_cet=no ;; esac if test x$enable_cet = xyes; then $1="-fcf-protection -mshstk" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ])