Le Tue, 10 May 2011 10:46:57 -0500, "David C. Rankin" drankinatty@suddenlinkmail.com a écrit :
On 05/10/2011 09:05 AM, David C. Rankin wrote:
On 05/10/2011 08:40 AM, David C. Rankin wrote:
On 05/09/2011 07:27 PM, Baho Utot wrote:
Here is the correct patch...
--- qt-x11-free-3.3.8b/src/tools/qmap.h~ 2008-01-15 19:09:13.000000000 +0000 +++ qt-x11-free-3.3.8b/src/tools/qmap.h 2011-04-11 00:16:04.000000000 +0100 @@ -50,6 +50,7 @@ #endif // QT_H
#ifndef QT_NO_STL +#include <cstddef> #include <iterator> #include <map> #endif --- qt-x11-free-3.3.8b/src/tools/qvaluelist.h~ 2008-01-15 19:09:13.000000000 +0000 +++ qt-x11-free-3.3.8b/src/tools/qvaluelist.h 2011-04-11 00:16:49.000000000 +0100 @@ -48,6 +48,7 @@ #endif // QT_H
#ifndef QT_NO_STL +#include <cstddef> #include <iterator> #include <list> #endif
I am rebuilding qt3 with the correct patch as we speak
Baho,
We need to blend your patch with this one:
http://svn.trinitydesktop.org/svn/trinity-packaging/arch/master/trinity-qt3/...
Here is what I come up with (do you see anything wrong with doing it this way?):
diff -Naur --label qt-x11-free-3.3.8b qt-x11-free-3.3.8b qt-x11-free-3.3.8b/src/tools/qmap.h --- qt-x11-free-3.3.8b +++ qt-x11-free-3.3.8b/src/tools/qmap.h 2011-05-10 08:47:27.000000000 -0500 @@ -50,6 +50,7 @@ #endif // QT_H
#ifndef QT_NO_STL +#include <cstddef> #include <iterator> #include <map> #endif @@ -107,7 +108,7 @@ #endif typedef T value_type; #ifndef QT_NO_STL
- typedef ptrdiff_t difference_type;
- typedef std::ptrdiff_t difference_type;
#else typedef int difference_type; #endif @@ -223,7 +224,7 @@ #endif typedef T value_type; #ifndef QT_NO_STL
- typedef ptrdiff_t difference_type;
- typedef std::ptrdiff_t difference_type;
#else typedef int difference_type; #endif @@ -604,7 +605,7 @@ typedef value_type& reference; typedef const value_type& const_reference; #ifndef QT_NO_STL
- typedef ptrdiff_t difference_type;
- typedef std::ptrdiff_t difference_type;
#else typedef int difference_type; #endif diff -Naur --label qt-x11-free-3.3.8b qt-x11-free-3.3.8b qt-x11-free-3.3.8b/src/tools/qvaluelist.h --- qt-x11-free-3.3.8b +++ qt-x11-free-3.3.8b/src/tools/qvaluelist.h 2011-05-10 08:46:46.000000000 -0500 @@ -50,6 +50,7 @@ #ifndef QT_NO_STL #include <iterator> #include <list> +#include <cstddef> #endif
//#define QT_CHECK_VALUELIST_RANGE diff -Naur --label qt-x11-free-3.3.8b qt-x11-free-3.3.8b qt-x11-free-3.3.8b/src/tools/qvaluevector.h --- qt-x11-free-3.3.8b +++ qt-x11-free-3.3.8b/src/tools/qvaluevector.h 2011-05-10 08:46:46.000000000 -0500 @@ -244,7 +244,7 @@ typedef const value_type& const_reference; typedef size_t size_type; #ifndef QT_NO_STL
- typedef ptrdiff_t difference_type;
- typedef std::ptrdiff_t difference_type;
#else typedef int difference_type; #endif
UUGH! I killed Qt3.... After adding the qmap.h patch I get a Qt3 symbol lookup error I don't even recognize:
It has a smell of ABI break: does removing Trinity libraries and rebuilding all packages help ? BTW, the header patch doesn't seem to change the ABI : =========== dd@darkstar:/tmp$ g++ -c -g test.cpp dd@darkstar:/tmp$ g++ -c -g test2.cpp dd@darkstar:/tmp$ nm test.o 0000000000000079 t _GLOBAL__I_main 0000000000000039 t _Z41__static_initialization_and_destruction_0ii U _ZNSolsEl U _ZNSt8ios_base4InitC1Ev U _ZNSt8ios_base4InitD1Ev U _ZSt4cout 0000000000000000 b _ZStL8__ioinit U __cxa_atexit U __dso_handle 0000000000000000 T main dd@darkstar:/tmp$ nm test2.o 0000000000000079 t _GLOBAL__I_main 0000000000000039 t _Z41__static_initialization_and_destruction_0ii U _ZNSolsEl U _ZNSt8ios_base4InitC1Ev U _ZNSt8ios_base4InitD1Ev U _ZSt4cout 0000000000000000 b _ZStL8__ioinit U __cxa_atexit U __dso_handle 0000000000000000 T main dd@darkstar:/tmp$ cat test.cpp #include <cstddef> #include <iostream> int main() { int a,b; std::ptrdiff_t c=&b-&a; std::cout << c; return 0; } dd@darkstar:/tmp$ cat test2.cpp //#include <cstddef> #include <iostream> int main() { int a,b; ptrdiff_t c=&b-&a; std::cout << c; return 0; } ============ I googled the mangled name and obtained few results: http://old.nabble.com/Bug-434590%3A-twinkle%3A-Crashes-on-every-call-when-us... http://lists.altlinux.org/pipermail/devel/2010-March/181000.html (in Russian).
../../../include/qimage.h:61:61: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] /home/david/tblds/trinity-qt3/src/qt-x11-free-3.3.8b/bin/uic -L /home/david/tblds/trinity-qt3/src/qt-x11-free-3.3.8b/plugins listvieweditor.ui -i listvieweditor.h -o listvieweditor.cpp /home/david/tblds/trinity-qt3/src/qt-x11-free-3.3.8b/bin/uic: symbol lookup error: /opt/trinity/lib/libkdecore.so.4: undefined symbol: _ZN7KGlobal20deleteStaticDeletersEv make[4]: *** [listvieweditor.cpp] Error 127 make[4]: Leaving directory `/home/david/tblds/trinity-qt3/src/qt-x11-free-3.3.8b/tools/designer/designer' make[3]: *** [sub-designer] Error 2 make[3]: Leaving directory `/home/david/tblds/trinity-qt3/src/qt-x11-free-3.3.8b/tools/designer' make[2]: *** [sub-designer] Error 2 make[2]: Leaving directory `/home/david/tblds/trinity-qt3/src/qt-x11-free-3.3.8b/tools' make[1]: *** [sub-tools] Error 2 make[1]: Leaving directory `/home/david/tblds/trinity-qt3/src/qt-x11-free-3.3.8b' make: *** [init] Error 2 ==> ERROR: A failure occurred in build(). Aborting...
It has got to be the qmap.h patch, because I've been using the gcc46.diff without issue and all I did was ass the qmap.h <cstddef> include based on Baho's suggestion :)