aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorashish <ashish@FreeBSD.org>2015-03-01 07:44:11 +0800
committerashish <ashish@FreeBSD.org>2015-03-01 07:44:11 +0800
commit63cf540fd038f3552a36d1906fbfa99a8644fcb3 (patch)
tree04e99e2e32a9f6f5fce3bfcfd6efae04f2898a1b
parentd3232059f15735cc8dd23959b352237ca6407925 (diff)
downloadfreebsd-ports-gnome-63cf540fd038f3552a36d1906fbfa99a8644fcb3.tar.gz
freebsd-ports-gnome-63cf540fd038f3552a36d1906fbfa99a8644fcb3.tar.zst
freebsd-ports-gnome-63cf540fd038f3552a36d1906fbfa99a8644fcb3.zip
- 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
-rw-r--r--lang/sagittarius-scheme/files/patch-ext_crypto_libtomcrypt-1.17_src_headers_tomcrypt__macros.h107
1 files changed, 107 insertions, 0 deletions
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 */
+