guix/gnu/packages/patches/symmetrica-int32.patch

38 lines
918 B
Diff

diff -ru src/def.h c/def.h
--- src/def.h 2007-12-06 17:30:56.000000000 +0100
+++ c/def.h 2013-10-19 18:42:55.118745730 +0200
@@ -2,14 +2,9 @@
/* INT should always be 4 byte */
#ifndef DEF_H
-
-#ifdef __alpha
-typedef int INT;
-typedef unsigned int UINT;
-#else /* __alpha */
-typedef long INT;
-typedef unsigned long UINT;
-#endif /* __alpha */
+#include <stdint.h>
+typedef int32_t INT;
+typedef uint32_t UINT;
#include <stdio.h>
#include <memory.h>
@@ -65,10 +60,13 @@
/* definitionen fuer object.c */
-typedef INT OBJECTKIND; /* 4 byte */
+/* NOTE: partition code assumes that there is no unused space in the
+ * object struct when an INT is stored. This requires both OBJECTKIND
+ * and OBJECTSELF to have a size equal to a machine word. */
+typedef intptr_t OBJECTKIND;
typedef union {
- INT ob_INT;
+ intptr_t ob_INT;
INT * ob_INTpointer;
char *ob_charpointer;
struct bruch *ob_bruch;