components/libgcrypt/patches/libgcrypt-03-aliasing.patch
changeset 6240 7fdcf093fdc2
parent 6239 925323933ffd
child 6241 5d26d14bd9fa
--- a/components/libgcrypt/patches/libgcrypt-03-aliasing.patch	Fri Jun 17 08:45:56 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,198 +0,0 @@
-#
-# Resolves issues reported by 'make check':
-# selftest for CFB failed - see syslog for details
-# pass 0, algo 4, mode 1, gcry_cipher_setkey failed: Selftest failed
-# pass 0, algo 4, mode 2, gcry_cipher_setkey failed: Selftest failed
-# pass 0, algo 4, mode 5, gcry_cipher_setkey failed: Selftest failed
-# pass 0, algo 4, mode 3, gcry_cipher_setkey failed: Selftest failed
-# pass 0, algo 4, mode 3, gcry_cipher_setkey failed: Selftest failed
-# pass 0, algo 4, mode 6, gcry_cipher_setkey failed: Selftest failed
-# FAIL: basic
-# 
-# The original bug in the upstream: https://bugs.gnupg.org/gnupg/issue2144
-# This is an alternate patch to the fix delivered by the upstream. This
-# is because upstream has resolved the issue in a source code of a later
-# version of libgcrypt (post 1.6.4); the patch used by the upstream
-# patches files not yet existing in the version 1.6.4. This patch will
-# go away once libgcrypt is update to a version > 1.6.4.
-#
-# This is an in-house developed patch inspired by the comments made by
-# the libgcrypt community in the respective email thread on
-# [email protected].
-#
---- ./cipher/bufhelp.h.aliasing	2015-02-27 10:54:03.000000000 +0100
-+++ ./cipher/bufhelp.h	2015-03-13 15:03:43.301749751 +0100
-@@ -80,7 +80,7 @@ do_bytes:
-   for (; len; len--)
-     *dst++ = *src++;
- #endif /*__GNUC__ >= 4 && (__x86_64__ || __i386__)*/
--}
-+} __attribute__ ((optimize("no-strict-aliasing")))
- 
- 
- /* Optimized function for buffer xoring */
-@@ -117,7 +117,7 @@ do_bytes:
-   /* Handle tail.  */
-   for (; len; len--)
-     *dst++ = *src1++ ^ *src2++;
--}
-+} __attribute__ ((optimize("no-strict-aliasing")))
- 
- 
- /* Optimized function for buffer xoring with two destination buffers.  Used
-@@ -155,7 +155,7 @@ do_bytes:
-   /* Handle tail.  */
-   for (; len; len--)
-     *dst1++ = (*dst2++ ^= *src++);
--}
-+} __attribute__ ((optimize("no-strict-aliasing")))
- 
- 
- /* Optimized function for combined buffer xoring and copying.  Used by mainly
-@@ -208,7 +208,7 @@ do_bytes:
-       *dst_xor++ = *srcdst_cpy ^ *src_xor++;
-       *srcdst_cpy++ = temp;
-     }
--}
-+} __attribute__ ((optimize("no-strict-aliasing")))
- 
- 
- /* Optimized function for combined buffer xoring and copying.  Used by mainly
-@@ -234,7 +234,7 @@ buf_eq_const(const void *_a, const void
-     diff -= !!(a[i] - b[i]);
- 
-   return !diff;
--}
-+} __attribute__ ((optimize("no-strict-aliasing")))
- 
- 
- #ifndef BUFHELP_FAST_UNALIGNED_ACCESS
-@@ -246,14 +246,14 @@ static inline u32 buf_get_be32(const voi
-   const byte *in = _buf;
-   return ((u32)in[0] << 24) | ((u32)in[1] << 16) | \
-          ((u32)in[2] << 8) | (u32)in[3];
--}
-+} __attribute__ ((optimize("no-strict-aliasing")))
- 
- static inline u32 buf_get_le32(const void *_buf)
- {
-   const byte *in = _buf;
-   return ((u32)in[3] << 24) | ((u32)in[2] << 16) | \
-          ((u32)in[1] << 8) | (u32)in[0];
--}
-+} __attribute__ ((optimize("no-strict-aliasing")))
- 
- static inline void buf_put_be32(void *_buf, u32 val)
- {
-@@ -262,7 +262,7 @@ static inline void buf_put_be32(void *_b
-   out[1] = val >> 16;
-   out[2] = val >> 8;
-   out[3] = val;
--}
-+} __attribute__ ((optimize("no-strict-aliasing")))
- 
- static inline void buf_put_le32(void *_buf, u32 val)
- {
-@@ -271,7 +271,7 @@ static inline void buf_put_le32(void *_b
-   out[2] = val >> 16;
-   out[1] = val >> 8;
-   out[0] = val;
--}
-+} __attribute__ ((optimize("no-strict-aliasing")))
- 
- #ifdef HAVE_U64_TYPEDEF
- /* Functions for loading and storing unaligned u64 values of different
-@@ -283,7 +283,7 @@ static inline u64 buf_get_be64(const voi
-          ((u64)in[2] << 40) | ((u64)in[3] << 32) | \
-          ((u64)in[4] << 24) | ((u64)in[5] << 16) | \
-          ((u64)in[6] << 8) | (u64)in[7];
--}
-+} __attribute__ ((optimize("no-strict-aliasing")))
- 
- static inline u64 buf_get_le64(const void *_buf)
- {
-@@ -292,7 +292,7 @@ static inline u64 buf_get_le64(const voi
-          ((u64)in[5] << 40) | ((u64)in[4] << 32) | \
-          ((u64)in[3] << 24) | ((u64)in[2] << 16) | \
-          ((u64)in[1] << 8) | (u64)in[0];
--}
-+} __attribute__ ((optimize("no-strict-aliasing")))
- 
- static inline void buf_put_be64(void *_buf, u64 val)
- {
-@@ -305,7 +305,7 @@ static inline void buf_put_be64(void *_b
-   out[5] = val >> 16;
-   out[6] = val >> 8;
-   out[7] = val;
--}
-+} __attribute__ ((optimize("no-strict-aliasing")))
- 
- static inline void buf_put_le64(void *_buf, u64 val)
- {
-@@ -318,7 +318,7 @@ static inline void buf_put_le64(void *_b
-   out[2] = val >> 16;
-   out[1] = val >> 8;
-   out[0] = val;
--}
-+} __attribute__ ((optimize("no-strict-aliasing")))
- #endif /*HAVE_U64_TYPEDEF*/
- 
- #else /*BUFHELP_FAST_UNALIGNED_ACCESS*/
-@@ -328,24 +328,24 @@ static inline void buf_put_le64(void *_b
- static inline u32 buf_get_be32(const void *_buf)
- {
-   return be_bswap32(*(const u32 *)_buf);
--}
-+} __attribute__ ((optimize("no-strict-aliasing")))
- 
- static inline u32 buf_get_le32(const void *_buf)
- {
-   return le_bswap32(*(const u32 *)_buf);
--}
-+} __attribute__ ((optimize("no-strict-aliasing")))
- 
- static inline void buf_put_be32(void *_buf, u32 val)
- {
-   u32 *out = _buf;
-   *out = be_bswap32(val);
--}
-+} __attribute__ ((optimize("no-strict-aliasing")))
- 
- static inline void buf_put_le32(void *_buf, u32 val)
- {
-   u32 *out = _buf;
-   *out = le_bswap32(val);
--}
-+} __attribute__ ((optimize("no-strict-aliasing")))
- 
- #ifdef HAVE_U64_TYPEDEF
- /* Functions for loading and storing unaligned u64 values of different
-@@ -353,24 +353,24 @@ static inline void buf_put_le32(void *_b
- static inline u64 buf_get_be64(const void *_buf)
- {
-   return be_bswap64(*(const u64 *)_buf);
--}
-+} __attribute__ ((optimize("no-strict-aliasing")))
- 
- static inline u64 buf_get_le64(const void *_buf)
- {
-   return le_bswap64(*(const u64 *)_buf);
--}
-+} __attribute__ ((optimize("no-strict-aliasing")))
- 
- static inline void buf_put_be64(void *_buf, u64 val)
- {
-   u64 *out = _buf;
-   *out = be_bswap64(val);
--}
-+} __attribute__ ((optimize("no-strict-aliasing")))
- 
- static inline void buf_put_le64(void *_buf, u64 val)
- {
-   u64 *out = _buf;
-   *out = le_bswap64(val);
--}
-+} __attribute__ ((optimize("no-strict-aliasing")))
- #endif /*HAVE_U64_TYPEDEF*/
- 
- #endif /*BUFHELP_FAST_UNALIGNED_ACCESS*/