gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r22960 - gnunet/src/include


From: gnunet
Subject: [GNUnet-SVN] r22960 - gnunet/src/include
Date: Mon, 30 Jul 2012 09:26:05 +0200

Author: grothoff
Date: 2012-07-30 09:26:05 +0200 (Mon, 30 Jul 2012)
New Revision: 22960

Modified:
   gnunet/src/include/gnunet_common.h
Log:
fix for gcc alginment issue on sparc reported to Debian as #670578

Modified: gnunet/src/include/gnunet_common.h
===================================================================
--- gnunet/src/include/gnunet_common.h  2012-07-29 21:49:48 UTC (rev 22959)
+++ gnunet/src/include/gnunet_common.h  2012-07-30 07:26:05 UTC (rev 22960)
@@ -178,9 +178,13 @@
  */
 #define GNUNET_NORETURN __attribute__((noreturn))
 
+#if MINGW
 #if __GNUC__ > 3
 /**
- * gcc 4.x-ism to pack structures even on W32 (to be used before structs)
+ * gcc 4.x-ism to pack structures even on W32 (to be used before structs);
+ * Using this would cause structs to be unaligned on the stack on Sparc,
+ * so we *only* use this on W32 (see #670578 from Debian); fortunately,
+ * W32 doesn't run on sparc anyway.
  */
 #define GNUNET_NETWORK_STRUCT_BEGIN \
   _Pragma("pack(push)") \
@@ -188,19 +192,23 @@
 
 /**
  * gcc 4.x-ism to pack structures even on W32 (to be used after structs)
+ * Using this would cause structs to be unaligned on the stack on Sparc,
+ * so we *only* use this on W32 (see #670578 from Debian); fortunately,
+ * W32 doesn't run on sparc anyway.
  */
 #define GNUNET_NETWORK_STRUCT_END _Pragma("pack(pop)")
+
 #else
-#ifdef MINGW
 #error gcc 4.x or higher required on W32 systems
 #endif
+#else
 /**
- * Good luck, GNUNET_PACKED should suffice, but this won't work on W32
+ * Define as empty, GNUNET_PACKED should suffice, but this won't work on W32
  */
 #define GNUNET_NETWORK_STRUCT_BEGIN 
 
 /**
- * Good luck, GNUNET_PACKED should suffice, but this won't work on W32
+ * Define as empty, GNUNET_PACKED should suffice, but this won't work on W32;
  */
 #define GNUNET_NETWORK_STRUCT_END
 #endif




reply via email to

[Prev in Thread] Current Thread [Next in Thread]