diff --git a/extract/extract.go b/extract/extract.go index 8d1bab08a..77b0f34bd 100644 --- a/extract/extract.go +++ b/extract/extract.go @@ -216,6 +216,19 @@ func genContent(dest, importPath, license string, p *types.Package, skip map[str buildTags += ",!windows,!nacl,!plan9" } + if importPath == "syscall" { + // As per https://golang.org/cmd/go/#hdr-Build_constraints, + // using GOOS=android also matches tags and files for GOOS=linux, + // so exclude it explicitly to avoid collisions (issue #843). + // Also using GOOS=illumos matches tags and files for GOOS=solaris. + switch os.Getenv("GOOS") { + case "android": + buildTags += ",!linux" + case "illumos": + buildTags += ",!solaris" + } + } + b := new(bytes.Buffer) data := map[string]interface{}{ "Dest": dest, diff --git a/interp/build.go b/interp/build.go index 1f28f1fc6..c1a5e0da5 100644 --- a/interp/build.go +++ b/interp/build.go @@ -162,6 +162,7 @@ var knownOs = map[string]bool{ "darwin": true, "dragonfly": true, "freebsd": true, + "illumos": true, "js": true, "linux": true, "nacl": true, diff --git a/stdlib/syscall/go1_14_syscall_android_386.go b/stdlib/syscall/go1_14_syscall_android_386.go index 7951d3540..843de607e 100644 --- a/stdlib/syscall/go1_14_syscall_android_386.go +++ b/stdlib/syscall/go1_14_syscall_android_386.go @@ -1,6 +1,6 @@ // Code generated by 'github.com/containous/yaegi/extract syscall'. DO NOT EDIT. -// +build go1.14,!go1.15 +// +build go1.14,!go1.15,!linux package syscall diff --git a/stdlib/syscall/go1_14_syscall_android_amd64.go b/stdlib/syscall/go1_14_syscall_android_amd64.go index 67d3f6dc2..7343664ed 100644 --- a/stdlib/syscall/go1_14_syscall_android_amd64.go +++ b/stdlib/syscall/go1_14_syscall_android_amd64.go @@ -1,6 +1,6 @@ // Code generated by 'github.com/containous/yaegi/extract syscall'. DO NOT EDIT. -// +build go1.14,!go1.15 +// +build go1.14,!go1.15,!linux package syscall diff --git a/stdlib/syscall/go1_14_syscall_android_arm.go b/stdlib/syscall/go1_14_syscall_android_arm.go index bee89fa7a..a2d35e80b 100644 --- a/stdlib/syscall/go1_14_syscall_android_arm.go +++ b/stdlib/syscall/go1_14_syscall_android_arm.go @@ -1,6 +1,6 @@ // Code generated by 'github.com/containous/yaegi/extract syscall'. DO NOT EDIT. -// +build go1.14,!go1.15 +// +build go1.14,!go1.15,!linux package syscall diff --git a/stdlib/syscall/go1_14_syscall_android_arm64.go b/stdlib/syscall/go1_14_syscall_android_arm64.go index 13ea265aa..997ab256c 100644 --- a/stdlib/syscall/go1_14_syscall_android_arm64.go +++ b/stdlib/syscall/go1_14_syscall_android_arm64.go @@ -1,6 +1,6 @@ // Code generated by 'github.com/containous/yaegi/extract syscall'. DO NOT EDIT. -// +build go1.14,!go1.15 +// +build go1.14,!go1.15,!linux package syscall diff --git a/stdlib/syscall/go1_14_syscall_illumos_amd64.go b/stdlib/syscall/go1_14_syscall_illumos_amd64.go index bb2d787a8..d5f74426a 100644 --- a/stdlib/syscall/go1_14_syscall_illumos_amd64.go +++ b/stdlib/syscall/go1_14_syscall_illumos_amd64.go @@ -1,6 +1,6 @@ // Code generated by 'github.com/containous/yaegi/extract syscall'. DO NOT EDIT. -// +build go1.14,!go1.15 +// +build go1.14,!go1.15,!solaris package syscall diff --git a/stdlib/syscall/go1_15_syscall_android_386.go b/stdlib/syscall/go1_15_syscall_android_386.go index e5734a237..95402dcfe 100644 --- a/stdlib/syscall/go1_15_syscall_android_386.go +++ b/stdlib/syscall/go1_15_syscall_android_386.go @@ -1,6 +1,6 @@ // Code generated by 'github.com/containous/yaegi/extract syscall'. DO NOT EDIT. -// +build go1.15,!go1.16 +// +build go1.15,!go1.16,!linux package syscall diff --git a/stdlib/syscall/go1_15_syscall_android_amd64.go b/stdlib/syscall/go1_15_syscall_android_amd64.go index df5f1bb78..ef40f1d29 100644 --- a/stdlib/syscall/go1_15_syscall_android_amd64.go +++ b/stdlib/syscall/go1_15_syscall_android_amd64.go @@ -1,6 +1,6 @@ // Code generated by 'github.com/containous/yaegi/extract syscall'. DO NOT EDIT. -// +build go1.15,!go1.16 +// +build go1.15,!go1.16,!linux package syscall diff --git a/stdlib/syscall/go1_15_syscall_android_arm.go b/stdlib/syscall/go1_15_syscall_android_arm.go index 96b454b41..c4171eebe 100644 --- a/stdlib/syscall/go1_15_syscall_android_arm.go +++ b/stdlib/syscall/go1_15_syscall_android_arm.go @@ -1,6 +1,6 @@ // Code generated by 'github.com/containous/yaegi/extract syscall'. DO NOT EDIT. -// +build go1.15,!go1.16 +// +build go1.15,!go1.16,!linux package syscall diff --git a/stdlib/syscall/go1_15_syscall_android_arm64.go b/stdlib/syscall/go1_15_syscall_android_arm64.go index 82a382fc9..6ae0156ec 100644 --- a/stdlib/syscall/go1_15_syscall_android_arm64.go +++ b/stdlib/syscall/go1_15_syscall_android_arm64.go @@ -1,6 +1,6 @@ // Code generated by 'github.com/containous/yaegi/extract syscall'. DO NOT EDIT. -// +build go1.15,!go1.16 +// +build go1.15,!go1.16,!linux package syscall diff --git a/stdlib/syscall/go1_15_syscall_illumos_amd64.go b/stdlib/syscall/go1_15_syscall_illumos_amd64.go index 27c1ca08a..e5179a1bf 100644 --- a/stdlib/syscall/go1_15_syscall_illumos_amd64.go +++ b/stdlib/syscall/go1_15_syscall_illumos_amd64.go @@ -1,6 +1,6 @@ // Code generated by 'github.com/containous/yaegi/extract syscall'. DO NOT EDIT. -// +build go1.15,!go1.16 +// +build go1.15,!go1.16,!solaris package syscall