Xcode 4 and XE13 parallel build problems

Xcode 4 and XE13 parallel build problems

I posted a longer description of the problem but I'm shortening it and combining my follow ups to here. 

The problem that I'm having is that I've got an Xcode project that contains 1000+ files and has multiple targets which include two parallelized versions of my app--a console version and a GUI version. I'm using icc to compile my C code and llvm for objective C code. The build settings include llvm as the compiler, compile according to file type, and a build rule that uses icc to compile C source files. This setup has worked with every version of icc until XE13. With XE13U1 and Xcode 4.3.3 to 4.5.1, I get intermittent compilation errors. When everything does compile, I always get linking errors about missing symbols. 

I've determined that the problem is that icc has trouble compiling multiple files concurrently. If I configure Xcode to compile only one file at a time, the compilation/linking problems go away. The problem is not with Xcode because I can switch back to XE12.1 and have no problem building my targets when compiling multiple files concurrently. 

FWIW, I don't use precompiled headers when building with icc because I could never get work to work properly (it recompiles my prefix file for each file). I've never had issues when using pch with llvm or gcc. 

3 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.

I should mention that configuring Xcode to only compile one file at a time is impractical... it takes forever to build. Limiting the concurrent compile tasks is not a target setting either, it's a global one and you have to restart Xcode whenever the setting is changed (defaults write com.apple.dt.Xcode IDEBuildOperationMaxNumberOfConcurrentCompileTasks 1). Currently, my options are to dedicate a Mountain Lion Mac running Xcode 4.5 and IDEBuildOperationMaxNumberOfConcurrentCompileTasks set to 1 for compiling just the MP version of my application or to stay on Xcode 4.3.3 (which means I can't upgrade to Mountain Lion which only works with Xcode >= 4.4).

This is not an issue with XE12.1 but it won't work with Xcode >= 4.4.

See first post.

Laisser un commentaire

Veuillez ouvrir une session pour ajouter un commentaire. Pas encore membre ? Rejoignez-nous dès aujourd’hui