[kernel] r20189 - in dists/sid/linux-tools/debian/build/scripts/mod: . real-lsb-32 real-lsb-64 real-msb-32 real-msb-64
Ben Hutchings
benh at alioth.debian.org
Mon Jun 3 12:39:44 UTC 2013
Author: benh
Date: Mon Jun 3 12:39:43 2013
New Revision: 20189
Log:
Fix alignment of kernel_ulong_t in modpost when cross-building from i386
Whenever kernel_ulong_t is 64-bit, it is also 64-bit aligned. (This
is not true for u64, but that is not used directly in device ID
tables.) So define kernel_ulong_t as either __u32 or
__u64 __attribute__((aligned(8))) accordingly.
Added:
dists/sid/linux-tools/debian/build/scripts/mod/real-lsb-32/types.h
dists/sid/linux-tools/debian/build/scripts/mod/real-lsb-64/types.h
dists/sid/linux-tools/debian/build/scripts/mod/real-msb-32/types.h
dists/sid/linux-tools/debian/build/scripts/mod/real-msb-64/types.h
Modified:
dists/sid/linux-tools/debian/build/scripts/mod/Makefile.real
Modified: dists/sid/linux-tools/debian/build/scripts/mod/Makefile.real
==============================================================================
--- dists/sid/linux-tools/debian/build/scripts/mod/Makefile.real Mon Jun 3 12:26:08 2013 (r20188)
+++ dists/sid/linux-tools/debian/build/scripts/mod/Makefile.real Mon Jun 3 12:39:43 2013 (r20189)
@@ -14,13 +14,8 @@
WORD_SIZE := $(subst lsb-,,$(subst msb-,,$(TYPE)))
-# XXX This doesn't quite work, because if we cross-build between 64-bit
-# architectures they may have different alignment for pointers (aka
-# kernel_ulong_t). This particularly affects i2c_device_id and
-# platform_device_id.
-
real-$(TYPE)/devicetable-offsets.s: $(SOURCEDIR)/devicetable-offsets.c
- $(CC) $(CFLAGS) -include linux/types.h -Dkernel_ulong_t=__u$(WORD_SIZE) -S -o $@ $<
+ $(CC) -include real-$(TYPE)/types.h $(CFLAGS) -S -o $@ $<
real-$(TYPE)/devicetable-offsets.h: real-$(TYPE)/devicetable-offsets.s
echo >$@ "#define __DEVICEVTABLE_OFFSETS_H__"
Added: dists/sid/linux-tools/debian/build/scripts/mod/real-lsb-32/types.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/sid/linux-tools/debian/build/scripts/mod/real-lsb-32/types.h Mon Jun 3 12:39:43 2013 (r20189)
@@ -0,0 +1,2 @@
+#include <linux/types.h>
+typedef __u32 kernel_ulong_t;
Added: dists/sid/linux-tools/debian/build/scripts/mod/real-lsb-64/types.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/sid/linux-tools/debian/build/scripts/mod/real-lsb-64/types.h Mon Jun 3 12:39:43 2013 (r20189)
@@ -0,0 +1,2 @@
+#include <linux/types.h>
+typedef __u64 __attribute__((aligned(8))) kernel_ulong_t;
Added: dists/sid/linux-tools/debian/build/scripts/mod/real-msb-32/types.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/sid/linux-tools/debian/build/scripts/mod/real-msb-32/types.h Mon Jun 3 12:39:43 2013 (r20189)
@@ -0,0 +1,2 @@
+#include <linux/types.h>
+typedef __u32 kernel_ulong_t;
Added: dists/sid/linux-tools/debian/build/scripts/mod/real-msb-64/types.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/sid/linux-tools/debian/build/scripts/mod/real-msb-64/types.h Mon Jun 3 12:39:43 2013 (r20189)
@@ -0,0 +1,2 @@
+#include <linux/types.h>
+typedef __u64 __attribute__((aligned(8))) kernel_ulong_t;
More information about the Kernel-svn-changes
mailing list