Bug 43139 - [GCC 4.6.2] Compile Error on framework/source/accelerators/acceleratorcache.cxx
Summary: [GCC 4.6.2] Compile Error on framework/source/accelerators/acceleratorcache.cxx
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Installation (show other bugs)
Version:
(earliest affected)
3.4.4 release
Hardware: All Linux (All)
: highest critical
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-11-21 06:47 UTC by r.andersen
Modified: 2011-12-21 04:47 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments
const_cast required ? (2.16 KB, patch)
2011-12-14 08:58 UTC, Rafael da Veiga Cabral
Details
complete fix porpouse - tested also with gcc 4.6.1 (3.84 KB, patch)
2011-12-15 09:22 UTC, Rafael da Veiga Cabral
Details
Fix the filtercachedata.hxx error (1.39 KB, patch)
2011-12-17 11:01 UTC, stephane
Details
fix gcc 4.6.2 (7.24 KB, patch)
2011-12-19 04:12 UTC, Rafael da Veiga Cabral
Details
one-liner probable fix (642 bytes, patch)
2011-12-21 03:29 UTC, Caolán McNamara
Details

Note You need to log in before you can comment on or make changes to this bug.
Description r.andersen 2011-11-21 06:47:27 UTC
Using gcc4.6.2 on Gentoo, I get this compile error:

[ build CXX ] framework/source/classes/droptargetlistener
/var/tmp/portage/app-office/libreoffice-3.4.4.2-r1/work/libreoffice-bootstrap-3.4.4.2/framework/source/accelerators/acceleratorcache.cxx: In copy constructor 'framework::AcceleratorCache::AcceleratorCache(const framework::AcceleratorCache&)':
/var/tmp/portage/app-office/libreoffice-3.4.4.2-r1/work/libreoffice-bootstrap-3.4.4.2/framework/source/accelerators/acceleratorcache.cxx:64:29: error: no match for 'operator=' in '((framework::AcceleratorCache*)this)->framework::AcceleratorCache::m_lCommand2Keys = rCopy.framework::AcceleratorCache::m_lCommand2Keys'
/var/tmp/portage/app-office/libreoffice-3.4.4.2-r1/work/libreoffice-bootstrap-3.4.4.2/framework/source/accelerators/acceleratorcache.cxx:64:29: note: candidate is:
/var/tmp/portage/app-office/libreoffice-3.4.4.2-r1/work/libreoffice-bootstrap-3.4.4.2/framework/inc/stdtypes.h:170:7: note: framework::BaseHash<comphelper::SequenceAsVector<com::sun::star::awt::KeyEvent> >& framework::BaseHash<comphelper::SequenceAsVector<com::sun::star::awt::KeyEvent> >::operator=(framework::BaseHash<comphelper::SequenceAsVector<com::sun::star::awt::KeyEvent> >&)
/var/tmp/portage/app-office/libreoffice-3.4.4.2-r1/work/libreoffice-bootstrap-3.4.4.2/framework/inc/stdtypes.h:170:7: note:   no known conversion for argument 1 from 'const TCommand2Keys {aka const framework::BaseHash<comphelper::SequenceAsVector<com::sun::star::awt::KeyEvent> >}' to 'framework::BaseHash<comphelper::SequenceAsVector<com::sun::star::awt::KeyEvent> >&'
/var/tmp/portage/app-office/libreoffice-3.4.4.2-r1/work/libreoffice-bootstrap-3.4.4.2/framework/source/accelerators/acceleratorcache.cxx: In member function 'virtual void framework::AcceleratorCache::takeOver(const framework::AcceleratorCache&)':
/var/tmp/portage/app-office/libreoffice-3.4.4.2-r1/work/libreoffice-bootstrap-3.4.4.2/framework/source/accelerators/acceleratorcache.cxx:81:29: error: no match for 'operator=' in '((framework::AcceleratorCache*)this)->framework::AcceleratorCache::m_lCommand2Keys = rCopy.framework::AcceleratorCache::m_lCommand2Keys'
/var/tmp/portage/app-office/libreoffice-3.4.4.2-r1/work/libreoffice-bootstrap-3.4.4.2/framework/source/accelerators/acceleratorcache.cxx:81:29: note: candidate is:
/var/tmp/portage/app-office/libreoffice-3.4.4.2-r1/work/libreoffice-bootstrap-3.4.4.2/framework/inc/stdtypes.h:170:7: note: framework::BaseHash<comphelper::SequenceAsVector<com::sun::star::awt::KeyEvent> >& framework::BaseHash<comphelper::SequenceAsVector<com::sun::star::awt::KeyEvent> >::operator=(framework::BaseHash<comphelper::SequenceAsVector<com::sun::star::awt::KeyEvent> >&)
/var/tmp/portage/app-office/libreoffice-3.4.4.2-r1/work/libreoffice-bootstrap-3.4.4.2/framework/inc/stdtypes.h:170:7: note:   no known conversion for argument 1 from 'const TCommand2Keys {aka const framework::BaseHash<comphelper::SequenceAsVector<com::sun::star::awt::KeyEvent> >}' to 'framework::BaseHash<comphelper::SequenceAsVector<com::sun::star::awt::KeyEvent> >&'
make[1]: *** [/var/tmp/portage/app-office/libreoffice-3.4.4.2-r1/work/libreoffice-bootstrap-3.4.4.2/solver/340/unxlngx6.pro/workdir/CxxObject/framework/source/accelerators/acceleratorcache.o] Error 1
make[1]: *** Waiting for unfinished jobs....
dmake:  Error code 2, while making 'all'

(...)

