There seem to be a problem with com.ti.ccstudio.apps.projectBuild
application when executed within docker container. The eclipse process gets stuck for a couple of minutes (using 100% of a single CPU) after makefiles generation step but before the actual compilation. Effectively, firmware builds on docker container are unacceptably slower than direct host builds. It makes the Continuous Integration painful.
When the stuck process is forcefully terminated and then gmake is invoked manually - firmware builds correctly.
Example:
Host:
$ time /opt/ccstudio/ccs/eclipse/eclipse -noSplash -data ccs_workspace -application com.ti.ccstudio.apps.projectBuild -ccs.projects foo
...
32.40s user 1.73s system 441% cpu 7.729 total
Docker container:
$ time /opt/ccstudio/ccs/eclipse/eclipse -noSplash -data ccs_workspace -application com.ti.ccstudio.apps.projectBuild -ccs.projects foo
...
real 3m43.434s
user 1m51.703s
sys 2m22.361s
Technical details:
Tested on:
OS: Manjaro, Fedora 38, Fedora 39
CCS versions: 12.3, 12.6
Stuck process:
/opt/ti/ccs/eclipse/jre/bin/java -Dosgi.requiredJavaVersion=11 -Dosgi.dataAreaRequiresExplicitInit=true -Dorg.eclipse.swt.graphics.Resource.reportNonDisposed=true -Xms40m -Xmx512m --add-modules=ALL-SYSTEM -jar /opt/ti/ccs/eclipse//plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar -os linux -ws gtk -arch x86_64 -launcher /opt/ti/ccs/eclipse/eclipse -name Eclipse --launcher.library /opt/ti/ccs/eclipse//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.2.400.v20211117-0650/eclipse_11600.so -startup /opt/ti/ccs/eclipse//plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar --launcher.appendVmargs -exitdata 1 -data ccs_workspace -application com.ti.ccstudio.apps.projectBuild -ccs.projects foo -vm /opt/ti/ccs/eclipse/jre/bin/java -vmargs -Dosgi.requiredJavaVersion=11 -Dosgi.dataAreaRequiresExplicitInit=true -Dorg.eclipse.swt.graphics.Resource.reportNonDisposed=true -Xms40m -Xmx512m --add-modules=ALL-SYSTEM -jar /opt/ti/ccs/eclipse//plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar
Build stdout when the process gets stuck:
...
================================================================================
Pre processing...
================================================================================
Building...
**** Build of configuration Debug for project foo ****
/opt/ti/ccs/utils/bin/gmake -k -j 12 all -O