diff options
Diffstat (limited to 'libgo/go/cmd/go/internal/work/gccgo.go')
-rw-r--r-- | libgo/go/cmd/go/internal/work/gccgo.go | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/libgo/go/cmd/go/internal/work/gccgo.go b/libgo/go/cmd/go/internal/work/gccgo.go index 87b3f5facd9..f6fa17da85c 100644 --- a/libgo/go/cmd/go/internal/work/gccgo.go +++ b/libgo/go/cmd/go/internal/work/gccgo.go @@ -91,6 +91,10 @@ func (tools gccgoToolchain) gc(b *Builder, a *Action, archive string, importcfg args = append(args, "-I", root) } } + if cfg.BuildTrimpath && b.gccSupportsFlag(args[:1], "-ffile-prefix-map=a=b") { + args = append(args, "-ffile-prefix-map="+base.Cwd+"=.") + args = append(args, "-ffile-prefix-map="+b.WorkDir+"=/tmp/go-build") + } args = append(args, a.Package.Internal.Gccgoflags...) for _, f := range gofiles { args = append(args, mkAbs(p.Dir, f)) @@ -354,7 +358,7 @@ func (tools gccgoToolchain) link(b *Builder, root *Action, out, importcfg string } if haveShlib[filepath.Base(a.Target)] { - // This is a shared library we want to link againt. + // This is a shared library we want to link against. if !addedShlib[a.Target] { shlibs = append(shlibs, a.Target) addedShlib[a.Target] = true @@ -560,7 +564,10 @@ func (tools gccgoToolchain) cc(b *Builder, a *Action, ofile, cfile string) error defs = append(defs, "-fsplit-stack") } defs = tools.maybePIC(defs) - if b.gccSupportsFlag(compiler, "-fdebug-prefix-map=a=b") { + if b.gccSupportsFlag(compiler, "-ffile-prefix-map=a=b") { + defs = append(defs, "-ffile-prefix-map="+base.Cwd+"=.") + defs = append(defs, "-ffile-prefix-map="+b.WorkDir+"=/tmp/go-build") + } else if b.gccSupportsFlag(compiler, "-fdebug-prefix-map=a=b") { defs = append(defs, "-fdebug-prefix-map="+b.WorkDir+"=/tmp/go-build") } if b.gccSupportsFlag(compiler, "-gno-record-gcc-switches") { |