summaryrefslogtreecommitdiffstats
path: root/pb.h
diff options
context:
space:
mode:
authorPetteri Aimonen <jpa@git.mail.kapsi.fi>2014-12-22 20:52:40 +0200
committerPetteri Aimonen <jpa@git.mail.kapsi.fi>2014-12-22 20:52:40 +0200
commitcfc517f36b3263bb583751f4cee0e58eeff98c5f (patch)
tree78736130e6df70a8a91228a8167f6e66b467a577 /pb.h
parentbaf44b367f726484c315f204f1bf95ba40af86fa (diff)
Add compilation option to disable struct packing.
Update issue 136 Status: FixedInGit
Diffstat (limited to 'pb.h')
-rw-r--r--pb.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/pb.h b/pb.h
index 2582e250..b8a957ae 100644
--- a/pb.h
+++ b/pb.h
@@ -17,6 +17,10 @@
* stores the most-significant byte first. */
/* #define __BIG_ENDIAN__ 1 */
+/* Define this if your CPU / compiler combination does not support
+ * unaligned memory access to packed structures. */
+/* #define PB_NO_PACKED_STRUCTS 1 */
+
/* Increase the number of required fields that are tracked.
* A compiler warning will tell if you need this. */
/* #define PB_MAX_REQUIRED_FIELDS 256 */
@@ -75,7 +79,12 @@
/* Macro for defining packed structures (compiler dependent).
* This just reduces memory requirements, but is not required.
*/
-#if defined(__GNUC__) || defined(__clang__)
+#if defined(PB_NO_PACKED_STRUCTS)
+ /* Disable struct packing */
+# define PB_PACKED_STRUCT_START
+# define PB_PACKED_STRUCT_END
+# define pb_packed
+#elif defined(__GNUC__) || defined(__clang__)
/* For GCC and clang */
# define PB_PACKED_STRUCT_START
# define PB_PACKED_STRUCT_END