Here's my change for linux-fusion-3.2.4 for newer 2.6 kernels:

replace the 6 lines that update the time stamp on entry->last_lock with:
{
   struct timespec n;
   getnstimeofday(&n);
   entry->last_lock.tv_sec = n.tv_sec;
   entry->last_lock.tv_usec = n.tv_nsec/1000;
}

Not sure what sort of #if kernel version stuff applies to make this more ubiquitous.

Lucian Muresan wrote:

Hi, it's me again responding to my own message...

Lucian Muresan wrote:

Hello,

I'm using DirectFB with the linux-fusion module for a long time, and now
when the time has come for performing some system upgrades, I ran into
the following problem:
  - upgraded to a 2.6.25 kernel;
- built linux-fusion-7.0.1 (which was moved to "Old" on the homepage during last night, btw)
  - build DirectFB-1.1.1 (too, moved to "Old" last night)
- built several apps depending on DirectFB directly, and on DFB++-1.0.0

After all this, had to find out that the linux-fusion module, although it builds, is not usable, as there is no more "xtime" symbol in the kernel.

Then I found this thread dated in March 2008 about releasing linux-fusion-3.2.5, but I can't find that one.

Allright, then I decided to upgrade even more, and built linux-fusion-8.0.0 which loads alright as the xtime code has been ported, then I had to go with DirectFB-1.2.0 as older DirectFB is not API-compatible with that new linux-fusion. But now I need DFB++ built against new DirectFB, well, 1.0.0 it's not API-compatible, and the git version also is not.


