https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121963

            Bug ID: 121963
           Summary: Make it possible to change the location of gcm.cache
                    dir
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jussi.pakkanen at mailbox dot org
  Target Milestone: ---

A longer version of this issue can be found in this blog post:

https://nibblestew.blogspot.com/2025/09/trying-out-import-std.html

Assume you have a project A and project B. The two are created by different
people and A uses B by compiling it as part of its own build (as a "subproject"
basically).

The build is done with Ninja (probably the most common backend). Ninja has the
property that it never recurses into subdirs, instead all command invocations
are done from the same directory, typically the root of the build tree.

This means that both of these projects output their modules in the same
directory. If they both have a module with the same name (e.g. "utils"), they
will clash.


Even more annoyingly, if both of them use "import std", but have different
flags for it (e.g. the C++ language version), they will clash.

The only real ways of changing this that I can see are either to officially
state that multiple modules of the same name within a single build tree are
forbidden or have some sort of a way to specify the gcm.cache directory and
have an include flag for it (I think Fortran uses -J for this).

Reply via email to