-----------------------------------------------------------------------
        Oh dear - something failed during the build - sorry !
  For more help with debugging build errors, please see the section in:
            http://wiki.documentfoundation.org/Development

  internal build errors:

ERROR: error 65280 occurred while making /var/tmp/portage/app-office/libreoffice-3.4.4.2-r1/work/libreoffice-bootstrap-3.4.4.2/padmin/prj
ERROR: error 65280 occurred while making /var/tmp/portage/app-office/libreoffice-3.4.4.2-r1/work/libreoffice-bootstrap-3.4.4.2/framework/prj

 it seems you are using a threaded build, which means that the
 actual compile error is probably hidden far above, and could be
 inside any of these other modules:
     framework
 please re-run build inside each one to isolate the problem.
-----------------------------------------------------------------------

Unfortunately, I don't know enough about this to provide a patch on my own :-(

Thanks for your help!
Comment 1 r.andersen 2011-11-21 07:36:27 UTC
Sorry, I forgot the first one, here it is:

[ build CHK ] loaded modules: padmin
/var/tmp/portage/app-office/libreoffice-3.4.4.2-r1/work/libreoffice-bootstrap-3.4.4.2/padmin/source/prtsetup.cxx: In function 'int Sal_SetupPrinterDriver(psp::PrinterInfo&)':
/var/tmp/portage/app-office/libreoffice-3.4.4.2-r1/work/libreoffice-bootstrap-3.4.4.2/padmin/source/prtsetup.cxx:816:41: error: no match for 'operator=' in 'rJobData = aDialog.padmin::RTSDialog::getSetup()'
/var/tmp/portage/app-office/libreoffice-3.4.4.2-r1/work/libreoffice-bootstrap-3.4.4.2/padmin/source/prtsetup.cxx:816:41: note: candidate is:
/var/tmp/portage/app-office/libreoffice-3.4.4.2-r1/work/libreoffice-bootstrap-3.4.4.2/solver/340/unxlngx6.pro/inc/vcl/printerinfomanager.hxx:48:8: note: psp::PrinterInfo& psp::PrinterInfo::operator=(psp::PrinterInfo&)
/var/tmp/portage/app-office/libreoffice-3.4.4.2-r1/work/libreoffice-bootstrap-3.4.4.2/solver/340/unxlngx6.pro/inc/vcl/printerinfomanager.hxx:48:8: note:   no known conversion for argument 1 from 'const psp::PrinterInfo' to 'psp::PrinterInfo&'
make[1]: *** [/var/tmp/portage/app-office/libreoffice-3.4.4.2-r1/work/libreoffice-bootstrap-3.4.4.2/solver/340/unxlngx6.pro/workdir/CxxObject/padmin/source/prtsetup.o] Error 1
dmake:  Error code 2, while making 'all'
Entering /var/tmp/portage/app-office/libreoffice-3.4.4.2-r1/work/libreoffice-bootstrap-3.4.4.2/editeng/prj
Comment 2 macau 2011-12-06 00:13:43 UTC
I confirm thise bug on tegra2 board. same error
Comment 3 Rafael da Veiga Cabral 2011-12-14 08:58:16 UTC
Created attachment 54425 [details]
const_cast required ?

Uses const_cast to solve mostly issues and also notethe loadenv.cxx and as it is a workarround should be better means to solve that.
Comment 4 Rafael da Veiga Cabral 2011-12-14 09:04:40 UTC
Next issue after using the proposed patch. The problem seems not to be side effect of the fix.

mkdir -p /home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/solver/340/unxlngi6.pro/workdir/Dep/CxxObject/framework/source/loadenv/ && echo '/home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/solver/340/unxlngi6.pro/workdir/CxxObject/framework/source/loadenv/loadenv.o : $(gb_Helper_PHONY)' > /home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/solver/340/unxlngi6.pro/workdir/Dep/CxxObject/framework/source/loadenv/loadenv.d
[ build DEP ] LNK:Library/libfwkli.so
R=/home/cabral/libreoffice_cooker/svn/current/BUILD && S=$R/libreoffice-3.4.4 && O=$S/solver/340/unxlngi6.pro && W=$O/workdir &&  mkdir -p $W/Dep/LinkTarget/Library/ && RESPONSEFILE=/tmp/gbuild.TgMhrL && cat ${RESPONSEFILE} /dev/null | xargs -n 200 cat > $W/Dep/LinkTarget/Library/libfwkli.so.d && rm -f ${RESPONSEFILE}
[ build CXX ] framework/source/uiconfiguration/uiconfigurationmanager
R=/home/cabral/libreoffice_cooker/svn/current/BUILD && S=$R/libreoffice-3.4.4 && O=$S/solver/340/unxlngi6.pro && W=$O/workdir &&  mkdir -p $W/CxxObject/framework/source/uiconfiguration/ && mkdir -p $W/Dep/CxxObject/framework/source/uiconfiguration/ && g++ -DCPPU_ENV=gcc3 -DCUI -DENABLE_GRAPHITE -DENABLE_GTK -DENABLE_KDE4 -DENABLE_LAYOUT=0 -DENABLE_LAYOUT_EXPERIMENTAL=0 -DGCC -DGXX_INCLUDE_PATH=/usr/include/c++/4.6.2 -DHAVE_GCC_VISIBILITY_FEATURE -DLINUX -DNDEBUG -DOPTIMIZE -DOSL_DEBUG_LEVEL=0 -DPRODUCT -DPRODUCT_FULL -DSOLAR_JAVA -DSUPD=340 -DUNIX -DUNX -DVCL -DX86 -D_PTHREADS -D_REENTRANT   -Wall -Wendif-labels -Wextra -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Woverloaded-virtual -Wshadow -fPIC -fmessage-length=0 -fno-common -fvisibility-inlines-hidden -fvisibility=hidden -pipe    -DEXCEPTIONS_ON -fexceptions -fno-enforce-eh-specs  -Os -c $S/framework/source/uiconfiguration/uiconfigurationmanager.cxx -o $W/CxxObject/framework/source/uiconfiguration/uiconfigurationmanager.o -MMD -MT $W/CxxObject/framework/source/uiconfiguration/uiconfigurationmanager.o -MF $W/Dep/CxxObject/framework/source/uiconfiguration/uiconfigurationmanager.d -I$S/framework/source/uiconfiguration/ -I$O/inc/stl -I$S/framework/inc/pch -I$S/framework/source/inc -I$S/framework/inc -I$W/inc/framework/ -I$O/inc/external -I$O/inc -I$S/solenv/unxlngi6/inc -I$S/solenv/inc -I$S/res -I$S/solenv/inc/Xp31 -I/usr/lib/jvm/java-1.6.0-openjdk/include -I/usr/lib/jvm/java-1.6.0-openjdk/include/linux -I/usr/lib/jvm/java-1.6.0-openjdk/include/native_threads/include -I$O/inc/framework -I$O/inc/offuh 
In file included from /usr/lib/gcc/i586-mandriva-linux-gnu/4.6.2/../../../../include/c++/4.6.2/vector:61:0,
                 from /home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/framework/inc/uiconfiguration/uiconfigurationmanager.hxx:36,
                 from /home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/framework/source/uiconfiguration/uiconfigurationmanager.cxx:31:
