Duncan Webb wrote:
> Ville Syrjälä wrote:
>> On Thu, Dec 14, 2006 at 09:34:35PM +0100, Duncan Webb wrote:
>>> Ville Syrjälä wrote:
>>>> On Tue, Dec 12, 2006 at 10:56:45PM +0100, Duncan Webb wrote:
>>>>> Problem compiling DirectFB-1.0.0-rc2, must be a header problem. I tried
>>>>> upping the kernel headers to 2.6.18.5 but this caused too many problems
>>>>> so I brought them back down to 2.6.12.0.
>>>>>
>>>>> The top of the output is:
>>>>>
>>>>> make[3]: Entering directory
>>>>> `/sources/ffs/DirectFB-1.0.0-rc2/gfxdrivers/matrox'
>>>>> /bin/sh ../../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../..
>>>>> -I../../include                -I../../lib    -I../../lib             
>>>>> -I../../src             -I../../systems  -D_REENTRANT   -O3 -ffast-math
>>>>> -pipe -O3 -march=pentium3 -mtune=pentium3 -fPIC -pipe -D_GNU_SOURCE 
>>>>> -Werror-implicit-function-declaration -c matrox_maven.c
>>>>>  gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -I../../lib
>>>>> -I../../lib -I../../src -I../../systems -D_REENTRANT -O3 -ffast-math
>>>>> -pipe -O3 -march=pentium3 -mtune=pentium3 -fPIC -pipe -D_GNU_SOURCE
>>>>> -Werror-implicit-function-declaration -c matrox_maven.c  -fPIC -DPIC -o
>>>>> .libs/matrox_maven.o
>>>>> In file included from matrox_maven.c:37:
>>>>> /usr/include/linux/sysfs.h:70: error: field `s_sibling' has incomplete 
>>>>> type
>>>> You kernel headers are broken (linux/i2c.h at least). linux/sysfs.h 
>>>> should not be included in user space code.
>>>>
>>> Just diff'ed various headers they are the same as in the
>>> linux-libc-headers-2.6.12.0.tar.bz2 sources. Anyway DirectFB-0.9.25.1
>>> still compiles correctly.
>> That's because it has a private non-broken copy of i2c.h.
>>
>>> in 0.9.25.1:
>>> #ifdef USE_SYSFS
>>> #include <sysfs/libsysfs.h>
>>> #endif
>>>
>>> in 1.0.0-rc2
>>> #ifdef USE_SYSFS
>>> #include <linux/sysfs.h>
>>> #include <sysfs/libsysfs.h>
>>> #endif
>> In matrox_maven.c? Not in any official version. Are you sure you didn't 
>> add that yourself?
> 
> Oh yes your quite correct I did, now I remember, I messed with the
> headers a bit, because I was getting this failure.
> 
> /bin/sh ../../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../..
> -I../../include                -I../../lib    -I../../lib
> -I../../src             -I../../systems  -D_REENTRANT   -O3 -ffast-math
> -pipe -O3 -march=pentium3 -mtune=pentium3 -fPIC -pipe -D_GNU_SOURCE
> -Werror-implicit-function-declaration -c matrox_maven.c
>  gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -I../../lib
> -I../../lib -I../../src -I../../systems -D_REENTRANT -O3 -ffast-math
> -pipe -O3 -march=pentium3 -mtune=pentium3 -fPIC -pipe -D_GNU_SOURCE
> -Werror-implicit-function-declaration -c matrox_maven.c  -fPIC -DPIC -o
> .libs/matrox_maven.o
> In file included from /usr/include/linux/sched.h:16,
>                  from /usr/include/linux/module.h:9,
>                  from /usr/include/linux/i2c.h:30,
>                  from matrox_maven.c:40:
> /usr/include/linux/signal.h:2:2: warning: #warning "You should include
> <signal.h>. This time I will do it for you."
> In file included from /usr/include/linux/sched.h:79,
>                  from /usr/include/linux/module.h:9,
>                  from /usr/include/linux/i2c.h:30,
>                  from matrox_maven.c:40:
> /usr/include/linux/resource.h:2:2: warning: #warning "You should include
> <sys/resource.h>. This time I will do it for you."
> In file included from /usr/include/linux/i2c.h:30,
>                  from matrox_maven.c:40:
> /usr/include/linux/module.h:41: error: field `attr' has incomplete type
> /usr/include/linux/module.h:49: error: field `kobj' has incomplete type
> In file included from /usr/include/linux/i2c.h:33,
>                  from matrox_maven.c:40:
> 
> 
> from /usr/include/linux/sched.h, /usr/include/linux/module.h and
> /usr/include/linux/i2c.h are the same as distributed.

FYI, I'm using sysfsutils-2.1.0 and the include file diffs between
0.9.25.1 and 1.0.0rc2 are:

 #include <sys/stat.h>
 #include <fcntl.h>
 #include <sys/ioctl.h>
+#include <errno.h>

 #ifdef USE_SYSFS
 #include <sysfs/libsysfs.h>
 #endif

-#include "i2c-dev.h"
+#include <linux/i2c.h>
+#include <linux/i2c-dev.h>
+
+#include <directfb.h>

 #include <direct/memcpy.h>
 #include <direct/messages.h>
 #include <direct/util.h>

 #include <misc/conf.h>
-#include <misc/util.h>

 #include "matrox.h"
 #include "regs.h"
 #include "mmio.h"

So this looks like a problem with i2c includes.

Slightly off topic but related to matrox_maven, is that occasionally,
when starting freevo (freevo->pygame->SDL->directfb->matroxfb), the tv
image from the second head has a slight interference problem showing
diagonal interference lines. There is no pattern for this behaviour,
most of the time (80%-90%) it is fine perfectly clear picture and then
several failures, with different levels of interference. It's still
possible to read the screen but just looks bad.

Hope this helps.
Duncan


_______________________________________________
directfb-users mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users

Reply via email to