Bug#682361: supercollider FTFBS on amel and armhf qreal VS double issues

peter green plugwash at p10link.net
Sun Jul 22 01:38:51 UTC 2012


Package: supercollider
Version: 1:3.5.3~repack-2
severity: serious
tags: patch

Your package failed to build on armel and armhf 

[ 78%] Building CXX object lang/CMakeFiles/libsclang.dir/__/QtCollider/widgets/QcMultiSlider.cpp.o
cd "/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/obj-arm-linux-gnueabihf/lang" && /usr/bin/g++   -DSC_LINUX -DSC_DATA_DIR=\"/usr/share/SuperCollider\" -DYYSTACK_USE_ALLOCA -DHAVE_LID -DHAVE_WII -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DSC_QT -DQT_COLLIDER_EXPORTING -DQT_NO_KEYWORDS -DBUILDING_SUPERCOLLIDER -DHAVE_READLINE -DHAVE_ALSA=1 -DQT_NO_DEBUG -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -D_FORTIFY_SOURCE=2 -O2 -g -I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/include/common" -I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/include/lang" -I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/include/plugin_interface" -I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/include/server" -I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/external_libraries/boost_lockfree" -I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/external_libraries/threadpool" -I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/external_libraries/yaml-cpp-0.3.0/include" -I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/external_libraries/TLSF-2.4.6/src" -I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/lang/LangSource/Bison" -I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/SCDoc" -I/usr/include/qt4 -I/usr/include/qt4/QtWebKit -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtCore -I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/include/QtCollider" -I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/lang/X11_INCLUDE_DIR"    -fschedule-insns2 -fomit-frame-pointer -Wreturn-type -fvisibility=hidden -pthread -o CMakeFiles/libsclang.dir/__/QtCollider/widgets/QcMultiSlider.cpp.o -c "/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp"
/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp: In member function 'virtual void QcMultiSlider::mousePressEvent(QMouseEvent*)':
/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp:187:47: error: no matching function for call to 'QcMultiSlider::valueRect(int, double&)'
/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp:187:47: note: candidate is:
/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp:152:7: note: QRect QcMultiSlider::valueRect(int, qreal&)
/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp:152:7: note:   no known conversion for argument 2 from 'double' to 'qreal& {aka float&}'
/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp: In member function 'virtual void QcMultiSlider::mouseMoveEvent(QMouseEvent*)':
/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp:231:45: error: no matching function for call to 'QcMultiSlider::valueRect(int, double&)'
/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp:231:45: note: candidate is:
/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp:152:7: note: QRect QcMultiSlider::valueRect(int, qreal&)
/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp:152:7: note:   no known conversion for argument 2 from 'double' to 'qreal& {aka float&}'
make[3]: *** [lang/CMakeFiles/libsclang.dir/__/QtCollider/widgets/QcMultiSlider.cpp.o] Error 1


On most architectures qreal is defined as double but on arm architectures
it is defined as float. Assignments between qreal and double are ok because
assignments between float and double are ok but there can be issues with
pointers, reference parameters, templates and overloaded functions if proper 
distinctions are not made. In this particular case the issue is a reference 
parameter.

The fix is simple enough, just a couple of variable definitions that need
changing.

I've updated arm-qreal-is-float.patch to fix this issue.



-------------- next part --------------
A non-text attachment was scrubbed...
Name: arm-qreal-is-float.patch
Type: text/x-diff
Size: 1935 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-multimedia-maintainers/attachments/20120722/466ff185/attachment.patch>


More information about the pkg-multimedia-maintainers mailing list