Description of problem: Type __s64 may be not declared in the file /usr/include/linux/videodev2.h on line 622 and compiler exit with an error. I think it will be not bad to use #if defined statement. Version-Release number of selected component (if applicable): [root@build linux]# rpm -qf videodev2.h kernel-headers-2.6.18-8.el5 Additional info: Small patch attached.
Created attachment 160104 [details] Patch to /usr/include/linux/videodev2.patch
It seems, you have incorrect videodev2.h header, probably derived from somewhere else. Please, check twice yours kernel-header package. It must contain correct version of mentioned header. Please, inform me about the result. And provide me your kernel-header package in bad case.
Created attachment 160728 [details] kernel-headers rpm
[root@build ~]# rpm -q kernel-headers kernel-headers-2.6.18-8.el5 It's unmodified RPM-package from RHEL5 distr.
So you have non original videodev2.h. As you can see there is correct header in the original rpm, for sure. Please, reinstall this package on your pc.
I think you don't understand my question. On the line 622 you can see "__s64 value64;". Where the type "__s64" declared? I've compile a program and compilation failed because of undeclared type so as a variant I propose to use "#if defined" before this line.
Yep, I've got it... But I can't reproduce this problem, I mean, I have no problem with __s64 type using in this struct. Can you write some reproducing this bug code.
I found that while I compiled kopete 0.12.2 http://kopete.kde.org/releases.php (Source package link). Type "__s64" declared in the asm/types.h. We can see "#if defined(__GNUC__) && !defined(__STRICT_ANSI__)" above this declaration. But there is no checking of this condition in videodev2.h.
Ok. The fix proposed by you is not the root of the problem. This problem was already discussed on LKML: http://marc.info/?l=linux-kernel&m=115830263230795&w=2 I think, the best for you in this case to use the same construction as used for __u64, for the same reason, in kopete/libkopete/avdevice/videodevice.h, just add the following lines to this header: #ifndef __s64 //required by videodev.h #define __s64 __signed__ long long #endif // __s64
Well, I can solve problem myself. If it is not a problem of kernel-headers it's good. Thank you!