Hello community,
here is the log from the commit of package reiserfs
checked in at Mon Aug 6 22:53:12 CEST 2007.
--------
--- reiserfs/reiserfs.changes 2007-06-21 17:28:48.000000000 +0200
+++ /mounts/work_src_done/STABLE/reiserfs/reiserfs.changes 2007-08-06 19:40:02.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Aug 6 19:39:27 CEST 2007 - olh@suse.de
+
+- remove inclusion of asm/unaligned.h
+ use a copy of asm-generic/unaligned.h instead
+
+-------------------------------------------------------------------
New:
----
reiserfs.unaligned.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ reiserfs.spec ++++++
--- /var/tmp/diff_new_pack.Q10440/_old 2007-08-06 22:52:37.000000000 +0200
+++ /var/tmp/diff_new_pack.Q10440/_new 2007-08-06 22:52:37.000000000 +0200
@@ -16,9 +16,9 @@
Conflicts: libreiserfs-progs
Supplements: filesystem(reiserfs)
Version: 3.6.19
-Release: 68
+Release: 78
Summary: Reiser File System utilities
-License: GNU General Public License (GPL)
+License: GPL v2 or later
Group: System/Filesystems
Autoreqprov: on
Source: ftp://ftp.namesys.com/pub/reiserfsprogs/reiserfsprogs-%{version}.tar.gz
@@ -31,6 +31,7 @@
Patch7: reiserfsprogs-progress.diff
Patch8: reiserfsprogs-reorder-libs.diff
Patch9: reiserfsprogs-mkfs-use-o_excl.diff
+Patch10: reiserfs.unaligned.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -51,6 +52,7 @@
%patch7 -p1
%patch8 -p1
%patch9 -p1
+%patch10 -p1
%build
autoreconf
@@ -74,6 +76,9 @@
rm -rf $RPM_BUILD_ROOT
%changelog
+* Mon Aug 06 2007 - olh@suse.de
+- remove inclusion of asm/unaligned.h
+ use a copy of asm-generic/unaligned.h instead
* Thu Jun 21 2007 - adrian@suse.de
- fix changelog entry order
* Wed Mar 28 2007 - jeffm@suse.com
++++++ reiserfs.unaligned.patch ++++++
---
include/reiserfs_fs.h | 126 ++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 118 insertions(+), 8 deletions(-)
--- a/include/reiserfs_fs.h
+++ b/include/reiserfs_fs.h
@@ -38,15 +38,125 @@
# define extern_inline
#endif
-#include
+/*
+ * For the benefit of those who are trying to port Linux to another
+ * architecture, here are some C-language equivalents.
+ *
+ * This is based almost entirely upon Richard Henderson's
+ * asm-alpha/unaligned.h implementation. Some comments were
+ * taken from David Mosberger's asm-ia64/unaligned.h header.
+ */
+
+#include
+
+/*
+ * The main single-value unaligned transfer routines.
+ */
+#define get_unaligned(ptr) \
+ __get_unaligned((ptr), sizeof(*(ptr)))
+#define put_unaligned(x,ptr) \
+ __put_unaligned((__u64)(x), (ptr), sizeof(*(ptr)))
+
+/*
+ * This function doesn't actually exist. The idea is that when
+ * someone uses the macros below with an unsupported size (datatype),
+ * the linker will alert us to the problem via an unresolved reference
+ * error.
+ */
+extern void bad_unaligned_access_length(void) __attribute__((noreturn));
+
+struct __una_u64 { __u64 x __attribute__((packed)); };
+struct __una_u32 { __u32 x __attribute__((packed)); };
+struct __una_u16 { __u16 x __attribute__((packed)); };
+
+/*
+ * Elemental unaligned loads
+ */
+
+static inline __u64 __uldq(const __u64 *addr)
+{
+ const struct __una_u64 *ptr = (const struct __una_u64 *) addr;
+ return ptr->x;
+}
+
+static inline __u32 __uldl(const __u32 *addr)
+{
+ const struct __una_u32 *ptr = (const struct __una_u32 *) addr;
+ return ptr->x;
+}
+
+static inline __u16 __uldw(const __u16 *addr)
+{
+ const struct __una_u16 *ptr = (const struct __una_u16 *) addr;
+ return ptr->x;
+}
+
+/*
+ * Elemental unaligned stores
+ */
+
+static inline void __ustq(__u64 val, __u64 *addr)
+{
+ struct __una_u64 *ptr = (struct __una_u64 *) addr;
+ ptr->x = val;
+}
+
+static inline void __ustl(__u32 val, __u32 *addr)
+{
+ struct __una_u32 *ptr = (struct __una_u32 *) addr;
+ ptr->x = val;
+}
+
+static inline void __ustw(__u16 val, __u16 *addr)
+{
+ struct __una_u16 *ptr = (struct __una_u16 *) addr;
+ ptr->x = val;
+}
+
+#define __get_unaligned(ptr, size) ({ \
+ const void *__gu_p = ptr; \
+ __u64 val; \
+ switch (size) { \
+ case 1: \
+ val = *(const __u8 *)__gu_p; \
+ break; \
+ case 2: \
+ val = __uldw(__gu_p); \
+ break; \
+ case 4: \
+ val = __uldl(__gu_p); \
+ break; \
+ case 8: \
+ val = __uldq(__gu_p); \
+ break; \
+ default: \
+ bad_unaligned_access_length(); \
+ }; \
+ (__typeof__(*(ptr)))val; \
+})
+
+#define __put_unaligned(val, ptr, size) \
+do { \
+ void *__gu_p = ptr; \
+ switch (size) { \
+ case 1: \
+ *(__u8 *)__gu_p = val; \
+ break; \
+ case 2: \
+ __ustw(val, __gu_p); \
+ break; \
+ case 4: \
+ __ustl(val, __gu_p); \
+ break; \
+ case 8: \
+ __ustq(val, __gu_p); \
+ break; \
+ default: \
+ bad_unaligned_access_length(); \
+ }; \
+} while(0)
+
-#ifndef get_unaligned
-#if defined(__ppc__) || defined(ppc) || defined(__ppc) || \
- defined(__PPC) || defined(powerpc) || defined(__powerpc__)
-# define get_unaligned(ptr) (*(ptr))
-# define put_unaligned(val,ptr) ((void)(*(ptr) = (val)))
-#endif
-#endif
#define get_leXX(xx,p,field) (le##xx##_to_cpu ((p)->field))
#define set_leXX(xx,p,field,val) do { (p)->field = cpu_to_le##xx(val); } while (0)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org