[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