/usr/lib/gcc/i586-mandriva-linux-gnu/4.6.2/../../../../include/c++/4.6.2/bits/stl_algobase.h: In function 'typename __gnu_cxx::__enable_if<(! std::__is_scalar<_Tp>::__value), void>::__type std::__fill_a(_ForwardIterator, _ForwardIterator, const _Tp&) [with _ForwardIterator = framework::UIConfigurationManager::UIElementType*, _Tp = framework::UIConfigurationManager::UIElementType, typename __gnu_cxx::__enable_if<(! std::__is_scalar<_Tp>::__value), void>::__type = void]':
/usr/lib/gcc/i586-mandriva-linux-gnu/4.6.2/../../../../include/c++/4.6.2/bits/stl_algobase.h:722:7:   instantiated from 'void std::fill(_ForwardIterator, _ForwardIterator, const _Tp&) [with _ForwardIterator = framework::UIConfigurationManager::UIElementType*, _Tp = framework::UIConfigurationManager::UIElementType]'
/usr/lib/gcc/i586-mandriva-linux-gnu/4.6.2/../../../../include/c++/4.6.2/bits/vector.tcc:397:5:   instantiated from 'void std::vector<_Tp, _Alloc>::_M_fill_insert(std::vector<_Tp, _Alloc>::iterator, std::vector<_Tp, _Alloc>::size_type, const value_type&) [with _Tp = framework::UIConfigurationManager::UIElementType, _Alloc = std::allocator<framework::UIConfigurationManager::UIElementType>, std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<framework::UIConfigurationManager::UIElementType*, std::vector<framework::UIConfigurationManager::UIElementType> >, typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer = framework::UIConfigurationManager::UIElementType*, std::vector<_Tp, _Alloc>::size_type = unsigned int, std::vector<_Tp, _Alloc>::value_type = framework::UIConfigurationManager::UIElementType]'
/usr/lib/gcc/i586-mandriva-linux-gnu/4.6.2/../../../../include/c++/4.6.2/bits/stl_vector.h:944:9:   instantiated from 'void std::vector<_Tp, _Alloc>::insert(std::vector<_Tp, _Alloc>::iterator, std::vector<_Tp, _Alloc>::size_type, const value_type&) [with _Tp = framework::UIConfigurationManager::UIElementType, _Alloc = std::allocator<framework::UIConfigurationManager::UIElementType>, std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<framework::UIConfigurationManager::UIElementType*, std::vector<framework::UIConfigurationManager::UIElementType> >, typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer = framework::UIConfigurationManager::UIElementType*, std::vector<_Tp, _Alloc>::size_type = unsigned int, std::vector<_Tp, _Alloc>::value_type = framework::UIConfigurationManager::UIElementType]'
/usr/lib/gcc/i586-mandriva-linux-gnu/4.6.2/../../../../include/c++/4.6.2/bits/stl_vector.h:632:4:   instantiated from 'void std::vector<_Tp, _Alloc>::resize(std::vector<_Tp, _Alloc>::size_type, std::vector<_Tp, _Alloc>::value_type) [with _Tp = framework::UIConfigurationManager::UIElementType, _Alloc = std::allocator<framework::UIConfigurationManager::UIElementType>, std::vector<_Tp, _Alloc>::size_type = unsigned int, std::vector<_Tp, _Alloc>::value_type = framework::UIConfigurationManager::UIElementType]'
/home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/framework/source/uiconfiguration/uiconfigurationmanager.cxx:614:70:   instantiated from here
/usr/lib/gcc/i586-mandriva-linux-gnu/4.6.2/../../../../include/c++/4.6.2/bits/stl_algobase.h:676:2: error: no match for 'operator=' in '* __first = __value'
/usr/lib/gcc/i586-mandriva-linux-gnu/4.6.2/../../../../include/c++/4.6.2/bits/stl_algobase.h:676:2: note: candidate is:
/home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/framework/inc/uiconfiguration/uiconfigurationmanager.hxx:160:20: note: framework::UIConfigurationManager::UIElementType& framework::UIConfigurationManager::UIElementType::operator=(framework::UIConfigurationManager::UIElementType&)
/home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/framework/inc/uiconfiguration/uiconfigurationmanager.hxx:160:20: note:   no known conversion for argument 1 from 'const framework::UIConfigurationManager::UIElementType' to 'framework::UIConfigurationManager::UIElementType&'
make: *** [/home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/solver/340/unxlngi6.pro/workdir/CxxObject/framework/source/uiconfiguration/uiconfigurationmanager.o] Error 1
Comment 5 Rafael da Veiga Cabral 2011-12-15 09:22:29 UTC
Created attachment 54468 [details]
complete fix porpouse - tested also with gcc 4.6.1
Comment 6 Rafael da Veiga Cabral 2011-12-15 10:49:31 UTC
Build issue (module sfx2) is also being solved by the proposed patch: 

