Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-56003

ninja + icecream with changing compilers doesn't regen run-icecc.sh

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major - P3
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: 6.0 Desired
    • Component/s: None
    • Labels:
      None
    • Operating System:
      ALL

      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 Mathias Stearn is to leverage the method from the ninja module: https://github.com/RedBeard0531/mongo_module_ninja/blob/master/build.py#L358-L385

        Attachments

          Activity

            People

            Assignee:
            backlog-server-devplatform Backlog - Server Development Platform Team (SDP)
            Reporter:
            daniel.moody Daniel Moody
            Participants:
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Dates

              Created:
              Updated: