Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: Building vdr again the new 2.6 kernel tree



Hmm, well then you should give gcc-2.95.3 a try, it's the only gcc supported
for building the kernel, AFAIK.

Tilman Baumann schrieb:

Onno Kreuzinger wrote:

Hi,
did you try
DVBDIR   = /usr/src/linux-2.6.0-test9/include/dvb
this works for 3 full days now.

i did, same error.

Regards Onno

Tilman Baumann schrieb:

Thank you for your great support. Things go better yet, but not perfect... :)

I tried both.

INCLUDES = -idirafter /usr/src/linux/include/

and

INCLUDES = -I/usr/include/
(the files of linux-kernel-headers are located in /usr/include/)


In both cases, i get this error:
###############################
g++ -g -O2 -Wall -Woverloaded-virtual -c -DREMOTE_KBD -DREMOTE_ -D_GNU_SOURCE -DVIDEODIR=\"/video\" -DPLUGINDIR=\"./PLUGINS/lib\" -idirafter /usr/src/linux/include/ dvbdevice.c
In file included from /usr/include/linux/videodev2.h:16,
from /usr/include/linux/videodev.h:8,
from dvbdevice.c:20:
/usr/include/linux/time.h:9: error: redefinition of `struct timespec'
/usr/include/time.h:119: error: previous definition of `struct timespec'
/usr/include/linux/time.h:15: error: redefinition of `struct timeval'
/usr/include/bits/time.h:70: error: previous definition of `struct timeval'
/usr/include/linux/time.h:354: error: redefinition of `struct itimerspec'
/usr/include/time.h:160: error: previous definition of `struct itimerspec'
make: *** [dvbdevice.o] Error 1



gcc is "gcc (GCC) 3.3.2 20031005 (Debian prerelease)"

Do i have to use any other version? Normally iu have no problems with this gcc compiling vdr.



Maik Zumstrull wrote:

Tilman Baumann wrote:

Quick 'n Dirty Fix:
Change the Makefile to "-idirafter" the 2.6 include dirs instead of "-I"ing them. This usually works, but is a Bad Thing(tm).




I would be disposed to do it bad. The main thing is, it works ;)

But unfortunately, I don't understand what you mean. Or how do i have to do it.

Sadly, i have no clue about Makefiles and compilerflags.




Somewhere in the Makefile is a line with something like "-I $(DVBDIR)". You would have to replace the -I with -idirafter.

Clean solution:
Install the user space versions of the 2.6 headers. Many distribution already package them. In Debian, you can install the package "linux-kernel-headers". Afterwards, VDR should compile cleanly without looking at the 2.6 internal headers.




I build the headers with make-kpkg kernel_headers and installed those.
Then, i set DVBDIR to /usr/src/kernel-headers-2.6.0-test9




Where the internal versions are.

But, it also does not work. I think make-kpkg is not able to seperate the userspaceheaders from the kernelspaceheaders.




That's because there are no userspace versions of them in the kernel sources anymore.

Where is the path to the userspaceheaders in my kernelsource. There must be one?




No, that's the point. The kernel sources only include the _internal_ versions of the headers in 2.6. The userspace versions are packaged seperately.













--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe vdr" as subject.



Home | Main Index | Thread Index