[ build DEP ] LNK:Library/libsfxli.so
R=/home/cabral/libreoffice_cooker/svn/current/BUILD && S=$R/libreoffice-3.4.4 && O=$S/solver/340/unxlngi6.pro && W=$O/workdir &&  mkdir -p $W/Dep/LinkTarget/Library/ && RESPONSEFILE=/tmp/gbuild.G5GInd && cat ${RESPONSEFILE} /dev/null | xargs -n 200 cat > $W/Dep/LinkTarget/Library/libsfxli.so.d && rm -f ${RESPONSEFILE}
[ build CXX ] sfx2/source/doc/guisaveas
R=/home/cabral/libreoffice_cooker/svn/current/BUILD && S=$R/libreoffice-3.4.4 && O=$S/solver/340/unxlngi6.pro && W=$O/workdir &&  mkdir -p $W/CxxObject/sfx2/source/doc/ && mkdir -p $W/Dep/CxxObject/sfx2/source/doc/ && g++ -DCPPU_ENV=gcc3 -DCUI -DENABLE_GRAPHITE -DENABLE_GTK -DENABLE_KDE4 -DENABLE_LAYOUT=0 -DENABLE_LAYOUT_EXPERIMENTAL=0 -DGCC -DGXX_INCLUDE_PATH=/usr/include/c++/4.6.2 -DHAVE_GCC_VISIBILITY_FEATURE -DLINUX -DNDEBUG -DOPTIMIZE -DOSL_DEBUG_LEVEL=0 -DPRODUCT -DPRODUCT_FULL -DSOLAR_JAVA -DSUPD=340 -DUNIX -DUNX -DVCL -DX86 -D_PTHREADS -D_REENTRANT   -DSFX2_DLLIMPLEMENTATION  -DENABLE_QUICKSTART_APPLET -DENABLE_SYSTRAY_GTK -DPLUGIN_NAME=libqstart_gtkli.so  -Wall -Wendif-labels -Wextra -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Woverloaded-virtual -Wshadow -fPIC -fmessage-length=0 -fno-common -fvisibility-inlines-hidden -fvisibility=hidden -pipe    -DEXCEPTIONS_ON -fexceptions -fno-enforce-eh-specs  -Os -c $S/sfx2/source/doc/guisaveas.cxx -o $W/CxxObject/sfx2/source/doc/guisaveas.o -MMD -MT $W/CxxObject/sfx2/source/doc/guisaveas.o -MF $W/Dep/CxxObject/sfx2/source/doc/guisaveas.d -I$S/sfx2/source/doc/ -I$O/inc/stl -I$S/sfx2/inc -I$S/sfx2/inc/sfx2 -I$S/sfx2/source/inc -I$S/sfx2/inc/pch -I$W/SdiTarget/sfx2/sdi -I$W/inc/ -I$O/inc/external -I$O/inc -I$S/solenv/unxlngi6/inc -I$S/solenv/inc -I$S/res -I$S/solenv/inc/Xp31 -I/usr/lib/jvm/java-1.6.0-openjdk/include -I/usr/lib/jvm/java-1.6.0-openjdk/include/linux -I/usr/lib/jvm/java-1.6.0-openjdk/include/native_threads/include -I$O/inc/offuh -I$O/inc -I/usr/include/libxml2   
/home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/sfx2/source/doc/guisaveas.cxx: In member function 'sal_Int8 ModelData_Impl::CheckFilter(const rtl::OUString&)':
/home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/sfx2/source/doc/guisaveas.cxx:734:63: error: no match for 'operator=' in 'aFiltPropsHM = comphelper::SequenceAsHashMap((*(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>*)(& aFilterProps)))'
/home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/sfx2/source/doc/guisaveas.cxx:734:63: note: candidate is:
/home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/solver/340/unxlngi6.pro/inc/comphelper/sequenceashashmap.hxx:81:28: note: comphelper::SequenceAsHashMap& comphelper::SequenceAsHashMap::operator=(comphelper::SequenceAsHashMap&)
/home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/solver/340/unxlngi6.pro/inc/comphelper/sequenceashashmap.hxx:81:28: note:   no known conversion for argument 1 from 'comphelper::SequenceAsHashMap' to 'comphelper::SequenceAsHashMap&'
make: *** [/home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/solver/340/unxlngi6.pro/workdir/CxxObject/sfx2/source/doc/guisaveas.o] Error 1
Comment 7 Rafael da Veiga Cabral 2011-12-15 10:55:11 UTC
Build issue (module framework/loadenv) is also being solved by the proposed patch: 

