Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / qt / 2011-10

Qt4 Binding V2.4 does not work on main Linux distros

11 messages · 4 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

zeljko
to Juha Manninen
Juha Manninen wrote
No, even V2.1 does not work with OpenSuse 11.4. With Kubuntu 11.10 it

Best thing would be to make rpms for various distros. Various ubuntus have libqt4pas as deb so I guess it should wotk.
My wild guess is that -mstackrealign isn't added.
What's exact problem with Suse ?
I haven't seen any problem with Fedora 11/12/13/14

zeljko
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/qt/attachments/20111029/1af27188/attachment.html>

Reply by email

Juha Manninen
to zeljko

2011/10/29 zeljko

Show quoted text 16 lines
** On Friday 28 of October 2011 19:33:11 Juha Manninen wrote: > No, even V2.1 does not work with OpenSuse 11.4. With Kubuntu 11.10 it Best thing would be to make rpms for various distros. Various ubuntus have libqt4pas as deb so I guess it should wotk. My wild guess is that -mstackrealign isn't added. What's exact problem with Suse ? I haven't seen any problem with Fedora 11/12/13/14

It causes Access violations. The output is like:

QPainter::end: Painter ended with 4 saved states
TApplication.HandleException Access violation

Ubuntu may have libqt4pas as a dependency for their repository version of lazarus. Should I install that first?
I have always loaded the binary version of libqt4pas from net. I don't bother compiling it myself because I got it working somehow now. I will concentrate on other things.

My idea was that the default binary download of libqt4pas should be changed so it works with the main distros (maybe by adding -mstackrealign ?)

Juha
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/qt/attachments/20111029/27c42f7d/attachment.html>

Reply by email

zeljko
to Juha Manninen
Juha Manninen wrote 20 lines
2011/10/29 zeljko > ** > > On Friday 28 of October 2011 19:33:11 Juha Manninen wrote: > > No, even V2.1 does not work with OpenSuse 11.4. With Kubuntu 11.10 it > > Best thing would be to make rpms for various distros. Various ubuntus > have libqt4pas as deb so I guess it should wotk. > > My wild guess is that -mstackrealign isn't added. > > What's exact problem with Suse ? > > I haven't seen any problem with Fedora 11/12/13/14 It causes Access violations. The output is like: QPainter::end: Painter ended with 4 saved states TApplication.HandleException Access violation

Such errors means: compile bindings with -mstackrealign.

My idea was that the default binary download of libqt4pas should be changed so it works with the main distros (maybe by adding -mstackrealign ?)

I think that you have binaries on Den's site which are compiled with - mstackrealign.
BUT there could be another problem -mstackrealign is relatively "fresh" thing so even compiling with -mstackrealign can produces crashes.

zeljko
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/qt/attachments/20111029/d7f998e0/attachment.html>

Reply by email

zeljko
to cobines
cobines wrote 8 lines
2011/10/29 Juha Manninen : > It causes Access violations. The output is like: > > QPainter::end: Painter ended with 4 saved states > TApplication.HandleException Access violation Have you tried with "-style plastique" or similar? Using qtcurve based styles currently may cause access violations too.

I don't have problems with any style under Fedora 14 (qt-4.7.4). From my expirience Suse is known to be buggy and unmaintained with some styes. zeljko
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/qt/attachments/20111030/302893f8/attachment.html>

Reply by email

Juha Manninen
to zeljko

I get the access violation right away also with a new OpenSuse 12.1:

...
TFPCTargetConfigCache.Update: has changed
TApplication.HandleException Access violation
Stack trace:
$B5220C2C
QPaintDevice: Cannot destroy paint device that is being painted QPaintDevice: Cannot destroy paint device that is being painted [TMainIDE.Destroy] A
[TMainIDE.Destroy] B -> inherited Destroy... TMainIDE [TMainIDE.Destroy] END
[FORMS.PP] ExceptionOccurred
Sender=EAccessViolation
Exception=Access violation
Stack trace:
$B5220C2C
TApplication.HandleException: there was another exception during showing the first exception
Stack trace:
$B5220C2C

Now, I think the binaries for qt4pas-v2.4 are wrong somehow. v2.1 still works. See:

