Parallel Build

Asked by George Waters on 2019-11-06

Upon updating to the newest release of the Embedded Toolchain (Version 9-2019-q4-major), I found that the toolchain no longer runs in parallel when building on a Mac. I see in the '' script the JOBS environment variable is now hardcoded to 1. The code comment there states "Disable parallel build for mac as we will randomly run into 'Permission Denied' issue." This code comment was also present on 8-2019-q3-update but wasn't yet implemented.

I have built 8-2019-q3-update and have not seen this issue at all personally. I realize it could depend on a variety of factors, but I am curious why the decision was made to implement this as something hardcoded? I am now trying to build the new version and it is taking much longer. I was just hoping to get some more info on why this change was made in such a permanent way. Thanks.

Question information

English Edit question
GNU Arm Embedded Toolchain Edit question
No assignee Edit question
Solved by:
Joey Ye
Last query:
Last reply:
Best Joey Ye (jinyun-ye) said : #1

George, thanks for pointing out this change. Setting JOBS=1 was just to workaround the random build issue. With the belief that JOBS>1 will introduce instability to our daily build process, we just hardcoded it. You can overwrite it with job numbers you intended, as long as you won't experience the same issue on your machine.

George Waters (dunkmann00) said : #2

Thanks for that response Joey. I was actually also having problems when trying to build the prior version (8-2019-q3) that seemed related to the concurrency. I found a bug report on gcc where it seems there is a bug with Apple's APFS filesystem. (Link to that bug report: I figured I would try to upgrade to the new macOS Catalina to see if it was still happening. Since having done that I was able to successfully build the prior version about 5 times and I've built the new version twice, all with no unsuccessful builds. So not sure if this is the same problem, but I figured I'd share this in case it helps you at least identify why you have been getting random errors with your builds.

George Waters (dunkmann00) said : #3

Thanks Joey Ye, that solved my question.