Bug#602395: elmerfem: FTBFS on armel: private class and invalid cast

Sune Vuorela sune at debian.org
Thu Nov 4 13:57:28 UTC 2010


On Thursday 04 November 2010 14:33:26 you wrote:
> Package: src:elmerfem
> Severity: important
> Version: 5.5.0.svn.4716.dfsg-2
> 
> Elmer is failing to build on armel:
> 
> g++ -c -pipe -O2 -D_REENTRANT -w -DEG_QWT -DEG_VTK -DEG_MATC -DEG_OCC
> -DEG_PYTHONQT -DHAVE_CONFIG_H -DHAVE_IOSTREAM -DHAVE_FSTREAM
> -DHAVE_LIMITS_H -DQT_NO_DEBUG -DQT_SCRIPT_LIB -DQT_XML_LIB -DQT_OPENGL_LIB
> -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++
> -I. -I/usr/include/qt4/QtUiTools -I/usr/include/qt4/QtCore
> -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL
> -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtScript -I/usr/include/qt4
> -I. -I../netgen/libsrc/interface -I/usr/include/qwt-qt4
> -I/usr/include/vtk-5.4 -I/usr/include/opencascade -I/usr/include/python2.6
> -I../PythonQt/src -I/usr/X11R6/include -Itmp -Itmp -o tmp/helpers.o
> src/helpers.cpp /usr/include/qt4/QtGui/qmatrix4x4.h: In member function
> 'void Helpers::invertMatrix(const double*, double*)':
> /usr/include/qt4/QtGui/qmatrix4x4.h:202: error:
> 'QMatrix4x4::QMatrix4x4(int)' is private src/helpers.cpp:95: error: within
> this context
> src/helpers.cpp:95: error: invalid conversion from 'const double*' to 'int'
> src/helpers.cpp:95: error:   initializing argument 1 of
> 'QMatrix4x4::QMatrix4x4(int)' make[2]: *** [tmp/helpers.o] Error 1
> make[2]: Leaving directory
> `/build/buildd-elmerfem_5.5.0.svn.4716.dfsg-2-armel-bfQj4O/elmerfem-5.5.0.
> svn.4716.dfsg/ElmerGUI/Application'

Hi

apparantly elmerfem does the following:

void Helpers::invertMatrix(const double *a, double *inva)                                                                                                                                
{                                                                                                                                                                                        
  QMatrix4x4 matrix(a);
....

and QMatrix4x4 has a constructor taking a qreal pointer argument. qreal is a 
typedef that on some platforms (most notable arm*) is a typedef to float, on 
most platforms it is a typedef to double.

I don't know elmerfem at all, so I don't know what the good fix would be, but 
maybe making the matrix helpers use qreals instead of doubles.  or something.

/Sune





More information about the debian-science-maintainers mailing list