/home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/framework/source/loadenv/loadenv.cxx: In member function 'virtual void framework::LoadEnv::initializeLoading(const rtl::OUString&, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>&, const com::sun::star::uno::Reference<com::sun::star::frame::XFrame>&, const rtl::OUString&, sal_Int32, framework::LoadEnv::EFeature, framework::LoadEnv::EContentType)':
/home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/framework/source/loadenv/loadenv.cxx:257:107: error: no match for 'operator=' in '((framework::LoadEnv*)this)->framework::LoadEnv::m_lMediaDescriptor = framework::impl_mergeMediaDescriptorWithMightExistingModelArgs(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>&)()'
/home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/framework/source/loadenv/loadenv.cxx:257:107: note: candidate is:
/home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/solver/340/unxlngi6.pro/inc/comphelper/mediadescriptor.hxx:61:28: note: comphelper::MediaDescriptor& comphelper::MediaDescriptor::operator=(comphelper::MediaDescriptor&)
/home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/solver/340/unxlngi6.pro/inc/comphelper/mediadescriptor.hxx:61:28: note:   no known conversion for argument 1 from 'comphelper::MediaDescriptor' to 'comphelper::MediaDescriptor&'
make: *** [/home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/solver/340/unxlngi6.pro/workdir/CxxObject/framework/source/loadenv/loadenv.o] Error 1
Comment 8 Rafael da Veiga Cabral 2011-12-15 10:58:37 UTC
Build issue (module framework/uiconfiguration) is also being solved by the proposed patch:

In file included from /usr/lib/gcc/i586-mandriva-linux-gnu/4.6.2/../../../../include/c++/4.6.2/vector:61:0,
                 from /home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/framework/source/uiconfiguration/uiconfigurationmanagerimpl.hxx:36,
                 from /home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/framework/source/uiconfiguration/uiconfigurationmanagerimpl.cxx:31:
/usr/lib/gcc/i586-mandriva-linux-gnu/4.6.2/../../../../include/c++/4.6.2/bits/stl_algobase.h: In function 'typename __gnu_cxx::__enable_if<(! std::__is_scalar<_Tp>::__value), void>::__type std::__fill_a(_ForwardIterator, _ForwardIterator, const _Tp&) [with _ForwardIterator = framework::UIConfigurationManagerImpl::UIElementType*, _Tp = framework::UIConfigurationManagerImpl::UIElementType, typename __gnu_cxx::__enable_if<(! std::__is_scalar<_Tp>::__value), void>::__type = void]':
/usr/lib/gcc/i586-mandriva-linux-gnu/4.6.2/../../../../include/c++/4.6.2/bits/stl_algobase.h:722:7:   instantiated from 'void std::fill(_ForwardIterator, _ForwardIterator, const _Tp&) [with _ForwardIterator = framework::UIConfigurationManagerImpl::UIElementType*, _Tp = framework::UIConfigurationManagerImpl::UIElementType]'
/usr/lib/gcc/i586-mandriva-linux-gnu/4.6.2/../../../../include/c++/4.6.2/bits/vector.tcc:397:5:   instantiated from 'void std::vector<_Tp, _Alloc>::_M_fill_insert(std::vector<_Tp, _Alloc>::iterator, std::vector<_Tp, _Alloc>::size_type, const value_type&) [with _Tp = framework::UIConfigurationManagerImpl::UIElementType, _Alloc = std::allocator<framework::UIConfigurationManagerImpl::UIElementType>, std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<framework::UIConfigurationManagerImpl::UIElementType*, std::vector<framework::UIConfigurationManagerImpl::UIElementType> >, typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer = framework::UIConfigurationManagerImpl::UIElementType*, std::vector<_Tp, _Alloc>::size_type = unsigned int, std::vector<_Tp, _Alloc>::value_type = framework::UIConfigurationManagerImpl::UIElementType]'
/usr/lib/gcc/i586-mandriva-linux-gnu/4.6.2/../../../../include/c++/4.6.2/bits/stl_vector.h:944:9:   instantiated from 'void std::vector<_Tp, _Alloc>::insert(std::vector<_Tp, _Alloc>::iterator, std::vector<_Tp, _Alloc>::size_type, const value_type&) [with _Tp = framework::UIConfigurationManagerImpl::UIElementType, _Alloc = std::allocator<framework::UIConfigurationManagerImpl::UIElementType>, std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<framework::UIConfigurationManagerImpl::UIElementType*, std::vector<framework::UIConfigurationManagerImpl::UIElementType> >, typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer = framework::UIConfigurationManagerImpl::UIElementType*, std::vector<_Tp, _Alloc>::size_type = unsigned int, std::vector<_Tp, _Alloc>::value_type = framework::UIConfigurationManagerImpl::UIElementType]'
/usr/lib/gcc/i586-mandriva-linux-gnu/4.6.2/../../../../include/c++/4.6.2/bits/stl_vector.h:632:4:   instantiated from 'void std::vector<_Tp, _Alloc>::resize(std::vector<_Tp, _Alloc>::size_type, std::vector<_Tp, _Alloc>::value_type) [with _Tp = framework::UIConfigurationManagerImpl::UIElementType, _Alloc = std::allocator<framework::UIConfigurationManagerImpl::UIElementType>, std::vector<_Tp, _Alloc>::size_type = unsigned int, std::vector<_Tp, _Alloc>::value_type = framework::UIConfigurationManagerImpl::UIElementType]'
/home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/framework/source/uiconfiguration/uiconfigurationmanagerimpl.cxx:740:84:   instantiated from here
/usr/lib/gcc/i586-mandriva-linux-gnu/4.6.2/../../../../include/c++/4.6.2/bits/stl_algobase.h:676:2: error: no match for 'operator=' in '* __first = __value'
/usr/lib/gcc/i586-mandriva-linux-gnu/4.6.2/../../../../include/c++/4.6.2/bits/stl_algobase.h:676:2: note: candidate is:
/home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/framework/source/uiconfiguration/uiconfigurationmanagerimpl.hxx:164:20: note: framework::UIConfigurationManagerImpl::UIElementType& framework::UIConfigurationManagerImpl::UIElementType::operator=(framework::UIConfigurationManagerImpl::UIElementType&)
/home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/framework/source/uiconfiguration/uiconfigurationmanagerimpl.hxx:164:20: note:   no known conversion for argument 1 from 'const framework::UIConfigurationManagerImpl::UIElementType' to 'framework::UIConfigurationManagerImpl::UIElementType&'
make: *** [/home/cabral/libreoffice_cooker/svn/current/BUILD/libreoffice-3.4.4/solver/340/unxlngi6.pro/workdir/CxxObject/framework/source/uiconfiguration/uiconfigurationmanagerimpl.o] Error 1
Comment 9 stephane 2011-12-16 19:05:35 UTC
The proposed patch helped a lot, but I still get an error in filtercachedata.hxx (error: no match for 'operator=')

