Bug 176693 - kde4bindings fails to build from source on architectures where qreal != double
Summary: kde4bindings fails to build from source on architectures where qreal != double
Status: UNCONFIRMED
Alias: None
Product: bindings
Classification: Unclassified
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal (vote)
Target Milestone: ---
Assignee: kde-bindings
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-12-02 12:14 UTC by Michael Casadevall
Modified: 2012-08-16 10:28 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Checks for PyQt_qreal_double ... (831 bytes, patch)
2008-12-22 11:04 UTC, Michael Casadevall
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Casadevall 2008-12-02 12:14:58 UTC
Version:            (using Devel)
Compiler:          GCC 4.3 ARM architecture
OS:                Linux
Installed from:    Compiled sources

On architectures where Qt doesn't define qreal to double but a float (that is, architectures lacking a FPU, the ARM architecture, and Windows CE), parts of KDE fail to build from source, such as kde4bindings due to this mismatch since a few APIs return QList <double> vs QList <qreal>, which then fail when other code (such as kde4bindings), tries to QList<qreal> = *function call that returns QList <double>*

majorTickMarks() and minorTickMarks() are two functions (from kplotaxis.h), that currently have this issue, but their may be others that also do. Although the obvious fix would be to change the QList<doubles> to QList<qreal>, this may be the wrong way to fix it (there are cases where you want to return doubles for instance). I"ll provide a patch once the proper fix is determined.
Comment 1 Jordi Polo 2008-12-02 12:41:00 UTC
moved to bindings
Comment 2 Michael Casadevall 2008-12-02 12:50:26 UTC
I'm not moving this bug to bindings is appropriate; this is an issue with kdelibs specifically, it just happens bindings has code that triggers the build failure. kplotaxis is a QWidget derived widget; the bug is occurring because its using double directly vs. qreal. 

Alternatively, if it is a binding specific problem, then the bug is in sip specifically since that's what generates the code, but as far as I can tell, placing data elements from KPlotAxis into a QList<qreal> is acceptable (aka, sip is generated proper code, it just happens that as long as kplotaxis is using double specifically vs. qreal, it will break on architectures that qreal != double).
Comment 3 Michael Casadevall 2008-12-22 11:04:55 UTC
Created attachment 29543 [details]
Checks for PyQt_qreal_double ...

The main issue was caused by PyQt_qreal_double not being passed to sip during the generation of python-kde4 C files. The following patch fixes that, but the cmake code should probably be changed to use all the options set forth by SIP (unless this is done like this for a reason).