[kernel] r10737 - in dists/trunk/linux-2.6/debian/patches: bugfix/all bugfix/arm series

Gordon Farquharson gordon-guest at alioth.debian.org
Fri Mar 7 03:34:45 UTC 2008


Author: gordon-guest
Date: Fri Mar  7 03:34:43 2008
New Revision: 10737

Log:
Remove rejected patch that allowed the b43 driver to be built for arm
using a cross compiler, and add a patch that implements the proposed
solution (see
http://kerneltrap.org/mailarchive/linux-netdev/2008/3/2/1042284).


Added:
   dists/trunk/linux-2.6/debian/patches/bugfix/all/file2alias-cross-compile-fix.patch
Removed:
   dists/trunk/linux-2.6/debian/patches/bugfix/arm/fix-b43-driver-build-for-arm.patch
Modified:
   dists/trunk/linux-2.6/debian/patches/series/1~experimental.1

Added: dists/trunk/linux-2.6/debian/patches/bugfix/all/file2alias-cross-compile-fix.patch
==============================================================================
--- (empty file)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/all/file2alias-cross-compile-fix.patch	Fri Mar  7 03:34:43 2008
@@ -0,0 +1,118 @@
+Find below a patch that detect when we do a cross build and thus ignore
+the check.
+
+This is NOT tested as I do not have access to my dev box atm.
+I have only tested I could build a i386 kernel.
+
+So please let me know if this works and then I can push it upstrem
+hopefully already by tomorrow.
+
+Note: I decided to name the variable KBUILD_BUILDHOST as this is more
+descriptive then SUBARCH. We can later clean up the naming and get rid
+of SUBARCH but I refrained from this to make the pacht minimal.
+
+	Sam
+
+diff --git a/Makefile b/Makefile
+index a229784..de28306 100644
+--- a/Makefile
++++ b/Makefile
+@@ -189,7 +189,7 @@ SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
+ # Alternatively CROSS_COMPILE can be set in the environment.
+ # Default value for CROSS_COMPILE is not to prefix executables
+ # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
+-
++export KBUILD_BUILDHOST := $(SUBARCH)
+ ARCH		?= $(SUBARCH)
+ CROSS_COMPILE	?=
+ 
+diff --git a/scripts/Makefile.modpost b/scripts/Makefile.modpost
+index cfc004e..2d20640 100644
+--- a/scripts/Makefile.modpost
++++ b/scripts/Makefile.modpost
+@@ -58,6 +58,9 @@ modules   := $(patsubst %.o,%.ko, $(wildcard $(__modules:.ko=.o)))
+ # Stop after building .o files if NOFINAL is set. Makes compile tests quicker
+ _modpost: $(if $(KBUILD_MODPOST_NOFINAL), $(modules:.ko:.o),$(modules))
+ 
++ifneq ($(KBUILD_BUILDHOST),$(ARCH))
++        cross_build := 1
++endif
+ 
+ # Step 2), invoke modpost
+ #  Includes step 3,4
+@@ -70,7 +73,8 @@ modpost = scripts/mod/modpost                    \
+  $(if $(CONFIG_DEBUG_SECTION_MISMATCH),,-S)      \
+  $(if $(CONFIG_MARKERS),-K $(kernelmarkersfile)) \
+  $(if $(CONFIG_MARKERS),-M $(markersfile))	 \
+- $(if $(KBUILD_EXTMOD)$(KBUILD_MODPOST_WARN),-w)
++ $(if $(KBUILD_EXTMOD)$(KBUILD_MODPOST_WARN),-w) \
++ $(if $(cross_build),-c)
+ 
+ quiet_cmd_modpost = MODPOST $(words $(filter-out vmlinux FORCE, $^)) modules
+       cmd_modpost = $(modpost) -s
+diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
+index 9ddf944..348d868 100644
+--- a/scripts/mod/file2alias.c
++++ b/scripts/mod/file2alias.c
+@@ -51,11 +51,13 @@ do {                                                            \
+                 sprintf(str + strlen(str), "*");                \
+ } while(0)
+ 
++unsigned int cross_build = 0;
+ /**
+  * Check that sizeof(device_id type) are consistent with size of section
+  * in .o file. If in-consistent then userspace and kernel does not agree
+  * on actual size which is a bug.
+  * Also verify that the final entry in the table is all zeros.
++ * Ignore both checks if build host differ from target host and size differs.
+  **/
+ static void device_id_check(const char *modname, const char *device_id,
+ 			    unsigned long size, unsigned long id_size,
+@@ -64,6 +66,8 @@ static void device_id_check(const char *modname, const char *device_id,
+ 	int i;
+ 
+ 	if (size % id_size || size < id_size) {
++		if (cross_build != 0)
++			return;
+ 		fatal("%s: sizeof(struct %s_device_id)=%lu is not a modulo "
+ 		      "of the size of section __mod_%s_device_table=%lu.\n"
+ 		      "Fix definition of struct %s_device_id "
+diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
+index 695b5d6..110cf24 100644
+--- a/scripts/mod/modpost.c
++++ b/scripts/mod/modpost.c
+@@ -2026,7 +2026,7 @@ int main(int argc, char **argv)
+ 	int opt;
+ 	int err;
+ 
+-	while ((opt = getopt(argc, argv, "i:I:msSo:awM:K:")) != -1) {
++	while ((opt = getopt(argc, argv, "i:I:cmsSo:awM:K:")) != -1) {
+ 		switch (opt) {
+ 		case 'i':
+ 			kernel_read = optarg;
+@@ -2035,6 +2035,9 @@ int main(int argc, char **argv)
+ 			module_read = optarg;
+ 			external_module = 1;
+ 			break;
++		case 'c':
++			cross_build = 1;
++			break;
+ 		case 'm':
+ 			modversions = 1;
+ 			break;
+diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h
+index 565c587..09f58e3 100644
+--- a/scripts/mod/modpost.h
++++ b/scripts/mod/modpost.h
+@@ -135,6 +135,7 @@ struct elf_info {
+ };
+ 
+ /* file2alias.c */
++extern unsigned int cross_build;
+ void handle_moddevtable(struct module *mod, struct elf_info *info,
+ 			Elf_Sym *sym, const char *symname);
+ void add_moddevtable(struct buffer *buf, struct module *mod);
+--
+To unsubscribe from this list: send the line "unsubscribe netdev" in
+the body of a message to majordomo at vger.kernel.org
+More majordomo info at  http://vger.kernel.org/majordomo-info.html

Modified: dists/trunk/linux-2.6/debian/patches/series/1~experimental.1
==============================================================================
--- dists/trunk/linux-2.6/debian/patches/series/1~experimental.1	(original)
+++ dists/trunk/linux-2.6/debian/patches/series/1~experimental.1	Fri Mar  7 03:34:43 2008
@@ -30,8 +30,8 @@
 + bugfix/arm/disable-r6040.patch
 + features/all/at76.patch 
 + bugfix/arm/ignore-invalid-memtags.patch
-+ bugfix/arm/fix-b43-driver-build-for-arm.patch
 + bugfix/fix-hifn_795X-divdi3.patch
 + features/all/add-m29w400d.patch
 + bugfix/all/rtc-x1205-new-style-conversion.patch
 + bugfix/all/rtc-x1205-new-style-conversion-checkpatch-fixes.patch
++ bugfix/all/file2alias-cross-compile-fix.patch



More information about the Kernel-svn-changes mailing list