Listing :

Making:    standard.lib
Making:    all_standard.dpslo
In file included from /build/src/build/framework/inc/classes/filtercache.hxx:43:0,
                 from /build/src/build/framework/inc/services/sessionlistener.hxx:35,
                 from /build/src/build/framework/source/register/registerservices.cxx:85:
/build/src/build/framework/inc/classes/filtercachedata.hxx: In member function 'framework::FileType& framework::FileType::impl_copy(const framework::FileType&)':
/build/src/build/framework/inc/classes/filtercachedata.hxx:233:32: error: no match for 'operator=' in '((framework::FileType*)this)->framework::FileType::lUINames = rCopy.framework::FileType::lUINames'
/build/src/build/framework/inc/classes/filtercachedata.hxx:233:32: note: candidate is:
/build/src/build/framework/inc/stdtypes.h:170:7: note: framework::BaseHash<rtl::OUString>& framework::BaseHash<rtl::OUString>::operator=(framework::BaseHash<rtl::OUString>&)
/build/src/build/framework/inc/stdtypes.h:170:7: note:   no known conversion for argument 1 from 'const OUStringHash {aka const framework::BaseHash<rtl::OUString>}' to 'framework::BaseHash<rtl::OUString>&'
/build/src/build/framework/inc/classes/filtercachedata.hxx: In member function 'framework::Filter& framework::Filter::impl_copy(const framework::Filter&)':
/build/src/build/framework/inc/classes/filtercachedata.hxx:301:32: error: no match for 'operator=' in '((framework::Filter*)this)->framework::Filter::lUINames = rCopy.framework::Filter::lUINames'
/build/src/build/framework/inc/classes/filtercachedata.hxx:301:32: note: candidate is:
/build/src/build/framework/inc/stdtypes.h:170:7: note: framework::BaseHash<rtl::OUString>& framework::BaseHash<rtl::OUString>::operator=(framework::BaseHash<rtl::OUString>&)
/build/src/build/framework/inc/stdtypes.h:170:7: note:   no known conversion for argument 1 from 'const OUStringHash {aka const framework::BaseHash<rtl::OUString>}' to 'framework::BaseHash<rtl::OUString>&'
/build/src/build/framework/inc/classes/filtercachedata.hxx: In member function 'framework::Loader& framework::Loader::impl_copy(const framework::Loader&)':
/build/src/build/framework/inc/classes/filtercachedata.hxx:408:30: error: no match for 'operator=' in '((framework::Loader*)this)->framework::Loader::lUINames = rCopy.framework::Loader::lUINames'
/build/src/build/framework/inc/classes/filtercachedata.hxx:408:30: note: candidate is:
/build/src/build/framework/inc/stdtypes.h:170:7: note: framework::BaseHash<rtl::OUString>& framework::BaseHash<rtl::OUString>::operator=(framework::BaseHash<rtl::OUString>&)
/build/src/build/framework/inc/stdtypes.h:170:7: note:   no known conversion for argument 1 from 'const OUStringHash {aka const framework::BaseHash<rtl::OUString>}' to 'framework::BaseHash<rtl::OUString>&'
Compiling: accessibility/source/extended/accessiblelistboxentry.cxx
Entering /build/src/build/canvas/source/cairo

