Bug report #2880

makefiles not parallel building proof

Added by papillon81 - almost 11 years ago. Updated over 9 years ago.

Affected QGIS version: Regression?:No
Operating System:All Easy fix?:No
Pull Request or Patch supplied:No Resolution:
Crashes QGIS or corrupts data: Copied to github as #:12940


In times of multi-core machines it is not too uncommon to compile projects like QGIS with "make -j9" or even higher. This does not work, however, as the compile process bails out. Not a big thing, lowering it to -j6 makes it work, but the error shows a build dependency problem in the makefiles that should be fixed.

Here is a part of the log:

make -j9 
Scanning dependencies of target qgis.d.rast
Scanning dependencies of target compile_python_files                                                             
Scanning dependencies of target svnversion                                                                       
Scanning dependencies of target qgis.g.info                                                                      
Scanning dependencies of target ui                                                                               
Scanning dependencies of target qgis.g.browser                                                                   
Scanning dependencies of target pluginstaller                                                                    

[  0%] [  0%] [  0%] [  0%] [  0%] [  0%] [  0%] Building C object src/providers/grass/CMakeFiles/qgis.g.info.dir/qgis.g.info.c.o                                                                                                 
Building C object src/providers/grass/CMakeFiles/qgis.d.rast.dir/qgis.d.rast.c.o                                 
Built target svnversion                                                                                          
Generating ui_qgsplugininstallerbase.py
Generating ui_qgssinglesymboldialogbase.h                                                                        
Generating ui_qgssymbolv2propertiesdialogbase.h                                                                  
Generating ui_qgsformannotationdialogbase.h                                                                      
Scanning dependencies of target mapserverexport                                                                  
[  0%]                                                                                                           
[  0%] [  0%] [  0%] Generating ui_qgsplugininstallerfetchingbase.py
Generating ui_qgsplugininstallerinstallingbase.py                                                                
Generating ui_qgsprojectpropertiesbase.h                                                                         
Generating ui_qgsmapserverexportbase.py                                                                          
[  0%] Building CXX object src/plugins/grass/CMakeFiles/qgis.g.browser.dir/qgis.g.browser.cpp.o                  
[  0%] Generating ui_qgscontinuouscolordialogbase.h                                                              

[  0%] Linking C executable qgis.g.info
Generating ui_qgisappbase.h                                                                                      
Linking C executable qgis.d.rast                                                                                 
[  0%] Generating ui_qgscomposerbase.h                                                                           
[  0%] [  0%] Built target compile_python_files                                                                  
Generating ui_qgspgnewconnectionbase.h
[  0%] [  0%] Warning: name gridLayout is already used                                                           
Generating ui_qgsitempositiondialogbase.h
[  0%] Generating resources_rc.py                                                                                
Generating ui_qgsrulebasedrendererv2widget.h                                                                     
[  0%] [  0%] [  0%] Built target qgis.d.rast                                                                    
Built target mapserverexport
Generating ui_qgsludialogbase.h
[  0%] Generating ui_qgsplugininstallerpluginerrorbase.py                                                        
[  0%] Scanning dependencies of target ftools                                                                    
[  0%] Scanning dependencies of target gdaltools                                                                 
[  0%] Generating ui_qgscomposeritemwidgetbase.h                                                                 
Generating ui_qgsplugininstallerrepositorybase.py                                                                
[  0%] Generating ui_qgscomposervectorlegendbase.h                                                               
Generating ui_qgsuniquevaluedialogbase.h                                                                         
[  0%] [  0%] [  0%] Generating resources_rc.py                                                                  
Generating ui_frmAbout.py                                                                                        
Generating ui_qgspluginmanagerbase.h                                                                             
[  0%] [  0%] [  0%] Generating resources_rc.py                                                                  
Generating ui_qgsattributeactiondialogbase.h                                                                     
Built target gdaltools                                                                                           
[  0%] [  0%] Built target qgis.g.info
Scanning dependencies of target osmplugin
Generating ui_qgspgsourceselectbase.h                                                                            
[  0%] [  0%] Generating ui_qgsbookmarksbase.h                                                                   
Scanning dependencies of target ftools_tools                                                                     
Generating ui_OsmFeatureDW.py                                                                                    
[  0%] maker2: *** No rule to make target @python/plugins/fTools/ui_frmAbout.py', needed by @python/plugins/fTools/tools/CMakeFiles/ftools_tools'.  Stop.
maker1: *** [python/plugins/fTools/tools/CMakeFiles/ftools_tools.dir/all] Error 2
maker1: *** Waiting for unfinished jobs....


#1 Updated by sharpie - over 10 years ago

The 1.5.0 source won't build with anything above -j1 for me. Makes development work a bit tedious as it takes a good 5 minutes to compile or recompile.

#2 Updated by Anne Ghisla over 10 years ago

I regularly compile with make -j4 on my dual core, since a long time, both on Debian and Fedora. Does this bug affect Gentoo only?

#3 Updated by Volker Fröhlich over 10 years ago

No, not specific to Gentoo. I've seen it happen with -j 16.

#4 Updated by Volker Fröhlich almost 10 years ago

  • Assignee deleted (nobody -)

The problem seems gone with version 1.7. I took multiple runs with up to 30 workers.

Can somebody confirm that?

#5 Updated by Volker Fröhlich over 9 years ago

  • Pull Request or Patch supplied set to No
  • Status changed from Open to Closed

As I mentioned before, I haven't seen that happen for quite some time with a high number of workers. Please re-open if I'm wrong.

Also available in: Atom PDF