From 6e7616a42870e55a562dc7d79a6879d928cb0b8c Mon Sep 17 00:00:00 2001 From: Ashish SHUKLA Date: Sat, 28 Feb 2015 23:44:11 +0000 Subject: [PATCH] - Change inline constant rotate functions to macros in the crypto library libtomcrypt used by the project, to fix compile errors with clang 3.6. More details about the fix are in PR 198017 PR: 197395 Submitted by: dim Reported by: portmgr --- ...mcrypt-1.17_src_headers_tomcrypt__macros.h | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 lang/sagittarius-scheme/files/patch-ext_crypto_libtomcrypt-1.17_src_headers_tomcrypt__macros.h diff --git a/lang/sagittarius-scheme/files/patch-ext_crypto_libtomcrypt-1.17_src_headers_tomcrypt__macros.h b/lang/sagittarius-scheme/files/patch-ext_crypto_libtomcrypt-1.17_src_headers_tomcrypt__macros.h new file mode 100644 index 000000000000..793e3fe55954 --- /dev/null +++ b/lang/sagittarius-scheme/files/patch-ext_crypto_libtomcrypt-1.17_src_headers_tomcrypt__macros.h @@ -0,0 +1,107 @@ + +$FreeBSD$ + +--- ext/crypto/libtomcrypt-1.17/src/headers/tomcrypt_macros.h.orig ++++ ext/crypto/libtomcrypt-1.17/src/headers/tomcrypt_macros.h +@@ -262,21 +262,19 @@ + + #ifndef LTC_NO_ROLC + +-static inline unsigned ROLc(unsigned word, const int i) +-{ +- asm ("roll %2,%0" +- :"=r" (word) +- :"0" (word),"I" (i)); +- return word; +-} ++#define ROLc(word, i) ({ \ ++ unsigned _word = word; \ ++ asm ("roll %2,%0" \ ++ :"=r" (_word) \ ++ :"0" (_word),"I" (i)); \ ++ _word; }) + +-static inline unsigned RORc(unsigned word, const int i) +-{ +- asm ("rorl %2,%0" +- :"=r" (word) +- :"0" (word),"I" (i)); +- return word; +-} ++#define RORc(word, i) ({ \ ++ unsigned _word = word; \ ++ asm ("rorl %2,%0" \ ++ :"=r" (_word) \ ++ :"0" (_word),"I" (i)); \ ++ _word; }) + + #else + +@@ -305,21 +303,19 @@ + + #ifndef LTC_NO_ROLC + +-static inline unsigned ROLc(unsigned word, const int i) +-{ +- asm ("rotlwi %0,%0,%2" +- :"=r" (word) +- :"0" (word),"I" (i)); +- return word; +-} ++#define ROLc(word, i) ({ \ ++ unsigned _word = word; \ ++ asm ("rotlwi %0,%0,%2" \ ++ :"=r" (_word) \ ++ :"0" (_word),"I" (i)); \ ++ _word; }) + +-static inline unsigned RORc(unsigned word, const int i) +-{ +- asm ("rotrwi %0,%0,%2" +- :"=r" (word) +- :"0" (word),"I" (i)); +- return word; +-} ++#define RORc(word, i) ({ \ ++ unsigned _word = word; \ ++ asm ("rotrwi %0,%0,%2" \ ++ :"=r" (_word) \ ++ :"0" (_word),"I" (i)); \ ++ _word; }) + + #else + +@@ -361,21 +357,19 @@ + + #ifndef LTC_NO_ROLC + +-static inline unsigned long ROL64c(unsigned long word, const int i) +-{ +- asm("rolq %2,%0" +- :"=r" (word) +- :"0" (word),"J" (i)); +- return word; +-} ++#define ROL64c(word, i) ({ \ ++ unsigned long _word = word; \ ++ asm ("rolq %2,%0" \ ++ :"=r" (_word) \ ++ :"0" (_word),"J" (i)); \ ++ _word; }) + +-static inline unsigned long ROR64c(unsigned long word, const int i) +-{ +- asm("rorq %2,%0" +- :"=r" (word) +- :"0" (word),"J" (i)); +- return word; +-} ++#define ROR64c(word, i) ({ \ ++ unsigned long _word = word; \ ++ asm ("rorq %2,%0" \ ++ :"=r" (_word) \ ++ :"0" (_word),"J" (i)); \ ++ _word; }) + + #else /* LTC_NO_ROLC */ +