summaryrefslogtreecommitdiff
path: root/recipes/monotone/files/cryptopp-endianness.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/monotone/files/cryptopp-endianness.patch')
-rw-r--r--recipes/monotone/files/cryptopp-endianness.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/recipes/monotone/files/cryptopp-endianness.patch b/recipes/monotone/files/cryptopp-endianness.patch
new file mode 100644
index 0000000000..5d52b079bb
--- /dev/null
+++ b/recipes/monotone/files/cryptopp-endianness.patch
@@ -0,0 +1,40 @@
+--- monotone-0.20/.pc/cryptopp-endianness.patch/cryptopp/config.h 2005-07-05 22:56:31.000000000 -0700
++++ monotone-0.20/cryptopp/config.h 2005-07-12 12:01:02.626693397 -0700
+@@ -5,15 +5,28 @@
+
+ // ***************** Important Settings ********************
+
+-// define this if running on a big-endian CPU
+-#if !defined(IS_LITTLE_ENDIAN) && (defined(__BIG_ENDIAN__) || defined(__sparc) || defined(__sparc__) || defined(__hppa__) || defined(__mips__) || (defined(__MWERKS__) && !defined(__INTEL__)))
+-# define IS_BIG_ENDIAN
+-#endif
+-
+-// define this if running on a little-endian CPU
+-// big endian will be assumed if IS_LITTLE_ENDIAN is not defined
+-#ifndef IS_BIG_ENDIAN
+-# define IS_LITTLE_ENDIAN
++// this is GCC specific, but it is safe - the original version
++// of this file defaulted to little endian without warning...
++// The code will error out if an attempt is made to define
++// IS_LITTLE_ENDIAN or IS_BIG_ENDIAN elsewhere
++#ifndef __BYTE_ORDER
++# include <endian.h>
++# ifndef __BYTE_ORDER
++# error cryptopp needs the correct byte order from the compiler
++# endif
++#endif
++#if defined(IS_LITTLE_ENDIAN) || defined(IS_BIG_ENDIAN)
++ // It doesn't work to define this on the command line, at least
++ // with the original version
++# error cryptopp - unexpected endianness definition
++#endif
++
++#if defined(__LITTLE_ENDIAN) && __BYTE_ORDER == __LITTLE_ENDIAN
++# define IS_LITTLE_ENDIAN
++#elif defined(__BIG_ENDIAN) && __BYTE_ORDER == __BIG_ENDIAN
++# define IS_BIG_ENDIAN
++#else
++# error cryptopp - unknown endianness
+ #endif
+
+ // define this if you want to disable all OS-dependent features,