trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: May 2011

Re: [trinity-devel] poppler-qt3 NEED HELP - Anybody got it building with current poppler-qt & gcc 4.6?

From: /dev/ammo42 <mickeytintincolle@...>
Date: Tue, 10 May 2011 19:07:05 +0200
Le Tue, 10 May 2011 10:46:57 -0500,
"David C. Rankin" <drankinatty@...> 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/gcc46.diff
> >>
> >>
> >>
> >>
> >>
> >
> > 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-using-etch-libraries-td11774639.html
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 :)
> 
> 
>