codegenArg = "-fPIC"
} else {
switch platform {
- case "linux/amd64", "linux/arm", "linux/arm64",
+ case "linux/amd64", "linux/arm", "linux/arm64", "linux/386",
"android/amd64", "android/arm":
codegenArg = "-shared"
case "darwin/amd64":
}
*mode = BuildmodeCArchive
case "c-shared":
- if goarch != "amd64" && goarch != "arm" && goarch != "arm64" {
+ switch goarch {
+ case "386", "amd64", "arm", "arm64":
+ default:
return badmode()
}
*mode = BuildmodeCShared
// should never be called directly.
// only diagnose the direct caller.
// TODO(mwhudson): actually think about this.
- if depth == 1 && s.Type != obj.SXREF && !DynlinkingGo() && Buildmode != BuildmodePIE {
+ if depth == 1 && s.Type != obj.SXREF && !DynlinkingGo() &&
+ Buildmode != BuildmodePIE && Buildmode != BuildmodeCShared {
Diag("call to external function %s", s.Name)
}
return -1