svn commit: r380167 - head/lang/sagittarius-scheme/files

Ashish SHUKLA ashish at FreeBSD.org
Sat Feb 28 23:44:12 UTC 2015


Author: ashish
Date: Sat Feb 28 23:44:11 2015
New Revision: 380167
URL: https://svnweb.freebsd.org/changeset/ports/380167
QAT: https://qat.redports.org/buildarchive/r380167/

Log:
  - 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

Added:
  head/lang/sagittarius-scheme/files/patch-ext_crypto_libtomcrypt-1.17_src_headers_tomcrypt__macros.h   (contents, props changed)

Added: head/lang/sagittarius-scheme/files/patch-ext_crypto_libtomcrypt-1.17_src_headers_tomcrypt__macros.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/sagittarius-scheme/files/patch-ext_crypto_libtomcrypt-1.17_src_headers_tomcrypt__macros.h	Sat Feb 28 23:44:11 2015	(r380167)
@@ -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 */
+ 


More information about the svn-ports-head mailing list