-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Fully Compatible
-
ALL
-
v5.3, v5.0, v4.4
-
-
Dev Platform 2021-09-06, Dev Platform 2021-09-20, Dev Platform 2021-10-04, Dev Platform 2021-10-18, Dev Platform 2022-01-10, Dev Platform 2022-01-24, Dev Platform 2022-02-07, Dev Platform 2022-03-07, Dev Platform 2022-03-21, Dev Platform 2022-04-04
when generating multiple ninja files with different compilers in each, the run-icecc.sh script has no input file for ninja to check to see if it needs to be rebuilt.
Below is an example ninja edge of how run-icecc.sh is built:
build build/aib_make_archive.py build/cached/mongo/config.h $ build/cached/mongo/util/version_constants.h build/cached/third_party/wiredtiger/wiredtiger.h $ build/scons/icecream/run-icecc.sh: TEMPLATE src/mongo/config.h.in $ src/mongo/util/version_constants.h.in src/third_party/wiredtiger/src/include/wiredtiger.in | $ /usr/bin/icecc /opt/mongodbtoolchain/v3/bin/gcc /opt/mongodbtoolchain/v3/bin/g++
Here the compiler is an input to run-icecc.sh, but that is not enough because each ninja file will have a compiler with an unchanging mtime so run-icecc.sh will not be regenerated.
A proposed solution from redbeard0531 is to leverage the method from the ninja module: https://github.com/RedBeard0531/mongo_module_ninja/blob/master/build.py#L358-L385