Hi, On Sat, Feb 27, 2016 at 04:08:12AM +0100, Andreas Beckmann wrote: > On 2016-02-26 18:21, Andreas Beckmann wrote: > > I tried a patch (in svn, but disabled) that adds KBUILD_CFLAGS to > > NV_CONFTEST_CFLAGS, but that already makes the build fail. (I didn't > > even think about testing 32/64 bit mixtures). > > OK, I got it working for 355.11: > * ignore -Werror* flags from KBUILD_CFLAGS to not break conftest.sh > * use LDFLAGS to pass the correct architecture
Great, thanks! > In a sid i386 chroot with foreign architecture amd64 I installed > linux-headers-4.3.*-amd64:amd64 and nvidia-kernel-source:amd64 and > successfully built a 355.11 module package. > > Now let's get this backported to 352.xx and 340.xx, help would be > appreciated. I'm attaching a patch that makes the 352.79-3 build and another one that uses just the -m% options from KBUILD_CFLAGS, which seems to better match the "allows building a amd64 kernel module with i386 user space" description. I'm not entirely sure it's better than just using KBUILD_CFLAGS minus -Werror, but thought I might as well share the idea. Both build well. -- Tomáš Janoušek, a.k.a. Pivník, a.k.a. Liskni_si, http://work.lisk.in/
diff --git a/nvidia-modules-common.mk b/nvidia-modules-common.mk index 726e90a..ca4d825 100644 --- a/nvidia-modules-common.mk +++ b/nvidia-modules-common.mk @@ -97,6 +97,7 @@ endif CONFTEST := /bin/sh $(src)/conftest.sh "$(CC)" "$(HOST_CC)" $(ARCH) $(KERNEL_SOURCES) $(KERNEL_OUTPUT) CONFTEST_CFLAGS := $(shell $(CONFTEST) build_cflags) +CONFTEST_CFLAGS += $(filter-out -Werror%,$(KBUILD_CFLAGS)) KERNEL_UNAME ?= $(shell $(CONFTEST) get_uname) MODULE_ROOT := /lib/modules/$(KERNEL_UNAME)/kernel/drivers
diff --git a/nvidia-modules-common.mk b/nvidia-modules-common.mk index 726e90a..324ebde 100644 --- a/nvidia-modules-common.mk +++ b/nvidia-modules-common.mk @@ -97,6 +97,7 @@ endif CONFTEST := /bin/sh $(src)/conftest.sh "$(CC)" "$(HOST_CC)" $(ARCH) $(KERNEL_SOURCES) $(KERNEL_OUTPUT) CONFTEST_CFLAGS := $(shell $(CONFTEST) build_cflags) +CONFTEST_CFLAGS += $(filter -m%,$(KBUILD_CFLAGS)) KERNEL_UNAME ?= $(shell $(CONFTEST) get_uname) MODULE_ROOT := /lib/modules/$(KERNEL_UNAME)/kernel/drivers