View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000152 | FreeCAD | Bug | public | 2010-09-12 13:23 | 2010-10-05 07:10 |
| Reporter | efferre | Assigned To | wmayer | ||
| Priority | normal | Severity | minor | Reproducibility | sometimes |
| Status | closed | Resolution | not fixable | ||
| Product Version | 0.10 | ||||
| Summary | 0000152: parallel make doesn't work during compilation | ||||
| Description | I'm using gentoo so I'm compiling FreeCAD from source. The compilation doesn't always work, it seems there is a problem with parallel make (I'm using -j8). The log is attached to the bug, the error is always the same but it doesn't appear at each recompilation. If I set -j1 into the make options the problem vanishes. | ||||
| Tags | No tags attached. | ||||
| FreeCAD Information | |||||
|
2010-09-12 13:23
|
|
|
|
You got the error in moc_DlgPrimitives.cpp What is the content of this file? |
|
|
During the recompilation today I have got also a similar error in an another file. libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../../.. -DMeshExport= -DMeshGuiExport= -D_OCC64 -g -D_DEBUG -D_REENTRANT -Wall -I../../../../src -I../../../../src -I/usr/include/python2.6 -I/usr/include -I/usr/include -I/usr/include/qt4 -I/usr/include/qt4/Qt3Support -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtSvg -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtUiTools -I/usr/include/qt4/QtWebKit -I/usr/include -I/usr/include -O2 -pipe -march=core2 -msse4 -Wno-deprecated -frtti -MT libMeshGui_la-ViewProviderPython.lo -MD -MP -MF .deps/libMeshGui_la-ViewProviderPython.Tpo -c ViewProviderPython.cpp -fPIC -DPIC -o .libs/libMeshGui_la-ViewProviderPython.o In file included from DlgRegularSolidImp.cpp:221: moc_DlgRegularSolidImp.cpp:44: error: ‘MeshGui::MeshGui’ has not been declared moc_DlgRegularSolidImp.cpp:53: error: ‘MeshGui::MeshGui’ has not been declared moc_DlgRegularSolidImp.cpp:53: error: non-member function ‘const QMetaObject* metaObject()’ cannot have cv-qualifier /usr/include/qt4/QtCore/qobject.h: In function ‘const QMetaObject* metaObject()’: /usr/include/qt4/QtCore/qobject.h:296: error: ‘QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > QObject::d_ptr’ is protected moc_DlgRegularSolidImp.cpp:55: error: within this context /usr/include/qt4/QtCore/qobject.h:296: error: invalid use of non-static data member ‘QObject::d_ptr’ moc_DlgRegularSolidImp.cpp:55: error: from this location /usr/include/qt4/QtCore/qobject.h:296: error: ‘QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > QObject::d_ptr’ is protected moc_DlgRegularSolidImp.cpp:55: error: within this context /usr/include/qt4/QtCore/qobject.h:296: error: invalid use of non-static data member ‘QObject::d_ptr’ moc_DlgRegularSolidImp.cpp:55: error: from this location moc_DlgRegularSolidImp.cpp: At global scope: moc_DlgRegularSolidImp.cpp:58: error: ‘MeshGui::MeshGui’ has not been declared moc_DlgRegularSolidImp.cpp: In function ‘void* qt_metacast(const char*)’: moc_DlgRegularSolidImp.cpp:62: error: invalid use of ‘this’ in non-member function moc_DlgRegularSolidImp.cpp:64: error: invalid use of ‘this’ in non-member function moc_DlgRegularSolidImp.cpp:65: error: cannot call member function ‘virtual void* QDialog::qt_metacast(const char*)’ without object moc_DlgRegularSolidImp.cpp: At global scope: moc_DlgRegularSolidImp.cpp:68: error: ‘MeshGui::MeshGui’ has not been declared moc_DlgRegularSolidImp.cpp: In function ‘int qt_metacall(QMetaObject::Call, int, void**)’: moc_DlgRegularSolidImp.cpp:70: error: cannot call member function ‘virtual int QDialog::qt_metacall(QMetaObject::Call, int, void**)’ without object moc_DlgRegularSolidImp.cpp:75: error: ‘on_createSolidButton_clicked’ was not declared in this scope make[6]: *** [libMeshGui_la-DlgRegularSolidImp.lo] Error 1 make[6]: *** Waiting for unfinished jobs.... mv -f .deps/libMeshGui_la-DlgSettingsMeshView.Tpo .deps/libMeshGui_la-DlgSettingsMeshView.Plo mv -f .deps/libMeshGui_la-SoFCMeshObject.Tpo .deps/libMeshGui_la-SoFCMeshObject.Plo mv -f .deps/libMeshGui_la-ViewProviderPython.Tpo .deps/libMeshGui_la-ViewProviderPython.Plo mv -f .deps/libMeshGui_la-RemoveComponents.Tpo .deps/libMeshGui_la-RemoveComponents.Plo mv -f .deps/libMeshGui_la-Command.Tpo .deps/libMeshGui_la-Command.Plo mv -f .deps/libMeshGui_la-DlgEvaluateMeshImp.Tpo .deps/libMeshGui_la-DlgEvaluateMeshImp.Plo mv -f .deps/libMeshGui_la-ViewProvider.Tpo .deps/libMeshGui_la-ViewProvider.Plo make[6]: Leaving directory `/var/tmp/portage/sci-misc/freecad-0.10.3205/work/FreeCAD-0.10.3205/src/Mod/Mesh/Gui' make[5]: *** [all] Error 2 make[5]: Leaving directory `/var/tmp/portage/sci-misc/freecad-0.10.3205/work/FreeCAD-0.10.3205/src/Mod/Mesh/Gui' make[4]: *** [all-recursive] Error 1 make[4]: Leaving directory `/var/tmp/portage/sci-misc/freecad-0.10.3205/work/FreeCAD-0.10.3205/src/Mod/Mesh' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/var/tmp/portage/sci-misc/freecad-0.10.3205/work/FreeCAD-0.10.3205/src/Mod' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/sci-misc/freecad-0.10.3205/work/FreeCAD-0.10.3205/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/sci-misc/freecad-0.10.3205/work/FreeCAD-0.10.3205' make: *** [all] Error 2 I'm attaching both files, moc_DlgPrimitives.cpp and moc_DlgRegularSolidImp.cpp |
|
2010-09-17 19:13
|
|
|
|
The content of the moc files are completely wrong. When doing a normal build then the content is correct, right? In case it's a problem with the parallel build then it must be a problem with Qt's moc command which produces trash. |
|
2010-09-18 17:51
|
|
|
|
Yes, I confirm that the moc files are different when the compilation process is correct. I'm attaching the correct files. |
|
|
I fear there is nothing we can do to fix this issue. I guess there is some kind of race condition where two moc instances work on the same file and thus causes the trash. What we then need is some kind of locking but I have no idea how to achieve this on Makefiles. What about using the alternative cmake? This is already working quite well on Debian and derivates and Windows. |
|
|
As default the cmake build system should be used which is pretty stable now. There parallel builds should work much better. IMO I can build with automake on a Dual core machine without problems. Maybe the issue only appears with four or more cores only. So, at least there is nothing I can do now. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2010-09-12 13:23 | unauthenticated | New Issue | |
| 2010-09-12 13:23 | unauthenticated | File Added: sci-misc:freecad-0.10.3205:20100911-110218.log.gz | |
| 2010-09-16 07:14 | wmayer | Note Added: 0000320 | |
| 2010-09-17 19:12 | efferre | Note Added: 0000324 | |
| 2010-09-17 19:13 | efferre | File Added: moc_files.tar.bz2 | |
| 2010-09-18 12:29 | wmayer | Reporter | unauthenticated => efferre |
| 2010-09-18 12:39 | wmayer | Note Added: 0000325 | |
| 2010-09-18 17:51 | unauthenticated | File Added: moc_files_correct.tar.bz2 | |
| 2010-09-18 17:53 | unauthenticated | Note Added: 0000326 | |
| 2010-09-28 14:08 | wmayer | Note Added: 0000335 | |
| 2010-10-05 07:10 | wmayer | Note Added: 0000345 | |
| 2010-10-05 07:10 | wmayer | Assigned To | => wmayer |
| 2010-10-05 07:10 | wmayer | Status | new => closed |
| 2010-10-05 07:10 | wmayer | Resolution | open => not fixable |
FreeCAD