R=/build/src && S=$R/build && O=$S/solver/340/unxlngi6.pro && W=$O/workdir &&  mkdir -p $W/CxxObject/framework/source/services/ && mkdir -p $W/Dep/CxxObject/framework/source/services/ && g++ -DCPPU_ENV=gcc3 -DCUI -DENABLE_GRAPHITE -DENABLE_GTK -DENABLE_KDE4 -DENABLE_LAYOUT=0 -DENABLE_LAYOUT_EXPERIMENTAL=0 -DGCC -DGXX_INCLUDE_PATH=/usr/include/c++/4.6.2 -DHAVE_GCC_VISIBILITY_FEATURE -DLINUX -DNDEBUG -DOPTIMIZE -DOSL_DEBUG_LEVEL=0 -DPRODUCT -DPRODUCT_FULL -DSOLAR_JAVA -DSUPD=340 -DUNIX -DUNX -DVCL -DX86 -D_PTHREADS -D_REENTRANT   -Wall -Wendif-labels -Wextra -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Woverloaded-virtual -Wshadow -fPIC -fmessage-length=0 -fno-common -fvisibility-inlines-hidden -fvisibility=hidden -pipe   -march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -DEXCEPTIONS_ON -fexceptions -fno-enforce-eh-specs  -Os -c $S/framework/source/services/modelwinservice.cxx -o $W/CxxObject/framework/source/services/modelwinservice.o -MMD -MT $W/CxxObject/framework/source/services/modelwinservice.o -MF $W/Dep/CxxObject/framework/source/services/modelwinservice.d -I$S/framework/source/services/ -I$O/inc/stl -I$S/framework/inc/pch -I$S/framework/source/inc -I$S/framework/inc -I$W/inc/framework/ -I$O/inc/external -I$O/inc -I$S/solenv/unxlngi6/inc -I$S/solenv/inc -I$S/res -I$S/solenv/inc/Xp31 -I/usr/lib/jvm/java-7-openjdk/include -I/usr/lib/jvm/java-7-openjdk/include/linux -I/usr/lib/jvm/java-7-openjdk/include/native_threads/include -I$O/inc/framework -I$O/inc/offuh 
[ build CXX ] framework/source/services/modulemanager
Making:    all_cairocanvas.dpslo
R=/build/src && S=$R/build && O=$S/solver/340/unxlngi6.pro && W=$O/workdir &&  mkdir -p $W/CxxObject/framework/source/services/ && mkdir -p $W/Dep/CxxObject/framework/source/services/ && g++ -DCPPU_ENV=gcc3 -DCUI -DENABLE_GRAPHITE -DENABLE_GTK -DENABLE_KDE4 -DENABLE_LAYOUT=0 -DENABLE_LAYOUT_EXPERIMENTAL=0 -DGCC -DGXX_INCLUDE_PATH=/usr/include/c++/4.6.2 -DHAVE_GCC_VISIBILITY_FEATURE -DLINUX -DNDEBUG -DOPTIMIZE -DOSL_DEBUG_LEVEL=0 -DPRODUCT -DPRODUCT_FULL -DSOLAR_JAVA -DSUPD=340 -DUNIX -DUNX -DVCL -DX86 -D_PTHREADS -D_REENTRANT   -Wall -Wendif-labels -Wextra -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Woverloaded-virtual -Wshadow -fPIC -fmessage-length=0 -fno-common -fvisibility-inlines-hidden -fvisibility=hidden -pipe   -march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -DEXCEPTIONS_ON -fexceptions -fno-enforce-eh-specs  -Os -c $S/framework/source/services/modulemanager.cxx -o $W/CxxObject/framework/source/services/modulemanager.o -MMD -MT $W/CxxObject/framework/source/services/modulemanager.o -MF $W/Dep/CxxObject/framework/source/services/modulemanager.d -I$S/framework/source/services/ -I$O/inc/stl -I$S/framework/inc/pch -I$S/framework/source/inc -I$S/framework/inc -I$W/inc/framework/ -I$O/inc/external -I$O/inc -I$S/solenv/unxlngi6/inc -I$S/solenv/inc -I$S/res -I$S/solenv/inc/Xp31 -I/usr/lib/jvm/java-7-openjdk/include -I/usr/lib/jvm/java-7-openjdk/include/linux -I/usr/lib/jvm/java-7-openjdk/include/native_threads/include -I$O/inc/framework -I$O/inc/offuh 
[ build CXX ] framework/source/services/pathsettings
make[1]: *** [/build/src/build/solver/340/unxlngi6.pro/workdir/CxxObject/framework/source/register/registerservices.o] Error 1
make[1]: *** Waiting for unfinished jobs....
Compiling: canvas/unxlngi6.pro/misc/cairocanvas.uno_version.c
Compiling: canvas/source/cairo/cairo_cachedbitmap.cxx
Compiling: canvas/source/cairo/cairo_cairo.cxx
Compiling: canvas/source/cairo/cairo_canvas.cxx
Compiling: canvas/source/cairo/cairo_canvasbitmap.cxx
Compiling: accessibility/source/extended/accessibletabbarbase.cxx
Compiling: fpicker/source/office/OfficeFolderPicker.cxx
Compiling: fpicker/source/office/fpinteraction.cxx
Compiling: fpicker/source/office/fpsmartcontent.cxx
Compiling: canvas/source/cairo/cairo_canvascustomsprite.cxx
Compiling: canvas/source/cairo/cairo_canvasfont.cxx
Compiling: fpicker/source/office/fps_office.cxx
Compiling: accessibility/source/extended/accessibletabbar.cxx
Compiling: fpicker/source/office/iodlg.cxx
make[1]: Leaving directory `/build/src/build/framework'
dmake:  Error code 2, while making 'all'
Comment 10 stephane 2011-12-17 11:01:32 UTC
Created attachment 54528 [details]
Fix the filtercachedata.hxx error
Comment 11 stephane 2011-12-17 11:05:54 UTC
There are two remaining error with gcc 4.6.2 in the 'framework' module :


/build/src/build/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx:760:85:   instantiated from here
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/../../../../include/c++/4.6.2/bits/stl_algobase.h:676:2: error: no match for 'operator=' in '* __first = __value'
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/../../../../include/c++/4.6.2/bits/stl_algobase.h:676:2: note: candidate is:
/build/src/build/framework/inc/uiconfiguration/moduleuiconfigurationmanager.hxx:174:20: note: framework::ModuleUIConfigurationManager::UIElementType& framework::ModuleUIConfigurationManager::UIElementType::operator=(framework::ModuleUIConfigurationManager::UIElementType&)
/build/src/build/framework/inc/uiconfiguration/moduleuiconfigurationmanager.hxx:174:20: note:   no known conversion for argument 1 from 'const framework::ModuleUIConfigurationManager::UIElementType' to 'framework::ModuleUIConfigurationManager::UIElementType&'
make: *** [/build/src/build/solver/340/unxlngx6.pro/workdir/CxxObject/framework/source/uiconfiguration/moduleuiconfigurationmanager.o] Error 1


[...]


/build/src/build/framework/source/uiconfiguration/uiconfigurationmanager.cxx:614:70:   instantiated from here
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/../../../../include/c++/4.6.2/bits/stl_algobase.h:676:2: error: no match for 'operator=' in '* __first = __value'
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/../../../../include/c++/4.6.2/bits/stl_algobase.h:676:2: note: candidate is:
/build/src/build/framework/inc/uiconfiguration/uiconfigurationmanager.hxx:160:20: note: framework::UIConfigurationManager::UIElementType& framework::UIConfigurationManager::UIElementType::operator=(framework::UIConfigurationManager::UIElementType&)
/build/src/build/framework/inc/uiconfiguration/uiconfigurationmanager.hxx:160:20: note:   no known conversion for argument 1 from 'const framework::UIConfigurationManager::UIElementType' to 'framework::UIConfigurationManager::UIElementType&'
make: *** [/build/src/build/solver/340/unxlngx6.pro/workdir/CxxObject/framework/source/uiconfiguration/uiconfigurationmanager.o] Error 1
Comment 12 Rafael da Veiga Cabral 2011-12-19 04:12:45 UTC
Created attachment 54567 [details]
fix gcc 4.6.2

- Add the fix for the filtercachedata.hxx.
- Add the fixes for two remaining issues: moduleuiconfigurationmanager.hxx and uiconfigurationmanager.hxx.
Comment 13 Andreas Radke 2011-12-19 05:16:41 UTC
Thanks. Build finished now here. This issue seems solved.
Comment 14 Caolán McNamara 2011-12-20 01:24:09 UTC
does anyone know what the *root* cause is, casting away const to get operator= working doesn't look right. We have this problem with 3.4.4 as well, but 3.5.0 seems to build fine. Looks like compiler generated an operator=(foo&) instead of operator=(const foo&)
Comment 15 Caolán McNamara 2011-12-20 04:02:12 UTC
problem seems to come from boost::unordered_map's operator=
Comment 16 Caolán McNamara 2011-12-20 05:04:49 UTC
Is this with "system" boost ?, if so what version of boost is it ? This may be triggered by BOOST_COPYABLE_AND_MOVABLE(TYPE)
Comment 18 Rafael da Veiga Cabral 2011-12-20 05:48:17 UTC
Just I guess from /usr/include/boost/move/move.hpp: 

 387    #define BOOST_COPYABLE_AND_MOVABLE(TYPE)\
 388       public:\
 389       TYPE& operator=(TYPE &t)\
 390       {  this->operator=(static_cast<const ::boost::rv<TYPE> &>(const_cast<const TYPE &>(t))); return *this;}\
 391       public:\
 392       operator ::boost::rv<TYPE>&() \
 393       {  return *static_cast< ::boost::rv<TYPE>* >(this);  }\
 394       operator const ::boost::rv<TYPE>&() const \
 395       {  return *static_cast<const ::boost::rv<TYPE>* >(this);  }\
 396       private:\


Line 390, the const_cast seems also to be casting away but the compiler gets lost and guessing kick would be the static_cast operator in left part of the expression, as I still researching.

Tried to diff from 1.47.0 but bost/move/move.hpp seems to be new.
Comment 19 r.andersen 2011-12-20 06:05:59 UTC
No problems on my side anymore.
Thank you all for the patches.
Comment 20 Caolán McNamara 2011-12-21 03:29:13 UTC
Created attachment 54632 [details]
one-liner probable fix

So, I think the problem is really in boost and/or gcc. It happens that 3.5 builds fine because there we enable -std=c++0x when gcc supports it, and then gcc is happy with that move.hpp from boost as a baseclass. How about this attached patch as an alternative.
Comment 22 Rafael da Veiga Cabral 2011-12-21 04:23:19 UTC
Hi, I've tested  your "one-liner probable fix" in one of the reported build
issues and it has solved the problem. It was funny, one of the first things I
had tried was to force the c++ standard using "-std=c++0x" using g++ command
line output from make for testing and it had *not* worked and now, I retest it
using the same trick and it worked and don't know what I missed. Anyway the
alternative proposed fix also worked out :).
Comment 23 Caolán McNamara 2011-12-21 04:29:34 UTC
https://svn.boost.org/trac/boost/ticket/6167

odd, seems on first reading that boost::unordered_map now uses boost::move and in combo only works in c++11, in which case one wouldn't need boost::unordered_map in the first place :-(

pmladek shoved the quick-fix into the 3-4 branch, so "fixed" from that perspective, though this will blow up again if we e.g. upgrade our internal boost to this version and run it through compilers that don't support c++11
Comment 24 Rafael da Veiga Cabral 2011-12-21 04:47:24 UTC
Sure, was what I'm trying to say in the mail list but my e-mails fall in the moderador approval (checking with Petr): 

My initial proposed fix is partially right when it to comes to "reimplement the operador="  (not sure about the const casts) whenever the compiler is in the C++03 or bellow mode or even if C++0x is not supported as well using boost 1.48.0 according :

http://www.boost.org/doc/libs/1_48_0/doc/html/move/emulation_limitations.html#move.emulation_limitations.assignment_operator.