mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			51 lines
		
	
	
		
			968 B
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			968 B
		
	
	
	
		
			Plaintext
		
	
	
	
| 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
 | |
| ])
 |