juha at linux-7r9g:~/pack> ls -l bin*
-rw-r--r-- 1 juha users 948741 marra 5 17:12 bin-qt4pas-V2.1_Qt4.7.X.tar.gz -rw-r--r-- 1 juha users 778996 marra 5 17:12 bin-qt4pas-V2.4_Qt4.5.3.tar.gz

bin-qt4pas-V2.1_Qt4.5.3:
total 4180
-rw-r--r-- 1 juha users 959 helmi 19 2010 COPYING.TXT lrwxrwxrwx 1 juha users 18 marra 29 2010 libQt4Pas.so -> libQt4Pas.so.5.2.1
lrwxrwxrwx 1 juha users 18 marra 29 2010 libQt4Pas.so.5 -> libQt4Pas.so.5.2.1
lrwxrwxrwx 1 juha users 18 marra 29 2010 libQt4Pas.so.5.2 -> libQt4Pas.so.5.2.1
-rwxr-xr-x 1 juha users 2992924 marra 29 2010 libQt4Pas.so.5.2.1 -rw-r--r-- 1 juha users 1276138 helmi 19 2010 qt4.pas -rw-r--r-- 1 juha users 784 helmi 19 2010 README.TXT

bin-qt4pas-V2.4_Qt4.5.3:
total 3464
-rw-r--r-- 1 juha users 8669 hein? 7 17:55 COPYING.TXT lrwxrwxrwx 1 juha users 18 hein? 7 17:55 libQt4Pas.so -> libQt4Pas.so.5.2.4
lrwxrwxrwx 1 juha users 18 hein? 7 17:55 libQt4Pas.so.5 -> libQt4Pas.so.5.2.4
lrwxrwxrwx 1 juha users 18 hein? 7 17:55 libQt4Pas.so.5.2 -> libQt4Pas.so.5.2.4
-rwxr-xr-x 1 juha users 2238928 hein? 7 17:55
libQt4Pas.so.5.2.4

-rw-r--r-- 1 juha users 1289721 hein? 7 17:55
qt4.pas

-rw-r--r-- 1 juha users 962 hein? 7 17:55
README.TXT

---

Note the mismatch with "Qt4.5.3" and "Qt4.7.X" between the package and directory names.
Also note that the new v2.4 binary is much smaller than the old v2.1. It can't be right. The packages were downloaded today from the "official" site.

Juha
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/qt/attachments/20111105/0a262d02/attachment.html>

Reply by email

cobines
to Juha Manninen

I had a person report crashes with v2.4 bindings and he built those bindings himself from source. From the log he supplied it was clear it built with -mstackrealign. He didn't install debugging info for libQt so I don't know if it was SSE2 related. What did work for him was changing his style to plastique. I don't know, maybe libQT or libqtcurve should also be built with -mstackrealign.

Juha, you should get a stack trace and see exactly where it crashes. If you don't trust the binary build bindings from source.

cobines

Reply by email

Juha Manninen
to cobines

2011/11/5 cobines

What did work for him was changing his style to plastique.

Amazing, switching to Plastique theme really helped! I remember there were problems with Oxygen also earlier but they were not so serious. The same thing happened in Kubuntu. v2.4 started to work also there with Plastique.
The question remains, why v2.1 worked on Kubuntu.

Thanks

Juha
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/qt/attachments/20111105/5b0d962c/attachment.html>

Reply by email

Den Jean
to Juha Manninen: I get the access violation right away also with a new OpenSuse 12.1: ...…
Juha Manninen wrote
Note the mismatch with "Qt4.5.3" and "Qt4.7.X" between the package and directory names.

Do not worry about that, it is not interesting to explain.

Note that Qt documents which Qt versions are backwards binary compatible. So Qt 4.5 till 4.7 are backwards binary compatible. So if I create a binding for Qt 4.5, you can use with Qt till 4.7.

If I would create a binding against Qt 4.7, you will not be able to use it with Qt 4.5, due to presence of methods in the binding library that will not be found in Qt 4.5

Since Qt 4.7 there is an new problem, namely that most distro Qt 4.7 binaries are compiled with SSE and require -mstackrealign and the Qt 4.5 binaries are not. If Qt is compiled with SSE you need to use a binding compiled with -mstackrealign. This compiler options is only available on recent compilers.

Another problem is some upstream acknowledged Qt theme problems, but the patches took some time to trickle down into the distros. Just avoid theme oxygen, the worst offender. Theme plastique is old and very stable.

Reply by email