changeset 752:9f6b0cad047c

Backport busybox bugfix that breaks non-x86 targets with gcc 4.2.1.
author Rob Landley <rob@landley.net>
date Sat, 20 Jun 2009 01:57:35 -0500
parents d0157468f73d
children 25adf2fe1f86
files sources/patches/busybox-fixunaligned32.patch
diffstat 1 files changed, 22 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sources/patches/busybox-fixunaligned32.patch	Sat Jun 20 01:57:35 2009 -0500
@@ -0,0 +1,22 @@
+commit 3be2308676607bdb0e901d439e288081c39011a4
+Author: Denis Vlasenko <vda.linux@googlemail.com>
+Date:   Fri Apr 17 22:20:44 2009 +0000
+
+    fix move_to_unaligned32
+
+diff --git a/include/platform.h b/include/platform.h
+index 47fd5f6..317349f 100644
+--- a/include/platform.h
++++ b/include/platform.h
+@@ -173,7 +173,10 @@
+ /* performs reasonably well (gcc usually inlines memcpy here) */
+ #define move_from_unaligned16(v, u16p) (memcpy(&(v), (u16p), 2))
+ #define move_from_unaligned32(v, u32p) (memcpy(&(v), (u32p), 4))
+-#define move_to_unaligned32(u32p, v)   (memcpy((u32p), &(v), 4))
++#define move_to_unaligned32(u32p, v) do { \
++	uint32_t __t = (v); \
++	memcpy((u32p), &__t, 4); \
++} while (0)
+ #endif
+ 
+ /* ---- Networking ------------------------------------------ */