From 2ed9e0d1ed4409d6fa2549456b2b29facec9e323 Mon Sep 17 00:00:00 2001 From: joyhope Date: Tue, 17 Apr 2018 22:16:10 +0800 Subject: [PATCH 1/4] fix 1.9.4 cross compile problem --- gc.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gc.go b/gc.go index 79fda59..9c0e5f7 100644 --- a/gc.go +++ b/gc.go @@ -126,6 +126,13 @@ func (t *gcToolchain) Gc(pkg *Package, files []string) error { for _, d := range pkg.includePaths() { args = append(args, "-I", d) } + + if pkg.Goroot { + // runtime compiles with a special gc flag to emit + // additional reflect type data. + args = append(args, "-std") + } + if pkg.Goroot && pkg.ImportPath == "runtime" { // runtime compiles with a special gc flag to emit // additional reflect type data. From c4ed1cd41d6ea615aea1abc272c3d26327da91b3 Mon Sep 17 00:00:00 2001 From: joyhope Date: Wed, 18 Apr 2018 10:00:38 +0800 Subject: [PATCH 2/4] compatible with old golang version --- gc.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gc.go b/gc.go index 9c0e5f7..2424231 100644 --- a/gc.go +++ b/gc.go @@ -127,9 +127,8 @@ func (t *gcToolchain) Gc(pkg *Package, files []string) error { args = append(args, "-I", d) } - if pkg.Goroot { - // runtime compiles with a special gc flag to emit - // additional reflect type data. + if (version.Version > 1.8) && pkg.Goroot { + // stdlib with special std flag args = append(args, "-std") } From 1931a4b5abdaf9f441246c5e5604b7575441cfc7 Mon Sep 17 00:00:00 2001 From: joyhope Date: Wed, 18 Apr 2018 10:49:47 +0800 Subject: [PATCH 3/4] compatible with old golang version --- internal/version/version16.go | 2 +- internal/version/version17.go | 2 +- internal/version/version18.go | 1 + internal/version/version19.go | 7 +++++++ 4 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 internal/version/version19.go diff --git a/internal/version/version16.go b/internal/version/version16.go index db590d7..bb311da 100644 --- a/internal/version/version16.go +++ b/internal/version/version16.go @@ -1,5 +1,5 @@ // +build go1.6 -// +build !go1.7,!go1.8 +// +build !go1.7,!go1.8,!go1.9 package version diff --git a/internal/version/version17.go b/internal/version/version17.go index 0b445e2..9706029 100644 --- a/internal/version/version17.go +++ b/internal/version/version17.go @@ -1,5 +1,5 @@ // +build go1.7 -// +build !go1.8 +// +build !go1.8,!go1.9 package version diff --git a/internal/version/version18.go b/internal/version/version18.go index 65af048..3b29a76 100644 --- a/internal/version/version18.go +++ b/internal/version/version18.go @@ -1,4 +1,5 @@ // +build go1.8 +// +build !go1.9 package version diff --git a/internal/version/version19.go b/internal/version/version19.go new file mode 100644 index 0000000..b96ad71 --- /dev/null +++ b/internal/version/version19.go @@ -0,0 +1,7 @@ +// +build go1.9,go1.10 + +package version + +const ( + Version = 1.9 +) From 1d6db67f1883384123549d774fb40562b980615f Mon Sep 17 00:00:00 2001 From: joyhope Date: Wed, 18 Apr 2018 10:53:49 +0800 Subject: [PATCH 4/4] compaitble with 1.10.x --- internal/version/version16.go | 2 +- internal/version/version17.go | 2 +- internal/version/version18.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/version/version16.go b/internal/version/version16.go index bb311da..b966c78 100644 --- a/internal/version/version16.go +++ b/internal/version/version16.go @@ -1,5 +1,5 @@ // +build go1.6 -// +build !go1.7,!go1.8,!go1.9 +// +build !go1.7,!go1.8,!go1.9,!go1.10 package version diff --git a/internal/version/version17.go b/internal/version/version17.go index 9706029..3c5471f 100644 --- a/internal/version/version17.go +++ b/internal/version/version17.go @@ -1,5 +1,5 @@ // +build go1.7 -// +build !go1.8,!go1.9 +// +build !go1.8,!go1.9,!go1.10 package version diff --git a/internal/version/version18.go b/internal/version/version18.go index 3b29a76..1bef253 100644 --- a/internal/version/version18.go +++ b/internal/version/version18.go @@ -1,5 +1,5 @@ // +build go1.8 -// +build !go1.9 +// +build !go1.9,!go1.10 package version