Allright, I patched DFB++ checked out from git myself to build against DirectFB-1.2.0, maybe not the most elegant way, but at least it builds without errors (haven't tested live, as I did it over a ssh connection). Others might find the attached patch useful...

Cheers,
Lucian

------------------------------------------------------------------------

diff -Naur DFB++-9999_orig/dfb++/idirectfb.cpp DFB++-9999/dfb++/idirectfb.cpp
--- DFB++-9999_orig/dfb++/idirectfb.cpp 2007-12-17 18:05:53.000000000 +0100
+++ DFB++-9999/dfb++/idirectfb.cpp      2008-06-09 12:27:28.000000000 +0200
@@ -37,7 +37,7 @@

IDirectFB *IDirectFB::AddRef()
{
-     DFBCHECK( iface->AddRef (iface) );
+     DFBCHECK( DFBResult ( iface->AddRef (iface) ) );

     refs++;

@@ -46,7 +46,7 @@

void IDirectFB::Release()
{
-     DFBCHECK( iface->Release (iface) );
+     DFBCHECK( DFBResult ( iface->Release (iface) ) );

     if (--refs == 0)
          delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbdatabuffer.cpp 
DFB++-9999/dfb++/idirectfbdatabuffer.cpp
--- DFB++-9999_orig/dfb++/idirectfbdatabuffer.cpp       2007-12-17 
18:05:53.000000000 +0100
+++ DFB++-9999/dfb++/idirectfbdatabuffer.cpp    2008-06-09 12:29:12.000000000 
+0200
@@ -37,7 +37,7 @@

IDirectFBDataBuffer *IDirectFBDataBuffer::AddRef()
{
-     DFBCHECK( iface->AddRef (iface) );
+     DFBCHECK( DFBResult ( iface->AddRef (iface) ) );

     refs++;

@@ -46,7 +46,7 @@

void IDirectFBDataBuffer::Release()
{
-     DFBCHECK( iface->Release (iface) );
+     DFBCHECK( DFBResult ( iface->Release (iface) ) );

     if (--refs == 0)
          delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbdisplaylayer.cpp 
DFB++-9999/dfb++/idirectfbdisplaylayer.cpp
--- DFB++-9999_orig/dfb++/idirectfbdisplaylayer.cpp     2007-12-17 
18:05:53.000000000 +0100
+++ DFB++-9999/dfb++/idirectfbdisplaylayer.cpp  2008-06-09 12:30:06.000000000 
+0200
@@ -37,7 +37,7 @@

IDirectFBDisplayLayer *IDirectFBDisplayLayer::AddRef()
{
-     DFBCHECK( iface->AddRef (iface) );
+     DFBCHECK( DFBResult ( iface->AddRef (iface) ) );

     refs++;

@@ -46,7 +46,7 @@

void IDirectFBDisplayLayer::Release()
{
-     DFBCHECK( iface->Release (iface) );
+     DFBCHECK( DFBResult ( iface->Release (iface) ) );

     if (--refs == 0)
          delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbeventbuffer.cpp 
DFB++-9999/dfb++/idirectfbeventbuffer.cpp
--- DFB++-9999_orig/dfb++/idirectfbeventbuffer.cpp      2007-12-17 
18:05:53.000000000 +0100
+++ DFB++-9999/dfb++/idirectfbeventbuffer.cpp   2008-06-09 12:30:48.000000000 
+0200
@@ -37,7 +37,7 @@

IDirectFBEventBuffer *IDirectFBEventBuffer::AddRef()
{
-     DFBCHECK( iface->AddRef (iface) );
+     DFBCHECK( DFBResult( iface->AddRef (iface) ) );

     refs++;

@@ -46,7 +46,7 @@

void IDirectFBEventBuffer::Release()
{
-     DFBCHECK( iface->Release (iface) );
+     DFBCHECK( DFBResult( iface->Release (iface) ) );

     if (--refs == 0)
          delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbfont.cpp 
DFB++-9999/dfb++/idirectfbfont.cpp
--- DFB++-9999_orig/dfb++/idirectfbfont.cpp     2007-12-17 18:05:53.000000000 
+0100
+++ DFB++-9999/dfb++/idirectfbfont.cpp  2008-06-09 12:31:30.000000000 +0200
@@ -37,7 +37,7 @@

IDirectFBFont *IDirectFBFont::AddRef()
{
-     DFBCHECK( iface->AddRef (iface) );
+     DFBCHECK( DFBResult ( iface->AddRef (iface) ) );

     refs++;

@@ -46,7 +46,7 @@

void IDirectFBFont::Release()
{
-     DFBCHECK( iface->Release (iface) );
+     DFBCHECK( DFBResult ( iface->Release (iface) ) );

     if (--refs == 0)
          delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbimageprovider.cpp 
DFB++-9999/dfb++/idirectfbimageprovider.cpp
--- DFB++-9999_orig/dfb++/idirectfbimageprovider.cpp    2007-12-17 
18:05:53.000000000 +0100
+++ DFB++-9999/dfb++/idirectfbimageprovider.cpp 2008-06-09 12:32:07.000000000 
+0200
@@ -37,7 +37,7 @@

IDirectFBImageProvider *IDirectFBImageProvider::AddRef()
{
-     DFBCHECK( iface->AddRef (iface) );
+     DFBCHECK( DFBResult ( iface->AddRef (iface) ) );

     refs++;

@@ -46,7 +46,7 @@

void IDirectFBImageProvider::Release()
{
-     DFBCHECK( iface->Release (iface) );
+     DFBCHECK( DFBResult ( iface->Release (iface) ) );

     if (--refs == 0)
          delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbinputdevice.cpp 
DFB++-9999/dfb++/idirectfbinputdevice.cpp
--- DFB++-9999_orig/dfb++/idirectfbinputdevice.cpp      2007-12-17 
18:05:53.000000000 +0100
+++ DFB++-9999/dfb++/idirectfbinputdevice.cpp   2008-06-09 12:32:50.000000000 
+0200
@@ -37,7 +37,7 @@

IDirectFBInputDevice *IDirectFBInputDevice::AddRef()
{
-     DFBCHECK( iface->AddRef (iface) );
+     DFBCHECK( DFBResult ( iface->AddRef (iface) ) );

     refs++;

@@ -46,7 +46,7 @@

void IDirectFBInputDevice::Release()
{
-     DFBCHECK( iface->Release (iface) );
+     DFBCHECK( DFBResult ( iface->Release (iface) ) );

     if (--refs == 0)
          delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbpalette.cpp 
DFB++-9999/dfb++/idirectfbpalette.cpp
--- DFB++-9999_orig/dfb++/idirectfbpalette.cpp  2007-12-17 18:05:53.000000000 
+0100
+++ DFB++-9999/dfb++/idirectfbpalette.cpp       2008-06-09 12:33:18.000000000 
+0200
@@ -37,7 +37,7 @@

IDirectFBPalette *IDirectFBPalette::AddRef()
{
-     DFBCHECK( iface->AddRef (iface) );
+     DFBCHECK( DFBResult ( iface->AddRef (iface) ) );

     refs++;

@@ -46,7 +46,7 @@

void IDirectFBPalette::Release()
{
-     DFBCHECK( iface->Release (iface) );
+     DFBCHECK( DFBResult ( iface->Release (iface) ) );

     if (--refs == 0)
          delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbscreen.cpp 
DFB++-9999/dfb++/idirectfbscreen.cpp
--- DFB++-9999_orig/dfb++/idirectfbscreen.cpp   2007-12-17 18:05:53.000000000 
+0100
+++ DFB++-9999/dfb++/idirectfbscreen.cpp        2008-06-09 12:33:44.000000000 
+0200
@@ -37,7 +37,7 @@

IDirectFBScreen *IDirectFBScreen::AddRef()
{
-     DFBCHECK( iface->AddRef (iface) );
+     DFBCHECK( DFBResult ( iface->AddRef (iface) ) );

     refs++;

@@ -46,7 +46,7 @@

void IDirectFBScreen::Release()
{
-     DFBCHECK( iface->Release (iface) );
+     DFBCHECK( DFBResult ( iface->Release (iface) ) );

     if (--refs == 0)
          delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbsurface.cpp 
DFB++-9999/dfb++/idirectfbsurface.cpp
--- DFB++-9999_orig/dfb++/idirectfbsurface.cpp  2007-12-17 18:05:53.000000000 
+0100
+++ DFB++-9999/dfb++/idirectfbsurface.cpp       2008-06-09 12:34:30.000000000 
+0200
@@ -37,7 +37,7 @@

IDirectFBSurface *IDirectFBSurface::AddRef()
{
-     DFBCHECK( iface->AddRef (iface) );
+     DFBCHECK( DFBResult ( iface->AddRef (iface) ) );

     refs++;

@@ -46,7 +46,7 @@

void IDirectFBSurface::Release()
{
-     DFBCHECK( iface->Release (iface) );
+     DFBCHECK( DFBResult ( iface->Release (iface) ) );

     if (--refs == 0)
          delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbvideoprovider.cpp 
DFB++-9999/dfb++/idirectfbvideoprovider.cpp
--- DFB++-9999_orig/dfb++/idirectfbvideoprovider.cpp    2007-12-17 
18:05:53.000000000 +0100
+++ DFB++-9999/dfb++/idirectfbvideoprovider.cpp 2008-06-09 12:35:03.000000000 
+0200
@@ -37,7 +37,7 @@

IDirectFBVideoProvider *IDirectFBVideoProvider::AddRef()
{
-     DFBCHECK( iface->AddRef (iface) );
+     DFBCHECK( DFBResult ( iface->AddRef (iface) ) );

     refs++;

@@ -46,7 +46,7 @@

void IDirectFBVideoProvider::Release()
{
-     DFBCHECK( iface->Release (iface) );
+     DFBCHECK( DFBResult ( iface->Release (iface) ) );

     if (--refs == 0)
          delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbwindow.cpp 
DFB++-9999/dfb++/idirectfbwindow.cpp
--- DFB++-9999_orig/dfb++/idirectfbwindow.cpp   2007-12-17 18:05:53.000000000 
+0100
+++ DFB++-9999/dfb++/idirectfbwindow.cpp        2008-06-09 12:35:37.000000000 
+0200
@@ -37,7 +37,7 @@

IDirectFBWindow *IDirectFBWindow::AddRef()
{
-     DFBCHECK( iface->AddRef (iface) );
+     DFBCHECK( DFBResult ( iface->AddRef (iface) ) );

     refs++;

@@ -46,7 +46,7 @@

void IDirectFBWindow::Release()
{
-     DFBCHECK( iface->Release (iface) );
+     DFBCHECK( DFBResult ( iface->Release (iface) ) );

     if (--refs == 0)
          delete this;
------------------------------------------------------------------------

_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev
_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to