[linux-dvb] hg v4l-dvb broken with kernel 2.6.18.dfsg.1-13etch4 (Debian)

Hans-Georg Friedmann hgf at hgfriedmann.de
Sat Oct 20 00:04:49 CEST 2007

Hans-Georg Friedmann schrieb:
> Hi folks :-)
> Yesterday I upgraded the kernel of my c't-VDR 6 to 2.6.18.dfsg.1-13etch3, then
> to 2.6.18.dfsg.1-13etch4 and had the same problem with both of them when
> building the latest v4l-dvb from hg.
> Unfortunately I hadn't tried compiling with the before working hg-release, so I
> had quite a hard time finding the error.
> The error was (compiling with linux-source-2.6.18 2.6.18.dfsg.1-13etch4 on hg
> release ea93c93f1547 as of Oct 11th):
>   CC [M]  src/dvb/v4l-dvb_test/v4l/pvrusb2-sysfs.o
> src/dvb/v4l-dvb_test/v4l/pvrusb2-sysfs.c: In function 'pvr2_sysfs_add_debugifc':
> src/dvb/v4l-dvb_test/v4l/pvrusb2-sysfs.c:626: warning: assignment from incompatible pointer type
> src/dvb/v4l-dvb_test/v4l/pvrusb2-sysfs.c:627: warning: assignment from incompatible pointer type
> src/dvb/v4l-dvb_test/v4l/pvrusb2-sysfs.c:630: warning: assignment from incompatible pointer type
> src/dvb/v4l-dvb_test/v4l/pvrusb2-sysfs.c: In function 'pvr2_sysfs_class_create':
> src/dvb/v4l-dvb_test/v4l/pvrusb2-sysfs.c:925: error: 'struct class' has no member named 'dev_release'
> src/dvb/v4l-dvb_test/v4l/pvrusb2-sysfs.c:930: error: 'struct class' has no member named 'dev_uevent'
> make[4]: ***
> [src/dvb/v4l-dvb_test/v4l/pvrusb2-sysfs.o] Error 1
> The problem persisted even after deactivating pvrusb2-support and looked like that:
> make[2]: Entering directory
> `src/usr_src_vdr6/linux-headers-2.6.18-5-686'
>   CC [M]  src/dvb/v4l-dvb/v4l/videodev.o
> src/dvb/v4l-dvb/v4l/videodev.c:126: error: unknown field 'dev_attrs' specified in initializer
> src/dvb/v4l-dvb/v4l/videodev.c:126: warning: initialization from incompatible pointer type
> src/dvb/v4l-dvb/v4l/videodev.c:127: error: unknown field 'dev_release' specified in initializer
> src/dvb/v4l-dvb/v4l/videodev.c:127: warning: missing braces around initializer
> src/dvb/v4l-dvb/v4l/videodev.c:127: warning: (near initialization for 'video_class.subsys')
> src/dvb/v4l-dvb/v4l/videodev.c:127: warning: initialization from incompatible pointer type
> make[4]: *** [src/dvb/v4l-dvb/v4l/videodev.o]
> Finally looking in the Mercurial changelog at http://www.linuxtv.org/hg/v4l-dvb
> and trying to compile different revisions I found out that revision d54a009062d3
> worked, but a3583b377d71 not anymore:
> Mauro Carvalho Chehab 	V4L: convert struct class_device to struct device
> a3583b377d71			## <- doesn't work
> Mauro Carvalho Chehab 	videobuf_core init always require callback
> implementation	d54a009062d3	## <- still works
> An example of the problematic section in dvb/v4l-dvb/v4l/videodev.c[118]:
> static struct class video_class = {
>         .name    = VIDEO_NAME,
>         .release = video_release,
> #else
>         .dev_attrs = video_device_attrs,
>         .dev_release = video_release,
> #endif
> };
> It seems for me like the new struct isn't in the debian-version of 2.6.18 yet.
> But maybe the test for version 2.6.13 in the code is simply wrong and the change
> in the struct was even later? I'm not so good at kernel-level, so this is only a
> guess.
> So for now I'm running on rev. d54a009062d3 (accomplished by
> "hg revert -r d54a009062d3").

Hi again,

halim.sahin at t-online.de <20071017155934.GA7241 at halim.local> and
e9hack at googlemail.com <4712302D.2070701 at gmail.com> seem to have similar problems.

I tried again with changeset 6358...

> author	Mike Isely <isely at pobox.com>
> 	Sun Oct 14 16:20:34 2007 -0500 (5 days ago)
> changeset 6358	pvrusb2: Fix broken build for 2.6.18 kernel

... and got this error, obviously coming from some earlier changeset including
freezer.h, which isn't in 2.6.18:

  CC [M]  src/dvb/v4l-dvb_test_2.6.18_fix/v4l-dvb/v4l/saa7134-ts.o
  CC [M]  src/dvb/v4l-dvb_test_2.6.18_fix/v4l-dvb/v4l/saa7134-tvaudio.o
src/dvb/v4l-dvb_test_2.6.18_fix/v4l-dvb/v4l/saa7134-tvaudio.c:30:27: error:
linux/freezer.h: No such file or directory
make[3]: *** [src/dvb/v4l-dvb_test_2.6.18_fix/v4l-dvb/v4l/saa7134-tvaudio.o] Error 1
make[2]: *** [_module_src/dvb/v4l-dvb_test_2.6.18_fix/v4l-dvb/v4l] Error 2
make[2]: Leaving directory `src/usr_src_vdr6/linux-headers-2.6.18-5-686'
make[1]: *** [default] Fehler 2
make[1]: Leaving directory `src/dvb/v4l-dvb_test_2.6.18_fix/v4l-dvb/v4l'
make: *** [all] Fehler 2

The compilation of current changeset 6383 exits with exactly the same error,
btw. Would be nice if 2.6.18 would still be supported in the hg tree since this
still seems to be the official Kernel of Debian stable.


More information about the linux-dvb mailing list