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 [EMAIL PROTECTED] +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 _______________________________________________ Kernel-svn-changes mailing list Kernel-svn-changes@lists.alioth.debian.org http://lists.alioth.debian.org/mailman/listinfo/kernel-svn-changes