Skip to content

Commit 8d91a50

Browse files
sparkycvs2git
sparky
authored and
cvs2git
committed
- fix compilation on bigendians
Changed files: reiserfsprogs-bigendian-fix.patch -> 1.1
1 parent 56fc134 commit 8d91a50

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

reiserfsprogs-bigendian-fix.patch

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
diff -Nur reiserfsprogs-3.6.20.orig/include/misc/swab.h reiserfsprogs-3.6.20.bigendian-fix/include/misc/swab.h
2+
--- reiserfsprogs-3.6.20.orig/include/misc/swab.h 2006-03-28 12:40:23.000000000 +0000
3+
+++ reiserfsprogs-3.6.20.bigendian-fix/include/misc/swab.h 2006-11-15 02:44:59.000000000 +0000
4+
@@ -14,14 +14,19 @@
5+
(((__u16)(__x) & (__u16)0xff00U) >> 8) )); \
6+
})
7+
8+
-#define __swab32(x) \
9+
-({ \
10+
- __u32 __x = (x); \
11+
+#define __init_swab32(__x) \
12+
+( \
13+
((__u32)( \
14+
(((__u32)(__x) & (__u32)0x000000ffUL) << 24) | \
15+
(((__u32)(__x) & (__u32)0x0000ff00UL) << 8) | \
16+
(((__u32)(__x) & (__u32)0x00ff0000UL) >> 8) | \
17+
- (((__u32)(__x) & (__u32)0xff000000UL) >> 24) )); \
18+
+ (((__u32)(__x) & (__u32)0xff000000UL) >> 24) )) \
19+
+)
20+
+
21+
+#define __swab32(x) \
22+
+({ \
23+
+ __u32 __x = (x); \
24+
+ __init_swab32(__x); \
25+
})
26+
27+
#define __swab64(x) \
28+
@@ -47,6 +52,7 @@
29+
# define le32_to_cpu(val) (val)
30+
# define cpu_to_le64(val) (val)
31+
# define le64_to_cpu(val) (val)
32+
+# define init_cpu_to_le32(val) (val)
33+
34+
#elif defined(WORDS_BIGENDIAN)
35+
36+
@@ -56,6 +62,7 @@
37+
# define le32_to_cpu(val) __swab32(val)
38+
# define cpu_to_le64(val) __swab64(val)
39+
# define le64_to_cpu(val) __swab64(val)
40+
+# define init_cpu_to_le32(val) __init_swab32(val)
41+
42+
#else
43+
# error "nuxi/pdp-endian archs are not supported"
44+
diff -Nur reiserfsprogs-3.6.20.orig/libreiserfs/key.c reiserfsprogs-3.6.20.bigendian-fix/libreiserfs/key.c
45+
--- reiserfsprogs-3.6.20.orig/libreiserfs/key.c 2006-03-28 12:40:23.000000000 +0000
46+
+++ reiserfsprogs-3.6.20.bigendian-fix/libreiserfs/key.c 2006-11-15 02:45:25.000000000 +0000
47+
@@ -11,12 +11,12 @@
48+
#include "misc/unaligned.h"
49+
50+
const reiserfs_key_t root_dir_key =
51+
- {cpu_to_le32(REISERFS_ROOT_PARENT_OBJECTID),
52+
- cpu_to_le32(REISERFS_ROOT_OBJECTID),
53+
+ {init_cpu_to_le32(REISERFS_ROOT_PARENT_OBJECTID),
54+
+ init_cpu_to_le32(REISERFS_ROOT_OBJECTID),
55+
{{0, 0},}};
56+
57+
const reiserfs_key_t parent_root_dir_key = {
58+
- 0, cpu_to_le32(REISERFS_ROOT_PARENT_OBJECTID),
59+
+ 0, init_cpu_to_le32(REISERFS_ROOT_PARENT_OBJECTID),
60+
{{0, 0},}};
61+
62+
reiserfs_key_t lost_found_dir_key =
63+
@@ -45,7 +45,7 @@
64+
# define set_key_type_v2(key,val) (void)(key->u.k2_offset_v2.k_type = (val))
65+
#elif __BYTE_ORDER == __BIG_ENDIAN
66+
typedef union {
67+
- struct offset_v2 offset_v2;
68+
+ struct reiserfs_koff_v2 offset_v2;
69+
__u64 linear;
70+
} __attribute__ ((__packed__)) offset_v2_esafe_overlay;
71+

0 commit comments

Comments
 (0)