From f00aaa977b0cbdfb513e1e4e68c1e31ec42270d7 Mon Sep 17 00:00:00 2001 From: Samy Al Bahra Date: Mon, 26 Feb 2018 00:10:47 -0500 Subject: [PATCH] build: add --disable-sse option for x86. This option allows user-space to disable explicit usage of SSE+ instructions such as sfence, lfence and mfence on x86. --- configure | 7 +++++++ include/ck_md.h.in | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/configure b/configure index 50b26f0..a1fab20 100755 --- a/configure +++ b/configure @@ -119,6 +119,7 @@ generate() -e "s#@GZIP_SUFFIX@#$GZIP_SUFFIX#g" \ -e "s#@POINTER_PACK_ENABLE@#$POINTER_PACK_ENABLE#g" \ -e "s#@DISABLE_DOUBLE@#$DISABLE_DOUBLE#g" \ + -e "s#@SSE_DISABLE@#$SSE_DISABLE#g" \ -e "s#@RTM_ENABLE@#$RTM_ENABLE#g" \ -e "s#@LSE_ENABLE@#$LSE_ENABLE#g" \ -e "s#@VMA_BITS@#$VMA_BITS_R#g" \ @@ -160,6 +161,7 @@ generate_stdout() echo " MEMORY_MODEL = $MM" echo " RTM = $RTM_ENABLE" echo " LSE = $LSE_ENABLE" + echo " SSE = $SSE_DISABLE" echo echo "Headers will be installed in $HEADERS" echo "Libraries will be installed in $LIBRARY" @@ -202,6 +204,7 @@ for option; do echo " --platform=N Force the platform type, instead of relying on autodetection" echo " --use-cc-builtins Use the compiler atomic bultin functions, instead of the CK implementation" echo " --disable-double Don't generate any of the functions using the \"double\" type" + echo " --disable-sse Do not use any SSE instructions (x86 only)" echo echo "The following options affect regression testing." echo " --cores=N Specify number of cores available on target machine" @@ -244,6 +247,9 @@ for option; do --enable-lse) LSE_ENABLE_SET="CK_MD_LSE_ENABLE" ;; + --disable-sse) + SSE_DISABLE="CK_MD_SSE_DISABLE" + ;; --cores=*) CORES=$value ;; @@ -315,6 +321,7 @@ GZIP=${GZIP:-"gzip -c"} POINTER_PACK_ENABLE=${POINTER_PACK_ENABLE:-"CK_MD_POINTER_PACK_DISABLE"} DISABLE_DOUBLE=${DISABLE_DOUBLE:-"CK_PR_ENABLE_DOUBLE"} RTM_ENABLE=${RTM_ENABLE_SET:-"CK_MD_RTM_DISABLE"} +SSE_DISABLE=${SSE_DISABLE:-"CK_MD_SSE_ENABLE"} LSE_ENABLE=${LSE_ENABLE_SET:-"CK_MD_LSE_DISABLE"} VMA_BITS=${VMA_BITS:-"unknown"} diff --git a/include/ck_md.h.in b/include/ck_md.h.in index 14d7cf2..773acf5 100644 --- a/include/ck_md.h.in +++ b/include/ck_md.h.in @@ -47,6 +47,10 @@ #define @POINTER_PACK_ENABLE@ #endif /* @POINTER_PACK_ENABLE@ */ +#ifndef @SSE_DISABLE@ +#define @SSE_DISABLE@ +#endif /* @SSE_DISABLE@ */ + #ifndef @VMA_BITS@ #define @VMA_BITS@ @VMA_BITS_VALUE@ #endif /* @VMA_BITS@ */