In CL 380915 we observed that libraries in GOROOT contain the literal string $GOROOT instead of their absolute paths, even when -trimpath is not set.
As a result, we should (theoretically) compile the same bytes for those libraries regardless of whether -trimpath is set. We can therefore omit -trimpath from the cache key, allowing object files already in the cache to be reused in more cases.
We should add a script test that verifies that the library object files really don't depend on the -trimpath flag, make the flags passed to the compiler ignore cfg.BuildTrimpath for those libraries, and then update cmd/go/internal/work to omit it from the cache key.
(Note that we cannot omit it from the cache key for executables, since those are stamped with the actual GOROOT or GOROOT_FINAL during linking.)
The text was updated successfully, but these errors were encountered: