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

Ninja generator does not emit dependencies on template inputs

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.4.1, 4.7.0
    • Component/s: Build
    • Labels:
      None
    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Backport Requested:
      v4.4
    • Steps To Reproduce:
      Hide

      Generate a ninja file, build libwiredtiger.so, then edit wiredtiger.in, and rebuild libwiredtiger.so. Ninja will report that the file is up to date, when in fact SCons should have been re-invoked to regenerate wiredtiger.h from wiredtiger.in.

      Show
      Generate a ninja file, build libwiredtiger.so , then edit wiredtiger.in , and rebuild libwiredtiger.so . Ninja will report that the file is up to date, when in fact SCons should have been re-invoked to regenerate wiredtiger.h from wiredtiger.in .
    • Sprint:
      Dev Platform 2020-06-29

      Description

      The Ninja Generator has logic to fall back to SCons to produce generated sources that are produced via "template" like mechanisms that are available only to SCons, most notable SubstFile.

      The current ninja generator neglects to declare that these files depend on their inputs. As a result, if, say wiredtiger.h.in is itself updated, SCons will not be re-invoked by the generated Ninja file to produce an updated wiredtiger.h

      The fix is to include the source files as dependencies of the generated templates.

        Attachments

          Activity

            People

            Assignee:
            daniel.moody Daniel Moody
            Reporter:
            acm Andrew Morrow
            Participants:
            Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: