@@ -249,14 +249,27 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
249
249
if len (p .CgoFiles )+ len (p .SwigFiles )+ len (p .SwigCXXFiles ) > 0 {
250
250
fmt .Fprintf (h , "cgo %q\n " , b .toolID ("cgo" ))
251
251
cppflags , cflags , cxxflags , fflags , ldflags , _ := b .CFlags (p )
252
- fmt .Fprintf (h , "CC=%q %q %q %q\n " , b .ccExe (), cppflags , cflags , ldflags )
252
+
253
+ ccExe := b .ccExe ()
254
+ fmt .Fprintf (h , "CC=%q %q %q %q\n " , ccExe , cppflags , cflags , ldflags )
255
+ if ccID , err := b .gccToolID (ccExe [0 ], "c" ); err == nil {
256
+ fmt .Fprintf (h , "CC ID=%q\n " , ccID )
257
+ }
253
258
if len (p .CXXFiles )+ len (p .SwigCXXFiles ) > 0 {
254
- fmt .Fprintf (h , "CXX=%q %q\n " , b .cxxExe (), cxxflags )
259
+ cxxExe := b .cxxExe ()
260
+ fmt .Fprintf (h , "CXX=%q %q\n " , cxxExe , cxxflags )
261
+ if cxxID , err := b .gccToolID (cxxExe [0 ], "c++" ); err == nil {
262
+ fmt .Fprintf (h , "CXX ID=%q\n " , cxxID )
263
+ }
255
264
}
256
265
if len (p .FFiles ) > 0 {
257
- fmt .Fprintf (h , "FC=%q %q\n " , b .fcExe (), fflags )
266
+ fcExe := b .fcExe ()
267
+ fmt .Fprintf (h , "FC=%q %q\n " , fcExe , fflags )
268
+ if fcID , err := b .gccToolID (fcExe [0 ], "f95" ); err == nil {
269
+ fmt .Fprintf (h , "FC ID=%q\n " , fcID )
270
+ }
258
271
}
259
- // TODO(rsc): Should we include the SWIG version or Fortran/GCC/G++/Objective-C compiler versions ?
272
+ // TODO(rsc): Should we include the SWIG version?
260
273
}
261
274
if p .Internal .CoverMode != "" {
262
275
fmt .Fprintf (h , "cover %q %q\n " , p .Internal .CoverMode , b .toolID ("cover" ))
@@ -316,15 +329,15 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
316
329
}
317
330
318
331
case "gccgo" :
319
- id , err := b .gccgoToolID (BuildToolchain .compiler (), "go" )
332
+ id , err := b .gccToolID (BuildToolchain .compiler (), "go" )
320
333
if err != nil {
321
334
base .Fatalf ("%v" , err )
322
335
}
323
336
fmt .Fprintf (h , "compile %s %q %q\n " , id , forcedGccgoflags , p .Internal .Gccgoflags )
324
337
fmt .Fprintf (h , "pkgpath %s\n " , gccgoPkgpath (p ))
325
338
fmt .Fprintf (h , "ar %q\n " , BuildToolchain .(gccgoToolchain ).ar ())
326
339
if len (p .SFiles ) > 0 {
327
- id , _ = b .gccgoToolID (BuildToolchain .compiler (), "assembler-with-cpp" )
340
+ id , _ = b .gccToolID (BuildToolchain .compiler (), "assembler-with-cpp" )
328
341
// Ignore error; different assembler versions
329
342
// are unlikely to make any difference anyhow.
330
343
fmt .Fprintf (h , "asm %q\n " , id )
@@ -1274,7 +1287,7 @@ func (b *Builder) printLinkerConfig(h io.Writer, p *load.Package) {
1274
1287
// Or external linker settings and flags?
1275
1288
1276
1289
case "gccgo" :
1277
- id , err := b .gccgoToolID (BuildToolchain .linker (), "go" )
1290
+ id , err := b .gccToolID (BuildToolchain .linker (), "go" )
1278
1291
if err != nil {
1279
1292
base .Fatalf ("%v" , err )
1280
1293
}
0 commit comments