Details
-
Bug
-
Resolution: Fixed
-
Major - P3
-
None
-
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
Description
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