uicmoc 2.3.10, 3.3.5: add patch to make it build on 64bit platforms.
authorMichael Lauer <mickey@vanille-media.de>
Tue, 28 Mar 2006 10:22:32 +0000 (10:22 +0000)
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>
Tue, 28 Mar 2006 10:22:32 +0000 (10:22 +0000)
Thanks Darren Edmundson for writing the patch and Eric Shattow for testing.

packages/uicmoc/uicmoc-native-2.3.10/64bit-cleanup.patch [new file with mode: 0644]
packages/uicmoc/uicmoc-native_2.3.10.bb
packages/uicmoc/uicmoc3-native-3.3.5/64bit-cleanup.patch [new file with mode: 0644]
packages/uicmoc/uicmoc3-native_3.3.5.bb

diff --git a/packages/uicmoc/uicmoc-native-2.3.10/64bit-cleanup.patch b/packages/uicmoc/uicmoc-native-2.3.10/64bit-cleanup.patch
new file mode 100644 (file)
index 0000000..3cca3e0
--- /dev/null
@@ -0,0 +1,226 @@
+--- qt-2.3.10/src/kernel/qsharedmemory.cpp~64bit       2005-12-14 12:31:39.000000000 +0000
++++ qt-2.3.10/src/kernel/qsharedmemory.cpp     2005-12-14 13:24:41.000000000 +0000
+@@ -36,6 +36,7 @@
+ #include <sys/ipc.h>
+ #include <sys/types.h>
++#include <stdint.h>
+ #if defined(QT_POSIX_QSHM)
+ #include <fcntl.h>
+@@ -122,8 +123,8 @@
+   if (shmId == -1)
+     shmId = shmget (key, shmSize, 0);
+-  shmBase = shmat (shmId, 0, 0);
+-  if ((int) shmBase == -1 || shmBase == 0)
++  intptr_t shmBase = (intptr_t) shmat (shmId, 0, 0);
++  if (shmBase == -1 || shmBase == 0)
+     return FALSE;
+   else
+     return TRUE;
+--- qt-2.3.10/src/kernel/qapplication_qws.cpp~64bit    2005-12-14 12:15:42.000000000 +0000
++++ qt-2.3.10/src/kernel/qapplication_qws.cpp  2005-12-14 12:19:39.000000000 +0000
+@@ -87,6 +87,7 @@
+ #include <sys/shm.h>
+ #include <sys/sem.h>
+ #include <sys/socket.h>
++#include <stdint.h>
+ #endif
+ #include <stdlib.h>
+@@ -2041,7 +2042,7 @@
+       w = widgetAt(*qt_last_x, *qt_last_y, FALSE);
+     if ( !w )
+       w = desktop();
+-    QPaintDevice::qwsDisplay()->selectCursor(w, (int)app_cursor->handle());
++    QPaintDevice::qwsDisplay()->selectCursor(w, (intptr_t)app_cursor->handle());
+ }
+ void QApplication::restoreOverrideCursor()
+@@ -2060,11 +2061,11 @@
+       cursorStack = 0;
+       qws_overrideCursor = FALSE;
+       if ( w->testWState(WState_OwnCursor) )
+-          QPaintDevice::qwsDisplay()->selectCursor(w, (int)w->cursor().handle());
++          QPaintDevice::qwsDisplay()->selectCursor(w, (intptr_t)w->cursor().handle());
+       else
+           QPaintDevice::qwsDisplay()->selectCursor(w, ArrowCursor);
+     } else {
+-      QPaintDevice::qwsDisplay()->selectCursor(w, (int)app_cursor->handle());
++      QPaintDevice::qwsDisplay()->selectCursor(w, (intptr_t)app_cursor->handle());
+     }
+ }
+ #endif// QT_NO_CURSOR
+@@ -2635,7 +2636,7 @@
+                   }
+                   if ( !qws_overrideCursor ) {    // is override cursor active?
+                       if (curs)
+-                          QPaintDevice::qwsDisplay()->selectCursor(widget, (int)curs->handle());
++                          QPaintDevice::qwsDisplay()->selectCursor(widget, (intptr_t)curs->handle());
+                       else
+                           QPaintDevice::qwsDisplay()->selectCursor(widget, ArrowCursor);
+                   }
+--- qt-2.3.10/src/kernel/qgfxlinuxfb_qws.cpp~64bit     2005-01-23 14:00:46.000000000 +0000
++++ qt-2.3.10/src/kernel/qgfxlinuxfb_qws.cpp   2005-12-14 12:04:56.000000000 +0000
+@@ -42,6 +42,7 @@
+ #include <sys/mman.h>
+ #include <fcntl.h>
+ #include <errno.h>
++#include <stdint.h>
+ #include "qgfxlinuxfb_qws.h"
+ #include "qwindowsystem_qws.h"
+@@ -164,7 +165,7 @@
+                                MAP_SHARED, fd, 0);
+     data += dataoffset;
+-    if ((int)data == -1) {
++    if ((intptr_t)data == -1) {
+       perror("mapping /dev/fb0");
+       qWarning("Error: failed to map framebuffer device to memory.");
+       return FALSE;
+@@ -703,7 +704,7 @@
+     psize += 8;           // for alignment
+     psize &= ~0x7;  // align
+-    unsigned int pos=(unsigned int)data;
++    uintptr_t pos=(uintptr_t)data;
+     pos += psize;
+     entryp = ((int *)pos);
+     lowest = ((unsigned int *)pos)+1;
+--- qt-2.3.10/src/kernel/qmemorymanager_qws.h~64bit    2005-01-23 14:00:46.000000000 +0000
++++ qt-2.3.10/src/kernel/qmemorymanager_qws.h  2005-12-14 12:00:32.000000000 +0000
+@@ -33,6 +33,9 @@
+ #ifndef QMEMORYMANAGER_H
+ #define QMEMORYMANAGER_H
++/* Needed for uintptr_t to allow 64bit clean pointer handling */
++#include <stdint.h> 
++
+ #ifndef QT_H
+ #include <qfontmanager_qws.h>
+ #include <qstring.h>
+@@ -126,8 +129,8 @@
+     // constructs from a memory ptr to where the data after the item starts
+     QSMCacheItemPtr(void *data) {
+       char *ptr = (char*)data;
+-      if ( (int)ptr != (((int)ptr+3)&~3) )
+-          qDebug("err, passed a non-aligned data ptr %x", (int)ptr);
++      if (intptr_t(data)&3!=0)
++          qDebug("err, passed a non-aligned data ptr %p", ptr);
+       d = (QSMCacheItem*)(ptr - sizeof(QSMCacheItem));
+     }
+     // returns a pointer to the data after the item
+--- qt-2.3.10/src/kernel/qwsregionmanager_qws.cpp~64bit        2005-12-14 13:25:06.000000000 +0000
++++ qt-2.3.10/src/kernel/qwsregionmanager_qws.cpp      2005-12-14 13:25:51.000000000 +0000
+@@ -32,6 +32,7 @@
+ #include "qwsdisplay_qws.h"
+ #include "qwsregionmanager_qws.h"
+ #include <stdlib.h>
++#include <stdint.h>
+ #ifndef QT_NO_QWS_MULTIPROCESS
+ #include <sys/types.h>
+@@ -286,7 +287,7 @@
+           data = (unsigned char *)shmat( shmId, 0, SHM_RDONLY );
+     }
+-    return ( shmId != -1 && (int)data != -1 );
++    return ( shmId != -1 && (intptr_t)data != -1 );
+ #else
+       int dataSize = sizeof(QWSRegionHeader)                // header
+                   + sizeof(QWSRegionIndex) * QT_MAX_REGIONS // + index
+--- qt-2.3.10/src/kernel/qpixmapcache.cpp~64bit        2005-12-14 13:26:43.000000000 +0000
++++ qt-2.3.10/src/kernel/qpixmapcache.cpp      2005-12-14 13:30:33.000000000 +0000
+@@ -38,6 +38,7 @@
+ #include "qpixmapcache.h"
+ #include "qcache.h"
+ #include "qobject.h"
++#include <stdint.h>
+ // REVISED: paul
+@@ -519,7 +520,7 @@
+ #endif // DEBUG_SHARED_MEMORY_CACHE
+     }
+-    if ( shmId == -1 || (int)shm == -1 )
++    if ( shmId == -1 || (intptr_t)shm == -1 )
+       qFatal("Cannot attach to shared memory");
+     qt_sharedMemoryData = shm->data;
+@@ -536,8 +537,8 @@
+       shm->tail.setFree(false);
+       shm->tail.setNextFree(QSMemPtr());
+ #ifdef THROW_AWAY_UNUSED_PAGES
+-      int freePageStart = PAGE_ALIGN((int)&shm->first + sizeof(QSMemNode));
+-      int freePagesLength = PAGE_ALIGN((int)&shm->tail) - freePageStart;
++      intptr_t freePageStart = PAGE_ALIGN((intptr_t)&shm->first + sizeof(QSMemNode));
++      intptr_t freePagesLength = PAGE_ALIGN((intptr_t)&shm->tail) - freePageStart;
+       if ( freePagesLength ) {
+ # ifdef DEBUG_SHARED_MEMORY_CACHE
+           qDebug("Initially marking free pages as not needed");
+@@ -770,8 +771,8 @@
+     node = newFreeNode->next();
+ #ifdef THROW_AWAY_UNUSED_PAGES
+-    int freePageStart = PAGE_ALIGN((int)newFreeNode+sizeof(QSMemNode));
+-    int freePagesLength = PAGE_ALIGN((int)node) - freePageStart;
++    intptr_t freePageStart = PAGE_ALIGN((intptr_t)newFreeNode+sizeof(QSMemNode));
++    intptr_t freePagesLength = PAGE_ALIGN((intptr_t)node) - freePageStart;
+     if ( freePagesLength ) {
+ #ifdef DEBUG_SHARED_MEMORY_CACHE
+       qDebug("Marking pages not needed");
+--- qt-2.3.10/src/kernel/qwidget_qws.cpp~64bit 2005-12-14 12:20:46.000000000 +0000
++++ qt-2.3.10/src/kernel/qwidget_qws.cpp       2005-12-14 12:30:35.000000000 +0000
+@@ -50,6 +50,7 @@
+ #include "qwsmanager_qws.h"
+ #include "qwsregionmanager_qws.h"
+ #include "qinputcontext_p.h"
++#include <stdint.h>
+ void qt_insert_sip( QWidget*, int, int );     // defined in qapplication_x11.cpp
+ int  qt_sip_count( QWidget* );                        // --- "" ---
+@@ -633,7 +634,7 @@
+       qt_mouseGrb->releaseMouse();
+     qwsDisplay()->grabMouse(this,TRUE);
+-    qwsDisplay()->selectCursor(this, (unsigned int)cursor.handle());
++    qwsDisplay()->selectCursor(this, (uintptr_t)cursor.handle());
+     qt_mouseGrb = this;
+     qt_pressGrab = 0;
+ }
+@@ -1840,11 +1841,11 @@
+ void QWidget::updateCursor( const QRegion &r ) const
+ {
+     if ( qt_last_x && (!QWidget::mouseGrabber() || QWidget::mouseGrabber() == this) &&
+-          qt_last_cursor != (WId)cursor().handle() && !qws_overrideCursor ) {
++          qt_last_cursor != (uintptr_t)cursor().handle() && !qws_overrideCursor ) {
+       QSize s( qt_screen->width(), qt_screen->height() );
+       QPoint pos = qt_screen->mapToDevice(QPoint(*qt_last_x, *qt_last_y), s);
+       if ( r.contains(pos) )
+-          qwsDisplay()->selectCursor((QWidget*)this, (unsigned int)cursor().handle());
++          qwsDisplay()->selectCursor((QWidget*)this, (uintptr_t)cursor().handle());
+     }
+ }
+ #endif
+--- qt-2.3.10/tools/qvfb/qvfbview.cpp~64bit    2005-12-14 13:32:47.000000000 +0000
++++ qt-2.3.10/tools/qvfb/qvfbview.cpp  2005-12-14 13:33:27.000000000 +0000
+@@ -40,6 +40,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <math.h>
++#include <stdint.h>
+ QVFbView::QVFbView( int display_id, int _w, int _h, int d, Rotation r, QWidget *parent,
+@@ -136,7 +137,7 @@
+       data = (unsigned char *)shmat( shmId, 0, 0 );
+     }
+-    if ( (int)data == -1 ){
++    if ( (intptr_t)data == -1 ){
+       ::close(mouseFd);
+       ::close(keyboardFd);
+       qFatal( "Cannot attach to shared memory %d",shmId );
index db884e1..c9457e1 100644 (file)
@@ -1,15 +1,17 @@
 DESCRIPTION = "User Interface Generator and Meta Object Compiler (moc) for Qt(E) 2.x"
+HOMEPAGE = "http://www.trolltech.com"
 SECTION = "devel"
 PRIORITY = "optional"
 LICENSE = "GPL QPL"
 MAINTAINER = "Michael 'Mickey' Lauer <mickey@Vanille.de>"
-PR = "r1"
+PR = "r2"
 
 SRC_URI = "ftp://ftp.trolltech.com/pub/qt/source/qt-embedded-${PV}-free.tar.gz \
            file://fix-makefile.patch;patch=1 \
            file://gcc3_4.patch;patch=1" \
            file://gcc4.patch;patch=1 \
-           file://gcc4_1.patch;patch=1"
+           file://gcc4_1.patch;patch=1 \
+           file://64bit-cleanup.patch;patch=1"
 S = "${WORKDIR}/qt-${PV}"
 
 inherit native qmake-base
diff --git a/packages/uicmoc/uicmoc3-native-3.3.5/64bit-cleanup.patch b/packages/uicmoc/uicmoc3-native-3.3.5/64bit-cleanup.patch
new file mode 100644 (file)
index 0000000..1783680
--- /dev/null
@@ -0,0 +1,147 @@
+--- qt-embedded-free-3.3.5/src/embedded/qgfxlinuxfb_qws.cpp~64bit      2005-12-14 15:51:23.000000000 +0000
++++ qt-embedded-free-3.3.5/src/embedded/qgfxlinuxfb_qws.cpp    2005-12-14 15:52:29.000000000 +0000
+@@ -176,7 +176,7 @@
+                                MAP_SHARED, fd, 0);
+     data += dataoffset;
+-    if ((int)data == -1) {
++    if ((intptr_t)data == -1) {
+       perror("mapping /dev/fb0");
+       qWarning("Error: failed to map framebuffer device to memory.");
+       return FALSE;
+@@ -737,7 +737,7 @@
+     psize += 8;     // for alignment
+     psize &= ~0x7;  // align
+-    unsigned int pos=(unsigned int)data;
++    uintptr_t pos=(uintptr_t)data;
+     pos += psize;
+     entryp = ((int *)pos);
+     lowest = ((unsigned int *)pos)+1;
+--- qt-embedded-free-3.3.5/src/kernel/qsharedmemory_p.cpp~64bit        2005-12-14 15:34:43.000000000 +0000
++++ qt-embedded-free-3.3.5/src/kernel/qsharedmemory_p.cpp      2005-12-14 15:35:26.000000000 +0000
+@@ -31,6 +31,7 @@
+ **********************************************************************/
+ #include "qsharedmemory_p.h"
++#include <stdint.h>
+ #if !defined(QT_QWS_NO_SHM)
+@@ -132,7 +133,7 @@
+     shmId = shmget (key, shmSize, 0);
+   shmBase = shmat (shmId, 0, 0);
+-  if ((int) shmBase == -1 || shmBase == 0)
++  if ((intptr_t) shmBase == -1 || shmBase == 0)
+     return FALSE;
+   else
+     return TRUE;
+--- qt-embedded-free-3.3.5/src/kernel/qapplication_qws.cpp~64bit       2005-12-14 15:27:14.000000000 +0000
++++ qt-embedded-free-3.3.5/src/kernel/qapplication_qws.cpp     2005-12-14 15:28:37.000000000 +0000
+@@ -107,6 +107,7 @@
+ #include <locale.h>
+ #include <errno.h>
+ #include <sys/time.h>
++#include <stdint.h>
+ #if defined(Q_OS_QNX)
+ #include <sys/select.h>
+@@ -1879,7 +1880,7 @@
+       w = widgetAt(*qt_last_x, *qt_last_y, FALSE);
+     if ( !w )
+       w = desktop();
+-    QPaintDevice::qwsDisplay()->selectCursor(w, (int)app_cursor->handle());
++    QPaintDevice::qwsDisplay()->selectCursor(w, (intptr_t)app_cursor->handle());
+ }
+ void QApplication::restoreOverrideCursor()
+@@ -1898,11 +1899,11 @@
+       cursorStack = 0;
+       qws_overrideCursor = FALSE;
+       if ( w->testWState(WState_OwnCursor) )
+-          QPaintDevice::qwsDisplay()->selectCursor(w, (int)w->cursor().handle());
++          QPaintDevice::qwsDisplay()->selectCursor(w, (intptr_t)w->cursor().handle());
+       else
+           QPaintDevice::qwsDisplay()->selectCursor(w, ArrowCursor);
+     } else {
+-      QPaintDevice::qwsDisplay()->selectCursor(w, (int)app_cursor->handle());
++      QPaintDevice::qwsDisplay()->selectCursor(w, (intptr_t)app_cursor->handle());
+     }
+ }
+ #endif// QT_NO_CURSOR
+@@ -2130,7 +2131,7 @@
+                   }
+                   if ( !qws_overrideCursor ) {
+                       if (curs)
+-                          QPaintDevice::qwsDisplay()->selectCursor(widget, (int)curs->handle());
++                          QPaintDevice::qwsDisplay()->selectCursor(widget, (intptr_t)curs->handle());
+                       else
+                           QPaintDevice::qwsDisplay()->selectCursor(widget, ArrowCursor);
+                   }
+--- qt-embedded-free-3.3.5/src/kernel/qfont_qws.cpp~64bit      2005-12-14 15:29:17.000000000 +0000
++++ qt-embedded-free-3.3.5/src/kernel/qfont_qws.cpp    2005-12-14 15:29:54.000000000 +0000
+@@ -49,6 +49,7 @@
+ #include "qgfx_qws.h"
+ #include "qtextengine_p.h"
+ #include "qfontengine_p.h"
++#include <stdint.h>
+ QFont::Script QFontPrivate::defaultScript = QFont::UnknownScript;
+@@ -133,7 +134,7 @@
+       req.pointSize = req.pixelSize*10;
+     if ( ! engineData ) {
+-      QFontCache::Key key( req, QFont::NoScript, (int)paintdevice );
++      QFontCache::Key key( req, QFont::NoScript, (intptr_t)paintdevice );
+       // look for the requested font in the engine data cache
+       engineData = QFontCache::instance->findEngineData( key );
+--- qt-embedded-free-3.3.5/src/kernel/qwsregionmanager_qws.cpp~64bit   2005-12-14 15:32:12.000000000 +0000
++++ qt-embedded-free-3.3.5/src/kernel/qwsregionmanager_qws.cpp 2005-12-14 15:32:52.000000000 +0000
+@@ -32,6 +32,7 @@
+ #include "qwsdisplay_qws.h"
+ #include "qwsregionmanager_qws.h"
+ #include <stdlib.h>
++#include <stdint.h>
+ #ifndef QT_NO_QWS_MULTIPROCESS
+ #include <sys/types.h>
+@@ -288,7 +289,7 @@
+           data = (unsigned char *)shmat( shmId, 0, 0 );
+     }
+-    return ( shmId != -1 && (int)data != -1 );
++    return ( shmId != -1 && (intptr_t)data != -1 );
+ #else
+       int dataSize = sizeof(QWSRegionHeader)                // header
+                   + sizeof(QWSRegionIndex) * QT_MAX_REGIONS // + index
+--- qt-embedded-free-3.3.5/src/kernel/qwidget_qws.cpp~64bit    2005-12-14 15:30:36.000000000 +0000
++++ qt-embedded-free-3.3.5/src/kernel/qwidget_qws.cpp  2005-12-14 15:31:37.000000000 +0000
+@@ -53,6 +53,7 @@
+ #include "qwsmanager_qws.h"
+ #include "qwsregionmanager_qws.h"
+ #include "qinputcontext_p.h"
++#include <stdint.h>
+ void qt_insert_sip( QWidget*, int, int );     // defined in qapplication_x11.cpp
+ int  qt_sip_count( QWidget* );                        // --- "" ---
+@@ -631,7 +632,7 @@
+       qt_mouseGrb->releaseMouse();
+     qwsDisplay()->grabMouse(this,TRUE);
+-    qwsDisplay()->selectCursor(this, (unsigned int)cursor.handle());
++    qwsDisplay()->selectCursor(this, (uintptr_t)cursor.handle());
+     qt_mouseGrb = this;
+     qt_pressGrab = 0;
+ }
+@@ -1845,7 +1846,7 @@
+       QSize s( qt_screen->width(), qt_screen->height() );
+       QPoint pos = qt_screen->mapToDevice(QPoint(*qt_last_x, *qt_last_y), s);
+       if ( r.contains(pos) )
+-          qwsDisplay()->selectCursor((QWidget*)this, (unsigned int)cursor().handle());
++          qwsDisplay()->selectCursor((QWidget*)this, (uintptr_t)cursor().handle());
+     }
+ }
+ #endif
index 6354377..142b399 100644 (file)
@@ -1,11 +1,14 @@
 DESCRIPTION = "User Interface Generator and Meta Object Compiler (moc) for Qt(E) 3.x"
+HOMEPAGE = "http://www.trolltech.com"
 SECTION = "devel"
 PRIORITY = "optional"
+MAINTAINER = "Michael 'Mickey' Lauer <mickey@Vanille.de>"
 LICENSE = "GPL QPL"
-PR = "r1"
+PR = "r2"
 
 SRC_URI = "ftp://ftp.trolltech.com/qt/source/qt-embedded-free-${PV}.tar.bz2 \
-          file://no-examples.patch;patch=1"
+           file://no-examples.patch;patch=1 \
+           file://64bit-cleanup.patch;patch=1"
 
 S = "${WORKDIR}/qt-embedded-free-${PV}"