Stefan Lippers-Hollmann
Wed, 25 Mar 2009 13:09:43 -0700
Package: ndiswrapper-source Version: 1.54-1 Severity: important Tags: upstream, patch
Trying to build ndiswrapper-source 1.54(-1) against kernel 2.6.29 fails
with the following error messages:
/usr/bin/make -C
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper
KBUILD=/usr/src/linux-headers-2.6.29-rc8-sidux-amd64
make[3]: Entering directory
`/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper'
/usr/bin/make -C /usr/src/linux-headers-2.6.29-rc8-sidux-amd64
M=/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper
make[4]: Entering directory `/usr/src/linux-headers-2.6.29-rc8-sidux-amd64'
LD
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/built-in.o
MKEXPORT
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/crt_exports.h
CC [M]
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/crt.o
MKEXPORT
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/hal_exports.h
CC [M]
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/hal.o
CC [M]
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/iw_ndis.o
CC [M]
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/loader.o
MKEXPORT
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/ndis_exports.h
CC [M]
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/ndis.o
MKEXPORT
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/ntoskernel_exports.h
CC [M]
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/ntoskernel.o
MKEXPORT
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/ntoskernel_io_exports.h
CC [M]
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/ntoskernel_io.o
CC [M]
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/pe_linker.o
CC [M]
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/pnp.o
CC [M]
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/proc.o
MKEXPORT
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/rtl_exports.h
CC [M]
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/rtl.o
CC [M]
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/wrapmem.o
CC [M]
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/wrapndis.o
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/wrapndis.c:1747:
error: unknown field 'poll_controller' specified in initializer
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/wrapndis.c:1747:
warning: initialization from incompatible pointer type
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/wrapndis.c:1747:
error: expected '}' before ';' token
make[5]: ***
[/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper/wrapndis.o]
Error 1
make[4]: ***
[_module_/tmp/buildd/linux-modules-sidux-main-2.6-2.6.29~rc8.git3/debian/build/build_amd64_none_sidux-amd64_ndiswrapper]
Error 2
make[4]: Leaving directory `/usr/src/linux-headers-2.6.29-rc8-sidux-amd64'
(yes, this still happens with the final 2.6.29)
The reason for this is actually two-fold, on the one hand the field name is
wrong, .poll_controller should be .ndo_poll_controller, on the other hand a
syntax error sneaked into the netdev_ops conditional (; instead of ,) which
only triggers on kernel >= 2.6.29.
fix C syntax error and field name in conditional netdev ops struct,
triggering on kernel >= 2.6.29 and CONFIG_NET_POLL_CONTROLLER=y.
Signed-off-by: Stefan Lippers-Hollmann <s....@gmx.de>
--- a/driver/wrapndis.c
+++ b/driver/wrapndis.c
@@ -1744,7 +1744,7 @@ static const struct net_device_ops ndis_
.ndo_set_mac_address = ndis_set_mac_address,
.ndo_get_stats = ndis_get_stats,
#ifdef CONFIG_NET_POLL_CONTROLLER
- .poll_controller = ndis_poll_controller;
+ .ndo_poll_controller = ndis_poll_controller,
#endif
};
#endif
A complete debdiff is attached, build (amd64/ i386) and runtime (i386, SiS
163u) tested against 2.6.29 (the change is inside an >= 2.6.29 ifdef, so it
has no effect on <=2.6.28).
Regards
Stefan Lippers-Hollmann
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.29-0.slh.1-sidux-amd64 (SMP w/4 CPU cores; PREEMPT)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages ndiswrapper-source depends on:
ii bzip2 1.0.5-1 high-quality block-sorting file co
ii debhelper 7.2.6 helper programs for debian/rules
ii module-assistant 0.10.11.0 tool to make module package creati
ndiswrapper-source recommends no packages.
Versions of packages ndiswrapper-source suggests:
ii kernel-package 11.017 A utility for building Linux kerne
-- no debconf information
diff -u ndiswrapper-1.54/debian/rules ndiswrapper-1.54/debian/rules --- ndiswrapper-1.54/debian/rules +++ ndiswrapper-1.54/debian/rules @@ -1,22 +1,23 @@ #!/usr/bin/make -f +include /usr/share/quilt/quilt.make # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 build: build-indep build-arch build-indep: build-indep-stamp -build-indep-stamp: +build-indep-stamp: $(QUILT_STAMPFN) touch $@ build-arch: build-arch-stamp -build-arch-stamp: +build-arch-stamp: $(QUILT_STAMPFN) dh_testdir $(MAKE) -C utils touch $@ -clean: +clean: unpatch dh_testdir dh_testroot diff -u ndiswrapper-1.54/debian/control ndiswrapper-1.54/debian/control --- ndiswrapper-1.54/debian/control +++ ndiswrapper-1.54/debian/control @@ -4,7 +4,7 @@ Maintainer: Julian Andres Klode <j...@debian.org> Uploaders: Kel Modderman <k...@otaku42.de> Standards-Version: 3.8.1 -Build-Depends: debhelper (>= 5), bzip2 +Build-Depends: debhelper (>= 5), bzip2, quilt Homepage: http://ndiswrapper.sourceforge.net/ Package: ndiswrapper-common only in patch2: unchanged: --- ndiswrapper-1.54.orig/debian/patches/fix-typo-in-netdev-ops-struct.patch +++ ndiswrapper-1.54/debian/patches/fix-typo-in-netdev-ops-struct.patch @@ -0,0 +1,16 @@ +fix C syntax error and field name in conditional netdev ops struct, +triggering on kernel >= 2.6.29 and CONFIG_NET_POLL_CONTROLLER=y. + +Signed-off-by: Stefan Lippers-Hollmann <s....@gmx.de> + +--- a/driver/wrapndis.c ++++ b/driver/wrapndis.c +@@ -1744,7 +1744,7 @@ static const struct net_device_ops ndis_ + .ndo_set_mac_address = ndis_set_mac_address, + .ndo_get_stats = ndis_get_stats, + #ifdef CONFIG_NET_POLL_CONTROLLER +- .poll_controller = ndis_poll_controller; ++ .ndo_poll_controller = ndis_poll_controller, + #endif + }; + #endif only in patch2: unchanged: --- ndiswrapper-1.54.orig/debian/patches/series +++ ndiswrapper-1.54/debian/patches/series @@ -0,0 +1 @@ +fix-typo-in-netdev-ops-struct.patch
signature.asc
Description: This is a digitally signed message part.