Skip to content

cmd/link: internal linking for GOOS=linux, -buildmode=plugin #18157

Open
@urso

Description

@urso

Please answer these questions before submitting your issue. Thanks!

What version of Go are you using (go version)?

(1.8beta1)
go version devel +41908a5 Thu Dec 1 02:54:21 2016 +0000 darwin/amd64

What operating system and processor architecture are you using (go env)?

Darwin:

GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/urso/.gvm/pkgsets/go1.8beta1/global"
GORACE=""
GOROOT="/Users/urso/.gvm/gos/go1.8beta1"
GOTOOLDIR="/Users/urso/.gvm/gos/go1.8beta1/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/2s/38f_b6sj0mn6_14km12vyq0r0000gn/T/go-build255645567=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"
PKG_CONFIG="pkg-config"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"

Linux:

GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/urso/.gvm/pkgsets/go1.8beta1/global"
GORACE=""
GOROOT="/home/urso/.gvm/gos/go1.8beta1"
GOTOOLDIR="/home/urso/.gvm/gos/go1.8beta1/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build240993252=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
PKG_CONFIG="pkg-config"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"

What did you do?

Try to cross compile the plugin by setting GOOS=linux (darwin)

package main

import "fmt"

func F() { fmt.Println("Hello World!") }

func main() {}

What did you expect to see?

plugin being build

What did you see instead?

Darwin:

$ GOOS=linux go build -buildmode=plugin plugin.go
# command-line-arguments
warning: unable to find runtime/cgo.a
/Users/urso/.gvm/gos/go1.8beta1/pkg/tool/darwin_amd64/link: running clang failed: exit status 1
ld: unknown option: -z
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Linux:

$ GOOS=darwin go build -buildmode=plugin plugin.go
# command-line-arguments
warning: unable to find runtime/cgo.a
/home/urso/.gvm/gos/go1.8beta1/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/usr/bin/ld: -f may not be used without -shared
collect2: error: ld returned 1 exit status

Metadata

Metadata

Assignees

No one assigned

    Labels

    compiler/runtimeIssues related to the Go compiler and/or runtime.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions