Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmd/go: unexpected undefined symbols in imported vendored package #20271

Closed
xuqingsz opened this issue May 7, 2017 · 37 comments
Closed

cmd/go: unexpected undefined symbols in imported vendored package #20271

xuqingsz opened this issue May 7, 2017 · 37 comments
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Milestone

Comments

@xuqingsz
Copy link

xuqingsz commented May 7, 2017

Please answer these questions before submitting your issue. Thanks!

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

go version go1.7.3 linux/amd64

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

GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/opt/gopath"
GORACE=""
GOROOT="/opt/go"
GOTOOLDIR="/opt/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build831334660=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"

What did you do?

Source of the program: https://github.com/hyperledger/fabric
Working dir: /opt/gopath/src/github.com/hyperledger/fabric
Main program to build: /opt/gopath/src/github.com/hyperledger/fabric/peer/main.go

Build command:
CGO_ENABLED=0 GOBIN=/opt/gopath/bin go install -x -ldflags " -X github.com/hyperledger/fabric/common/metadata.Version=1.0.0-snapshot-d6fbfcf -X github.com/hyperledger/fabric/common/metadata.BaseVersion=0.3.0 -X github.com/hyperledger/fabric/common/metadata.BaseDockerLabel=org.hyperledger.fabric -X github.com/hyperledger/fabric/common/metadata.DockerNamespace=hyperledger -X github.com/hyperledger/fabric/common/metadata.BaseDockerNamespace=hyperledger -linkmode external -extldflags -static -lpthread" peer

What did you expect to see?

Binary built in /opt/gopath/bin

What did you see instead?

It shows on the console that series of .a files were built and moved to /opt/gopath/pkg/linux_amd64/
Eventually program stopped and no binary was built.
This is true regardless CGO_ENABLED was set to 0 or 1.

Somehow the program thoughts it was done, without linking the object files and building the binary?
Any other debugging measures that I can use to look further into it?
Any way to do it manually with what I have?

@josharian
Copy link
Contributor

Can you provide the full output of the command?

@xuqingsz
Copy link
Author

xuqingsz commented May 7, 2017

@josharian Not sure how literally you meant by 'full'. It is very long, but let me know if you meant it. Here is the last couple of lines:

/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/core/comm.a -trimpath $WORK -p github.com/hyperledger/fabric/core/comm -complete -buildid 5121bd1695e6d2ac9bf33449c1103e442a22e671 -importmap github.com/op/go-logging=github.com/hyperledger/fabric/vendor/github.com/op/go-logging -importmap github.com/spf13/viper=github.com/hyperledger/fabric/vendor/github.com/spf13/viper -importmap google.golang.org/grpc=github.com/hyperledger/fabric/vendor/google.golang.org/grpc -importmap google.golang.org/grpc/credentials=github.com/hyperledger/fabric/vendor/google.golang.org/grpc/credentials -importmap google.golang.org/grpc/grpclog=github.com/hyperledger/fabric/vendor/google.golang.org/grpc/grpclog -D _/opt/gopath/src/github.com/hyperledger/fabric/core/comm -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./config.go ./connection.go ./server.go
mkdir -p $WORK/github.com/hyperledger/fabric/protos/gossip/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/protos/
cd /opt/gopath/src/github.com/hyperledger/fabric/protos/gossip
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/protos/gossip.a -trimpath $WORK -p github.com/hyperledger/fabric/protos/gossip -complete -buildid 7ffde35afa7dfa993da3cb3f866f9fbf149b68db -importmap github.com/golang/protobuf/proto=github.com/hyperledger/fabric/vendor/github.com/golang/protobuf/proto -importmap golang.org/x/net/context=github.com/hyperledger/fabric/vendor/golang.org/x/net/context -importmap google.golang.org/grpc=github.com/hyperledger/fabric/vendor/google.golang.org/grpc -D _/opt/gopath/src/github.com/hyperledger/fabric/protos/gossip -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./extensions.go ./message.pb.go
cp $WORK/github.com/hyperledger/fabric/core/comm.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/core/comm.a
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/protos/
cp $WORK/github.com/hyperledger/fabric/protos/gossip.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/protos/gossip.a
mkdir -p $WORK/github.com/hyperledger/fabric/gossip/util/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/gossip/
cd /opt/gopath/src/github.com/hyperledger/fabric/gossip/util
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/gossip/util.a -trimpath $WORK -p github.com/hyperledger/fabric/gossip/util -complete -buildid 14d2a436a53979024e9ede386c5560c03d6f5e34 -importmap github.com/op/go-logging=github.com/hyperledger/fabric/vendor/github.com/op/go-logging -importmap github.com/spf13/viper=github.com/hyperledger/fabric/vendor/github.com/spf13/viper -importmap google.golang.org/grpc/grpclog=github.com/hyperledger/fabric/vendor/google.golang.org/grpc/grpclog -D _/opt/gopath/src/github.com/hyperledger/fabric/gossip/util -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./logging.go ./misc.go ./msgs.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/gossip/
cp $WORK/github.com/hyperledger/fabric/gossip/util.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/gossip/util.a
mkdir -p $WORK/github.com/hyperledger/fabric/gossip/discovery/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/gossip/gossip/algo/_obj/
cd /opt/gopath/src/github.com/hyperledger/fabric/gossip/discovery
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/gossip/discovery.a -trimpath $WORK -p github.com/hyperledger/fabric/gossip/discovery -complete -buildid 6535f01870df543ea8cec2cffe653658a61ea34d -importmap github.com/op/go-logging=github.com/hyperledger/fabric/vendor/github.com/op/go-logging -importmap github.com/spf13/viper=github.com/hyperledger/fabric/vendor/github.com/spf13/viper -D _/opt/gopath/src/github.com/hyperledger/fabric/gossip/discovery -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./discovery.go ./discovery_impl.go
mkdir -p $WORK/github.com/hyperledger/fabric/gossip/gossip/
cd /opt/gopath/src/github.com/hyperledger/fabric/gossip/gossip/algo
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/gossip/gossip/algo.a -trimpath $WORK -p github.com/hyperledger/fabric/gossip/gossip/algo -complete -buildid db8584301d491ffaeba59be11cde822034f63997 -importmap github.com/spf13/viper=github.com/hyperledger/fabric/vendor/github.com/spf13/viper -D _/opt/gopath/src/github.com/hyperledger/fabric/gossip/gossip/algo -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./pull.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/gossip/gossip/
cp $WORK/github.com/hyperledger/fabric/gossip/gossip/algo.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/gossip/gossip/algo.a
cp $WORK/github.com/hyperledger/fabric/gossip/discovery.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/gossip/discovery.a
mkdir -p $WORK/github.com/hyperledger/fabric/gossip/election/_obj/
cd /opt/gopath/src/github.com/hyperledger/fabric/gossip/election
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/gossip/election.a -trimpath $WORK -p github.com/hyperledger/fabric/gossip/election -complete -buildid c11839c6800baf6d808aa388ab90455c8eea2808 -importmap github.com/op/go-logging=github.com/hyperledger/fabric/vendor/github.com/op/go-logging -importmap github.com/spf13/viper=github.com/hyperledger/fabric/vendor/github.com/spf13/viper -D _/opt/gopath/src/github.com/hyperledger/fabric/gossip/election -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./adapter.go ./election.go
cp $WORK/github.com/hyperledger/fabric/gossip/election.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/gossip/election.a  

<--- and it stopped here and gave me back the prompt

@davecheney
Copy link
Contributor

davecheney commented May 7, 2017 via email

@josharian
Copy link
Contributor

I really meant full. :) If it is long, you can put it in a gist and post a link to it here. Thanks!

@xuqingsz
Copy link
Author

xuqingsz commented May 7, 2017

@davecheney
Yes my working dir is at $GOPATH/src/github.com/hyperledger/fabric. I believe peer or ./peer would do the same for me? I did try both and results seem to be the same.

Here is the full log. This is with '-x' flag (cc @josharian )

WORK=/tmp/go-build946072467
mkdir -p $WORK/net/_obj/
mkdir -p $WORK/
cd /opt/go/src/net
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/net.a -trimpath $WORK -p net -buildid c8f7cec73712afe17c8ea0c103e2cc4c96415d32 -D _/opt/go/src/net -I $WORK -pack ./addrselect.go ./cgo_stub.go ./conf.go ./dial.go ./dnsclient.go ./dnsclient_unix.go ./dnsconfig_unix.go ./dnsmsg.go ./fd_mutex.go ./fd_poll_runtime.go ./fd_posix.go ./fd_unix.go ./file.go ./file_unix.go ./hook.go ./hook_cloexec.go ./hook_unix.go ./hosts.go ./interface.go ./interface_linux.go ./ip.go ./iprawsock.go ./iprawsock_posix.go ./ipsock.go ./ipsock_posix.go ./lookup.go ./lookup_unix.go ./mac.go ./net.go ./nss.go ./parse.go ./pipe.go ./port.go ./port_unix.go ./sendfile_linux.go ./sock_cloexec.go ./sock_linux.go ./sock_posix.go ./sockopt_linux.go ./sockopt_posix.go ./sockoptip_linux.go ./sockoptip_posix.go ./tcpsock.go ./tcpsock_posix.go ./tcpsockopt_posix.go ./tcpsockopt_unix.go ./udpsock.go ./udpsock_posix.go ./unixsock.go ./unixsock_posix.go
mkdir -p $WORK/github.com/BurntSushi/toml/_obj/
mkdir -p $WORK/github.com/BurntSushi/
cd /opt/gopath/src/github.com/BurntSushi/toml
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/BurntSushi/toml.a -trimpath $WORK -p github.com/BurntSushi/toml -complete -buildid cf28960e0e420c7ad5031abe74c63b996c9b027c -D _/opt/gopath/src/github.com/BurntSushi/toml -I $WORK -pack ./decode.go ./decode_meta.go ./doc.go ./encode.go ./encoding_types.go ./lex.go ./parse.go ./type_check.go ./type_fields.go
mkdir -p $WORK/github.com/kr/text/_obj/
mkdir -p $WORK/github.com/kr/
mkdir -p $WORK/github.com/magiconair/properties/_obj/
mkdir -p $WORK/github.com/magiconair/
cd /opt/gopath/src/github.com/magiconair/properties
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/magiconair/properties.a -trimpath $WORK -p github.com/magiconair/properties -complete -buildid 48b1874dda532c7216f4ba390fab9a656955ae0c -D _/opt/gopath/src/github.com/magiconair/properties -I $WORK -pack ./doc.go ./lex.go ./load.go ./parser.go ./properties.go ./rangecheck.go
cd /opt/gopath/src/github.com/kr/text
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/kr/text.a -trimpath $WORK -p github.com/kr/text -complete -buildid 379366e6d88f7399db9a1fe6365c4af5683d2ef1 -D _/opt/gopath/src/github.com/kr/text -I $WORK -pack ./doc.go ./indent.go ./wrap.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/kr/
cp $WORK/github.com/kr/text.a /opt/gopath/pkg/linux_amd64/github.com/kr/text.a
mkdir -p $WORK/github.com/kr/pretty/_obj/
cd /opt/gopath/src/github.com/kr/pretty
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/kr/pretty.a -trimpath $WORK -p github.com/kr/pretty -complete -buildid 47709b285ad09f49c2e61ddb28a784b0a3e0805d -D _/opt/gopath/src/github.com/kr/pretty -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./diff.go ./formatter.go ./pretty.go ./zero.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/magiconair/
cp $WORK/github.com/magiconair/properties.a /opt/gopath/pkg/linux_amd64/github.com/magiconair/properties.a
mkdir -p $WORK/github.com/mitchellh/mapstructure/_obj/
mkdir -p $WORK/github.com/mitchellh/
cd /opt/gopath/src/github.com/mitchellh/mapstructure
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/mitchellh/mapstructure.a -trimpath $WORK -p github.com/mitchellh/mapstructure -complete -buildid a0cc954331ce4bf7739ebff4dcfd402bf9d6034a -D _/opt/gopath/src/github.com/mitchellh/mapstructure -I $WORK -pack ./decode_hooks.go ./error.go ./mapstructure.go
cp $WORK/github.com/kr/pretty.a /opt/gopath/pkg/linux_amd64/github.com/kr/pretty.a
mkdir -p $WORK/github.com/spf13/jwalterweatherman/_obj/
mkdir -p $WORK/github.com/spf13/
cd /opt/gopath/src/github.com/spf13/jwalterweatherman
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/spf13/jwalterweatherman.a -trimpath $WORK -p github.com/spf13/jwalterweatherman -complete -buildid 3c33fe5b6728cd6628fa241d41331cf479b9c4ca -D _/opt/gopath/src/github.com/spf13/jwalterweatherman -I $WORK -pack ./thatswhyyoualwaysleaveanote.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/spf13/
cp $WORK/github.com/spf13/jwalterweatherman.a /opt/gopath/pkg/linux_amd64/github.com/spf13/jwalterweatherman.a
mkdir -p $WORK/github.com/spf13/cast/_obj/
cd /opt/gopath/src/github.com/spf13/cast
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/spf13/cast.a -trimpath $WORK -p github.com/spf13/cast -complete -buildid 236aa5802e366dc3994d3bd32225d4f04dccd743 -D _/opt/gopath/src/github.com/spf13/cast -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./cast.go ./caste.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/mitchellh/
cp $WORK/github.com/mitchellh/mapstructure.a /opt/gopath/pkg/linux_amd64/github.com/mitchellh/mapstructure.a
mkdir -p $WORK/gopkg.in/yaml.v2/_obj/
mkdir -p $WORK/gopkg.in/
cd /opt/gopath/src/gopkg.in/yaml.v2
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/gopkg.in/yaml.v2.a -trimpath $WORK -p gopkg.in/yaml.v2 -complete -buildid 6e88bd60c7c8c14e188489d0cfdd31d111d142d0 -D _/opt/gopath/src/gopkg.in/yaml.v2 -I $WORK -pack ./apic.go ./decode.go ./emitterc.go ./encode.go ./parserc.go ./readerc.go ./resolve.go ./scannerc.go ./sorter.go ./writerc.go ./yaml.go ./yamlh.go ./yamlprivateh.go
cp $WORK/github.com/spf13/cast.a /opt/gopath/pkg/linux_amd64/github.com/spf13/cast.a
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/BurntSushi/
cp $WORK/github.com/BurntSushi/toml.a /opt/gopath/pkg/linux_amd64/github.com/BurntSushi/toml.a
mkdir -p /opt/go/pkg/linux_amd64/
mkdir -p /opt/gopath/pkg/linux_amd64/gopkg.in/
cp $WORK/gopkg.in/yaml.v2.a /opt/gopath/pkg/linux_amd64/gopkg.in/yaml.v2.a
mv $WORK/net.a /opt/go/pkg/linux_amd64/net.a
mkdir -p $WORK/log/syslog/_obj/
mkdir -p $WORK/log/
cd /opt/go/src/log/syslog
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/log/syslog.a -trimpath $WORK -p log/syslog -complete -buildid 5cc46b288e07b2fbf72f519cace6e7f325632e3e -D _/opt/go/src/log/syslog -I $WORK -pack ./doc.go ./syslog.go ./syslog_unix.go
mkdir -p $WORK/github.com/hyperledger/fabric/vendor/github.com/spf13/pflag/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/vendor/github.com/spf13/
mkdir -p $WORK/crypto/x509/_obj/
mkdir -p $WORK/crypto/
mkdir -p $WORK/net/textproto/_obj/
cd /opt/go/src/crypto/x509
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/crypto/x509.a -trimpath $WORK -p crypto/x509 -complete -buildid 2b5487e2aae68804775cc2cf375a46bf1e05aa0a -D _/opt/go/src/crypto/x509 -I $WORK -pack ./cert_pool.go ./pem_decrypt.go ./pkcs1.go ./pkcs8.go ./root.go ./root_linux.go ./root_unix.go ./sec1.go ./verify.go ./x509.go
cd /opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/spf13/pflag
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/vendor/github.com/spf13/pflag.a -trimpath $WORK -p github.com/hyperledger/fabric/vendor/github.com/spf13/pflag -complete -buildid cbecf60af4d0f54cde6c3eae973b4d1d10961076 -D _/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/spf13/pflag -I $WORK -pack ./bool.go ./count.go ./duration.go ./flag.go ./float32.go ./float64.go ./golangflag.go ./int.go ./int32.go ./int64.go ./int8.go ./int_slice.go ./ip.go ./ipmask.go ./ipnet.go ./string.go ./string_slice.go ./uint.go ./uint16.go ./uint32.go ./uint64.go ./uint8.go
mkdir -p $WORK/net/
cd /opt/go/src/net/textproto
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/net/textproto.a -trimpath $WORK -p net/textproto -complete -buildid 82377d0a2e0672916a4d1adda9d307acf9974324 -D _/opt/go/src/net/textproto -I $WORK -pack ./header.go ./pipeline.go ./reader.go ./textproto.go ./writer.go
mkdir -p /opt/go/pkg/linux_amd64/log/
mv $WORK/log/syslog.a /opt/go/pkg/linux_amd64/log/syslog.a
mkdir -p $WORK/github.com/hyperledger/fabric/vendor/github.com/op/go-logging/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/vendor/github.com/op/
cd /opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/op/go-logging
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/vendor/github.com/op/go-logging.a -trimpath $WORK -p github.com/hyperledger/fabric/vendor/github.com/op/go-logging -complete -buildid 859ecab5ede57655c0166ac65922be124e020c9f -D _/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/op/go-logging -I $WORK -pack ./backend.go ./format.go ./level.go ./log_nix.go ./logger.go ./memory.go ./multi.go ./syslog.go
mkdir -p /opt/go/pkg/linux_amd64/net/
mv $WORK/net/textproto.a /opt/go/pkg/linux_amd64/net/textproto.a
mkdir -p $WORK/mime/multipart/_obj/
mkdir -p $WORK/mime/
cd /opt/go/src/mime/multipart
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/mime/multipart.a -trimpath $WORK -p mime/multipart -complete -buildid 184a3d2a6e3775d3b188a8b6529cd0bfaa4c1de5 -D _/opt/go/src/mime/multipart -I $WORK -pack ./formdata.go ./multipart.go ./writer.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/vendor/github.com/op/
cp $WORK/github.com/hyperledger/fabric/vendor/github.com/op/go-logging.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/vendor/github.com/op/go-logging.a
mkdir -p $WORK/net/http/httptrace/_obj/
mkdir -p $WORK/net/http/
cd /opt/go/src/net/http/httptrace
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/net/http/httptrace.a -trimpath $WORK -p net/http/httptrace -complete -buildid e0b3bd70056deb4516714763d1ac11261885b0ec -D _/opt/go/src/net/http/httptrace -I $WORK -pack ./trace.go
mkdir -p /opt/go/pkg/linux_amd64/mime/
mv $WORK/mime/multipart.a /opt/go/pkg/linux_amd64/mime/multipart.a
mkdir -p $WORK/github.com/hyperledger/fabric/vendor/github.com/docker/docker/opts/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/vendor/github.com/docker/docker/
cd /opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/docker/docker/opts
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/vendor/github.com/docker/docker/opts.a -trimpath $WORK -p github.com/hyperledger/fabric/vendor/github.com/docker/docker/opts -complete -buildid 408ad15890b2735c9a9da072642ca12e15b0059f -importmap github.com/docker/engine-api/types/filters=github.com/hyperledger/fabric/vendor/github.com/docker/engine-api/types/filters -D _/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/docker/docker/opts -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./hosts.go ./hosts_unix.go ./ip.go ./opts.go ./opts_unix.go
mkdir -p /opt/go/pkg/linux_amd64/net/http/
mv $WORK/net/http/httptrace.a /opt/go/pkg/linux_amd64/net/http/httptrace.a
mkdir -p $WORK/github.com/hyperledger/fabric/common/ledger/util/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/common/ledger/
cd /opt/gopath/src/github.com/hyperledger/fabric/common/ledger/util
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/common/ledger/util.a -trimpath $WORK -p github.com/hyperledger/fabric/common/ledger/util -complete -buildid 0e2ca458822386f7fe6d9887aa9673512a8fa367 -importmap github.com/golang/protobuf/proto=github.com/hyperledger/fabric/vendor/github.com/golang/protobuf/proto -importmap github.com/op/go-logging=github.com/hyperledger/fabric/vendor/github.com/op/go-logging -D _/opt/gopath/src/github.com/hyperledger/fabric/common/ledger/util -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./ioutil.go ./protobuf_util.go ./util.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/common/ledger/
cp $WORK/github.com/hyperledger/fabric/common/ledger/util.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/common/ledger/util.a
mkdir -p $WORK/github.com/hyperledger/fabric/common/ledger/util/leveldbhelper/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/common/ledger/util/
cd /opt/gopath/src/github.com/hyperledger/fabric/common/ledger/util/leveldbhelper
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/common/ledger/util/leveldbhelper.a -trimpath $WORK -p github.com/hyperledger/fabric/common/ledger/util/leveldbhelper -complete -buildid c4ed822bfbd0e33af6fd98d92fbab9dc69da785c -importmap github.com/op/go-logging=github.com/hyperledger/fabric/vendor/github.com/op/go-logging -importmap github.com/syndtr/goleveldb/leveldb=github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb -importmap github.com/syndtr/goleveldb/leveldb/iterator=github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/iterator -importmap github.com/syndtr/goleveldb/leveldb/opt=github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/opt -importmap github.com/syndtr/goleveldb/leveldb/util=github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/util -D _/opt/gopath/src/github.com/hyperledger/fabric/common/ledger/util/leveldbhelper -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./leveldb_helper.go ./leveldb_provider.go
mkdir -p /opt/go/pkg/linux_amd64/crypto/
mv $WORK/crypto/x509.a /opt/go/pkg/linux_amd64/crypto/x509.a
mkdir -p $WORK/github.com/hyperledger/fabric/bccsp/utils/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/bccsp/
cd /opt/gopath/src/github.com/hyperledger/fabric/bccsp/utils
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/bccsp/utils.a -trimpath $WORK -p github.com/hyperledger/fabric/bccsp/utils -complete -buildid 60d6550787222962a7bbafe8e93318d6cf043727 -D _/opt/gopath/src/github.com/hyperledger/fabric/bccsp/utils -I $WORK -pack ./errs.go ./io.go ./keys.go ./slice.go ./x509.go
mkdir -p $WORK/crypto/tls/_obj/
cd /opt/go/src/crypto/tls
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/crypto/tls.a -trimpath $WORK -p crypto/tls -complete -buildid fc0d3c659d913347b66cfef22dae168246637469 -D _/opt/go/src/crypto/tls -I $WORK -pack ./alert.go ./cipher_suites.go ./common.go ./conn.go ./handshake_client.go ./handshake_messages.go ./handshake_server.go ./key_agreement.go ./prf.go ./ticket.go ./tls.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/vendor/github.com/spf13/
cp $WORK/github.com/hyperledger/fabric/vendor/github.com/spf13/pflag.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/vendor/github.com/spf13/pflag.a
mkdir -p $WORK/github.com/hyperledger/fabric/vendor/github.com/spf13/viper/_obj/
cd /opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/spf13/viper
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/vendor/github.com/spf13/viper.a -trimpath $WORK -p github.com/hyperledger/fabric/vendor/github.com/spf13/viper -complete -buildid ede1787369b459a659c3da005772973b5b642658 -importmap github.com/BurntSushi/toml=github.com/hyperledger/fabric/vendor/github.com/BurntSushi/toml -importmap github.com/kr/pretty=github.com/hyperledger/fabric/vendor/github.com/kr/pretty -importmap github.com/magiconair/properties=github.com/hyperledger/fabric/vendor/github.com/magiconair/properties -importmap github.com/mitchellh/mapstructure=github.com/hyperledger/fabric/vendor/github.com/mitchellh/mapstructure -importmap github.com/spf13/cast=github.com/hyperledger/fabric/vendor/github.com/spf13/cast -importmap github.com/spf13/jwalterweatherman=github.com/hyperledger/fabric/vendor/github.com/spf13/jwalterweatherman -importmap github.com/spf13/pflag=github.com/hyperledger/fabric/vendor/github.com/spf13/pflag -importmap gopkg.in/yaml.v2=github.com/hyperledger/fabric/vendor/gopkg.in/yaml.v2 -D _/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/spf13/viper -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./util.go ./viper.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/bccsp/
cp $WORK/github.com/hyperledger/fabric/bccsp/utils.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/bccsp/utils.a
mkdir -p $WORK/github.com/hyperledger/fabric/bccsp/pkcs11/_obj/
cd /opt/gopath/src/github.com/hyperledger/fabric/bccsp/pkcs11
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/bccsp/pkcs11.a -trimpath $WORK -p github.com/hyperledger/fabric/bccsp/pkcs11 -complete -buildid 86966a9f9996b198d048d1e134b458ba7f0e9c7c -importmap github.com/miekg/pkcs11=github.com/hyperledger/fabric/vendor/github.com/miekg/pkcs11 -importmap github.com/op/go-logging=github.com/hyperledger/fabric/vendor/github.com/op/go-logging -importmap golang.org/x/crypto/sha3=github.com/hyperledger/fabric/vendor/golang.org/x/crypto/sha3 -D _/opt/gopath/src/github.com/hyperledger/fabric/bccsp/pkcs11 -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./aes.go ./aeskey.go ./conf.go ./dummyks.go ./ecdsa.go ./ecdsakey.go ./fileks.go ./impl.go ./pkcs11.go ./rsakey.go
mkdir -p $WORK/github.com/hyperledger/fabric/bccsp/sw/_obj/
cd /opt/gopath/src/github.com/hyperledger/fabric/bccsp/sw
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/bccsp/sw.a -trimpath $WORK -p github.com/hyperledger/fabric/bccsp/sw -complete -buildid 25badaf6145220bb1fd6bdc3f6161c75310f8e44 -importmap github.com/op/go-logging=github.com/hyperledger/fabric/vendor/github.com/op/go-logging -importmap golang.org/x/crypto/sha3=github.com/hyperledger/fabric/vendor/golang.org/x/crypto/sha3 -D _/opt/gopath/src/github.com/hyperledger/fabric/bccsp/sw -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./aes.go ./aeskey.go ./conf.go ./dummyks.go ./ecdsa.go ./ecdsakey.go ./fileks.go ./impl.go ./rsakey.go
# github.com/hyperledger/fabric/bccsp/pkcs11
bccsp/pkcs11/pkcs11.go:92: undefined: pkcs11.SessionHandle
bccsp/pkcs11/pkcs11.go:118: undefined: pkcs11.SessionHandle
bccsp/pkcs11/pkcs11.go:445: undefined: pkcs11.ObjectHandle
bccsp/pkcs11/pkcs11.go:445: undefined: pkcs11.Ctx
bccsp/pkcs11/pkcs11.go:445: undefined: pkcs11.SessionHandle
bccsp/pkcs11/pkcs11.go:516: undefined: pkcs11.Ctx
bccsp/pkcs11/pkcs11.go:516: undefined: pkcs11.SessionHandle
bccsp/pkcs11/pkcs11.go:516: undefined: pkcs11.ObjectHandle
bccsp/pkcs11/pkcs11.go:556: undefined: pkcs11.Ctx
bccsp/pkcs11/pkcs11.go:556: undefined: pkcs11.SessionHandle
bccsp/pkcs11/pkcs11.go:556: too many errors
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/vendor/github.com/docker/docker/
cp $WORK/github.com/hyperledger/fabric/vendor/github.com/docker/docker/opts.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/vendor/github.com/docker/docker/opts.a
mkdir -p $WORK/github.com/hyperledger/fabric/bccsp/signer/_obj/
cd /opt/gopath/src/github.com/hyperledger/fabric/bccsp/signer
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/bccsp/signer.a -trimpath $WORK -p github.com/hyperledger/fabric/bccsp/signer -complete -buildid cffb2aae8dcdf8a9a5ed4675d181dd45f4395779 -D _/opt/gopath/src/github.com/hyperledger/fabric/bccsp/signer -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./signer.go
cp $WORK/github.com/hyperledger/fabric/bccsp/signer.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/bccsp/signer.a
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/common/ledger/util/
cp $WORK/github.com/hyperledger/fabric/common/ledger/util/leveldbhelper.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/common/ledger/util/leveldbhelper.a
mkdir -p $WORK/github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/version/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/
cd /opt/gopath/src/github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/version
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/version.a -trimpath $WORK -p github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/version -complete -buildid 285fe704a7dbca14b58306180f914a8656c4b1d3 -D _/opt/gopath/src/github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/version -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./version.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/
cp $WORK/github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/version.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/version.a
mkdir -p $WORK/github.com/hyperledger/fabric/vendor/github.com/spf13/cobra/_obj/
cd /opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/spf13/cobra
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/vendor/github.com/spf13/cobra.a -trimpath $WORK -p github.com/hyperledger/fabric/vendor/github.com/spf13/cobra -complete -buildid 3fd1ee3b532da7d4209c393b68685953b01976b7 -importmap github.com/spf13/pflag=github.com/hyperledger/fabric/vendor/github.com/spf13/pflag -D _/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/spf13/cobra -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./bash_completions.go ./cobra.go ./command.go ./command_notwin.go
cp $WORK/github.com/hyperledger/fabric/vendor/github.com/spf13/viper.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/vendor/github.com/spf13/viper.a
mkdir -p $WORK/github.com/hyperledger/fabric/common/flogging/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/common/
cd /opt/gopath/src/github.com/hyperledger/fabric/common/flogging
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/common/flogging.a -trimpath $WORK -p github.com/hyperledger/fabric/common/flogging -complete -buildid 98c34bfa187c73ee7b70532c25be3ff9c3a6236b -importmap github.com/op/go-logging=github.com/hyperledger/fabric/vendor/github.com/op/go-logging -importmap github.com/spf13/viper=github.com/hyperledger/fabric/vendor/github.com/spf13/viper -D _/opt/gopath/src/github.com/hyperledger/fabric/common/flogging -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./logging.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/common/
cp $WORK/github.com/hyperledger/fabric/common/flogging.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/common/flogging.a
mkdir -p $WORK/github.com/hyperledger/fabric/core/ledger/ledgerconfig/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/core/ledger/
cd /opt/gopath/src/github.com/hyperledger/fabric/core/ledger/ledgerconfig
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/core/ledger/ledgerconfig.a -trimpath $WORK -p github.com/hyperledger/fabric/core/ledger/ledgerconfig -complete -buildid f8dac805caffeb7cf7918820c9a017b26c74b6d8 -importmap github.com/spf13/viper=github.com/hyperledger/fabric/vendor/github.com/spf13/viper -D _/opt/gopath/src/github.com/hyperledger/fabric/core/ledger/ledgerconfig -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./ledger_config.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/core/ledger/
cp $WORK/github.com/hyperledger/fabric/core/ledger/ledgerconfig.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/core/ledger/ledgerconfig.a
mkdir -p $WORK/github.com/hyperledger/fabric/core/errors/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/core/
cd /opt/gopath/src/github.com/hyperledger/fabric/core/errors
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/core/errors.a -trimpath $WORK -p github.com/hyperledger/fabric/core/errors -complete -buildid 473fd6413f5b08b6fe43cfbd255e8840f2438a53 -importmap github.com/op/go-logging=github.com/hyperledger/fabric/vendor/github.com/op/go-logging -D _/opt/gopath/src/github.com/hyperledger/fabric/core/errors -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./errors.go
cp $WORK/github.com/hyperledger/fabric/bccsp/sw.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/bccsp/sw.a
mkdir -p $WORK/github.com/hyperledger/fabric/common/viperutil/_obj/
cd /opt/gopath/src/github.com/hyperledger/fabric/common/viperutil
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/common/viperutil.a -trimpath $WORK -p github.com/hyperledger/fabric/common/viperutil -complete -buildid a512ae091565ced8477321c8a1463db7ff261d12 -importmap github.com/mitchellh/mapstructure=github.com/hyperledger/fabric/vendor/github.com/mitchellh/mapstructure -importmap github.com/op/go-logging=github.com/hyperledger/fabric/vendor/github.com/op/go-logging -importmap github.com/spf13/viper=github.com/hyperledger/fabric/vendor/github.com/spf13/viper -D _/opt/gopath/src/github.com/hyperledger/fabric/common/viperutil -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./config_util.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/core/
cp $WORK/github.com/hyperledger/fabric/core/errors.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/core/errors.a
mkdir -p $WORK/github.com/op/go-logging/_obj/
mkdir -p $WORK/github.com/op/
cd /opt/gopath/src/github.com/op/go-logging
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/op/go-logging.a -trimpath $WORK -p github.com/op/go-logging -complete -buildid 859ecab5ede57655c0166ac65922be124e020c9f -D _/opt/gopath/src/github.com/op/go-logging -I $WORK -pack ./backend.go ./format.go ./level.go ./log_nix.go ./logger.go ./memory.go ./multi.go ./syslog.go
cp $WORK/github.com/hyperledger/fabric/vendor/github.com/spf13/cobra.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/vendor/github.com/spf13/cobra.a
mkdir -p $WORK/github.com/hyperledger/fabric/peer/version/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/peer/
cd /opt/gopath/src/github.com/hyperledger/fabric/peer/version
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/peer/version.a -trimpath $WORK -p github.com/hyperledger/fabric/peer/version -complete -buildid 306faa7e50e16452d7ac6cb01aff01fbb877c84b -importmap github.com/spf13/cobra=github.com/hyperledger/fabric/vendor/github.com/spf13/cobra -D _/opt/gopath/src/github.com/hyperledger/fabric/peer/version -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./version.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/peer/
cp $WORK/github.com/hyperledger/fabric/peer/version.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/peer/version.a
mkdir -p $WORK/github.com/spf13/pflag/_obj/
cd /opt/gopath/src/github.com/spf13/pflag
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/spf13/pflag.a -trimpath $WORK -p github.com/spf13/pflag -complete -buildid cbecf60af4d0f54cde6c3eae973b4d1d10961076 -D _/opt/gopath/src/github.com/spf13/pflag -I $WORK -pack ./bool.go ./count.go ./duration.go ./flag.go ./float32.go ./float64.go ./golangflag.go ./int.go ./int32.go ./int64.go ./int8.go ./int_slice.go ./ip.go ./ipmask.go ./ipnet.go ./string.go ./string_slice.go ./uint.go ./uint16.go ./uint32.go ./uint64.go ./uint8.go
cp $WORK/github.com/hyperledger/fabric/common/viperutil.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/common/viperutil.a
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/op/
cp $WORK/github.com/op/go-logging.a /opt/gopath/pkg/linux_amd64/github.com/op/go-logging.a
mv $WORK/crypto/tls.a /opt/go/pkg/linux_amd64/crypto/tls.a
mkdir -p $WORK/net/http/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/credentials/_obj/
cd /opt/go/src/net/http
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/net/http.a -trimpath $WORK -p net/http -complete -buildid e648c660504409eab25e7b801f5ee82a3b8b8a9b -importmap golang_org/x/net/http2/hpack=vendor/golang_org/x/net/http2/hpack -importmap golang_org/x/net/lex/httplex=vendor/golang_org/x/net/lex/httplex -D _/opt/go/src/net/http -I $WORK -pack ./client.go ./cookie.go ./doc.go ./filetransport.go ./fs.go ./h2_bundle.go ./header.go ./http.go ./jar.go ./method.go ./request.go ./response.go ./server.go ./sniff.go ./status.go ./transfer.go ./transport.go
mkdir -p $WORK/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/
cd /opt/gopath/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/credentials
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/credentials.a -trimpath $WORK -p github.com/hyperledger/fabric/vendor/google.golang.org/grpc/credentials -complete -buildid 1e50397896b9aa825c13136e94e2e11d93d2700d -importmap golang.org/x/net/context=github.com/hyperledger/fabric/vendor/golang.org/x/net/context -D _/opt/gopath/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/credentials -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./credentials.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/
cp $WORK/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/credentials.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/credentials.a
mkdir -p $WORK/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/peer/_obj/
cd /opt/gopath/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/peer
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/peer.a -trimpath $WORK -p github.com/hyperledger/fabric/vendor/google.golang.org/grpc/peer -complete -buildid 0a646323ac1f07990e854883889e66c9ef4810b0 -importmap golang.org/x/net/context=github.com/hyperledger/fabric/vendor/golang.org/x/net/context -importmap google.golang.org/grpc/credentials=github.com/hyperledger/fabric/vendor/google.golang.org/grpc/credentials -D _/opt/gopath/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/peer -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./peer.go
cp $WORK/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/peer.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/peer.a
cp $WORK/github.com/spf13/pflag.a /opt/gopath/pkg/linux_amd64/github.com/spf13/pflag.a
mkdir -p $WORK/github.com/spf13/cobra/_obj/
cd /opt/gopath/src/github.com/spf13/cobra
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/spf13/cobra.a -trimpath $WORK -p github.com/spf13/cobra -complete -buildid 15f1bc05155350018e5e9a85c02c39b45e9b4710 -D _/opt/gopath/src/github.com/spf13/cobra -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./bash_completions.go ./cobra.go ./command.go ./command_notwin.go
mkdir -p $WORK/github.com/spf13/viper/_obj/
cd /opt/gopath/src/github.com/spf13/viper
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/spf13/viper.a -trimpath $WORK -p github.com/spf13/viper -complete -buildid e9f4285a7ca34f69354f9c7aaee6b35b1545abfc -D _/opt/gopath/src/github.com/spf13/viper -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./util.go ./viper.go
cp $WORK/github.com/spf13/viper.a /opt/gopath/pkg/linux_amd64/github.com/spf13/viper.a
cp $WORK/github.com/spf13/cobra.a /opt/gopath/pkg/linux_amd64/github.com/spf13/cobra.a
mv $WORK/net/http.a /opt/go/pkg/linux_amd64/net/http.a
mkdir -p $WORK/github.com/hyperledger/fabric/vendor/golang.org/x/net/http2/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/vendor/golang.org/x/net/
mkdir -p $WORK/github.com/hyperledger/fabric/vendor/golang.org/x/net/trace/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/vendor/github.com/hashicorp/go-cleanhttp/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/vendor/github.com/hashicorp/
cd /opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/hashicorp/go-cleanhttp
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/vendor/github.com/hashicorp/go-cleanhttp.a -trimpath $WORK -p github.com/hyperledger/fabric/vendor/github.com/hashicorp/go-cleanhttp -complete -buildid 2347ae6ded99e02f815cf9519f82dd178c1a1b95 -D _/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/hashicorp/go-cleanhttp -I $WORK -pack ./cleanhttp.go ./doc.go
cd /opt/gopath/src/github.com/hyperledger/fabric/vendor/golang.org/x/net/http2
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/vendor/golang.org/x/net/http2.a -trimpath $WORK -p github.com/hyperledger/fabric/vendor/golang.org/x/net/http2 -complete -buildid 53be6a7d0f982da72f22eddc8d7c746ad6327020 -importmap golang.org/x/net/http2/hpack=github.com/hyperledger/fabric/vendor/golang.org/x/net/http2/hpack -importmap golang.org/x/net/lex/httplex=github.com/hyperledger/fabric/vendor/golang.org/x/net/lex/httplex -D _/opt/gopath/src/github.com/hyperledger/fabric/vendor/golang.org/x/net/http2 -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./client_conn_pool.go ./configure_transport.go ./errors.go ./fixed_buffer.go ./flow.go ./frame.go ./go16.go ./go17.go ./gotrack.go ./headermap.go ./http2.go ./pipe.go ./server.go ./transport.go ./write.go ./writesched.go
cd /opt/gopath/src/github.com/hyperledger/fabric/vendor/golang.org/x/net/trace
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/vendor/golang.org/x/net/trace.a -trimpath $WORK -p github.com/hyperledger/fabric/vendor/golang.org/x/net/trace -complete -buildid a9729acd63a3452890fd3700df99505dbe3c0160 -importmap golang.org/x/net/context=github.com/hyperledger/fabric/vendor/golang.org/x/net/context -importmap golang.org/x/net/internal/timeseries=github.com/hyperledger/fabric/vendor/golang.org/x/net/internal/timeseries -D _/opt/gopath/src/github.com/hyperledger/fabric/vendor/golang.org/x/net/trace -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./events.go ./histogram.go ./trace.go
mkdir -p $WORK/net/http/httputil/_obj/
cd /opt/go/src/net/http/httputil
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/net/http/httputil.a -trimpath $WORK -p net/http/httputil -complete -buildid 2503ea84eb08c1b52f77e111962db547af865763 -D _/opt/go/src/net/http/httputil -I $WORK -pack ./dump.go ./httputil.go ./persist.go ./reverseproxy.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/vendor/github.com/hashicorp/
cp $WORK/github.com/hyperledger/fabric/vendor/github.com/hashicorp/go-cleanhttp.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/vendor/github.com/hashicorp/go-cleanhttp.a
mkdir -p $WORK/net/http/pprof/_obj/
cd /opt/go/src/net/http/pprof
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/net/http/pprof.a -trimpath $WORK -p net/http/pprof -complete -buildid 320d5d1127c74d14876810ec3ee745387c0e01bb -D _/opt/go/src/net/http/pprof -I $WORK -pack ./pprof.go
mv $WORK/net/http/pprof.a /opt/go/pkg/linux_amd64/net/http/pprof.a
mv $WORK/net/http/httputil.a /opt/go/pkg/linux_amd64/net/http/httputil.a
mkdir -p $WORK/github.com/hyperledger/fabric/vendor/github.com/fsouza/go-dockerclient/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/vendor/github.com/fsouza/
mkdir -p $WORK/github.com/hyperledger/fabric/core/ledger/util/couchdb/_obj/
cd /opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/fsouza/go-dockerclient
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/vendor/github.com/fsouza/go-dockerclient.a -trimpath $WORK -p github.com/hyperledger/fabric/vendor/github.com/fsouza/go-dockerclient -complete -buildid d180c61c18617f7a1416c31c06ffada187b7a64a -importmap github.com/docker/docker/opts=github.com/hyperledger/fabric/vendor/github.com/docker/docker/opts -importmap github.com/docker/docker/pkg/archive=github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/archive -importmap github.com/docker/docker/pkg/fileutils=github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/fileutils -importmap github.com/docker/docker/pkg/homedir=github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/homedir -importmap github.com/docker/docker/pkg/stdcopy=github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/stdcopy -importmap github.com/docker/go-units=github.com/hyperledger/fabric/vendor/github.com/docker/go-units -importmap github.com/hashicorp/go-cleanhttp=github.com/hyperledger/fabric/vendor/github.com/hashicorp/go-cleanhttp -D _/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/fsouza/go-dockerclient -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./auth.go ./cancelable.go ./change.go ./client.go ./container.go ./env.go ./event.go ./exec.go ./image.go ./misc.go ./network.go ./signal.go ./tar.go ./tls.go ./volume.go
mkdir -p $WORK/github.com/hyperledger/fabric/core/ledger/util/
cd /opt/gopath/src/github.com/hyperledger/fabric/core/ledger/util/couchdb
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/core/ledger/util/couchdb.a -trimpath $WORK -p github.com/hyperledger/fabric/core/ledger/util/couchdb -complete -buildid edcb1d9cf9f38e25c132a68b099f199516187d12 -importmap github.com/op/go-logging=github.com/hyperledger/fabric/vendor/github.com/op/go-logging -D _/opt/gopath/src/github.com/hyperledger/fabric/core/ledger/util/couchdb -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./couchdb.go ./couchdbutil.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/vendor/golang.org/x/net/
cp $WORK/github.com/hyperledger/fabric/vendor/golang.org/x/net/trace.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/vendor/golang.org/x/net/trace.a
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/core/ledger/util/
cp $WORK/github.com/hyperledger/fabric/core/ledger/util/couchdb.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/core/ledger/util/couchdb.a
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/vendor/github.com/fsouza/
cp $WORK/github.com/hyperledger/fabric/vendor/github.com/fsouza/go-dockerclient.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/vendor/github.com/fsouza/go-dockerclient.a
mkdir -p $WORK/github.com/hyperledger/fabric/core/container/util/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/core/container/
cd /opt/gopath/src/github.com/hyperledger/fabric/core/container/util
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/core/container/util.a -trimpath $WORK -p github.com/hyperledger/fabric/core/container/util -complete -buildid da80288c4c89a990162654596fed15eb95e8dda8 -importmap github.com/fsouza/go-dockerclient=github.com/hyperledger/fabric/vendor/github.com/fsouza/go-dockerclient -importmap github.com/op/go-logging=github.com/hyperledger/fabric/vendor/github.com/op/go-logging -importmap github.com/spf13/viper=github.com/hyperledger/fabric/vendor/github.com/spf13/viper -D _/opt/gopath/src/github.com/hyperledger/fabric/core/container/util -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./dockerutil.go ./writer.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/core/container/
cp $WORK/github.com/hyperledger/fabric/core/container/util.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/core/container/util.a
cp $WORK/github.com/hyperledger/fabric/vendor/golang.org/x/net/http2.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/vendor/golang.org/x/net/http2.a
mkdir -p $WORK/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/transport/_obj/
cd /opt/gopath/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/transport
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/transport.a -trimpath $WORK -p github.com/hyperledger/fabric/vendor/google.golang.org/grpc/transport -complete -buildid 66821222f845615ba3926183ef10e0eaa746e313 -importmap golang.org/x/net/context=github.com/hyperledger/fabric/vendor/golang.org/x/net/context -importmap golang.org/x/net/http2=github.com/hyperledger/fabric/vendor/golang.org/x/net/http2 -importmap golang.org/x/net/http2/hpack=github.com/hyperledger/fabric/vendor/golang.org/x/net/http2/hpack -importmap golang.org/x/net/trace=github.com/hyperledger/fabric/vendor/golang.org/x/net/trace -importmap google.golang.org/grpc/codes=github.com/hyperledger/fabric/vendor/google.golang.org/grpc/codes -importmap google.golang.org/grpc/credentials=github.com/hyperledger/fabric/vendor/google.golang.org/grpc/credentials -importmap google.golang.org/grpc/grpclog=github.com/hyperledger/fabric/vendor/google.golang.org/grpc/grpclog -importmap google.golang.org/grpc/metadata=github.com/hyperledger/fabric/vendor/google.golang.org/grpc/metadata -importmap google.golang.org/grpc/peer=github.com/hyperledger/fabric/vendor/google.golang.org/grpc/peer -D _/opt/gopath/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/transport -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./control.go ./handler_server.go ./http2_client.go ./http2_server.go ./http_util.go ./transport.go
cp $WORK/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/transport.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/transport.a
mkdir -p $WORK/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/vendor/google.golang.org/
cd /opt/gopath/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/vendor/google.golang.org/grpc.a -trimpath $WORK -p github.com/hyperledger/fabric/vendor/google.golang.org/grpc -complete -buildid c785b282c1c00a401a0c92347a7886f6399e4ecd -importmap github.com/golang/protobuf/proto=github.com/hyperledger/fabric/vendor/github.com/golang/protobuf/proto -importmap golang.org/x/net/context=github.com/hyperledger/fabric/vendor/golang.org/x/net/context -importmap golang.org/x/net/http2=github.com/hyperledger/fabric/vendor/golang.org/x/net/http2 -importmap golang.org/x/net/trace=github.com/hyperledger/fabric/vendor/golang.org/x/net/trace -importmap google.golang.org/grpc/codes=github.com/hyperledger/fabric/vendor/google.golang.org/grpc/codes -importmap google.golang.org/grpc/credentials=github.com/hyperledger/fabric/vendor/google.golang.org/grpc/credentials -importmap google.golang.org/grpc/grpclog=github.com/hyperledger/fabric/vendor/google.golang.org/grpc/grpclog -importmap google.golang.org/grpc/internal=github.com/hyperledger/fabric/vendor/google.golang.org/grpc/internal -importmap google.golang.org/grpc/metadata=github.com/hyperledger/fabric/vendor/google.golang.org/grpc/metadata -importmap google.golang.org/grpc/naming=github.com/hyperledger/fabric/vendor/google.golang.org/grpc/naming -importmap google.golang.org/grpc/transport=github.com/hyperledger/fabric/vendor/google.golang.org/grpc/transport -D _/opt/gopath/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./backoff.go ./balancer.go ./call.go ./clientconn.go ./doc.go ./interceptor.go ./rpc_util.go ./server.go ./stream.go ./trace.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/vendor/google.golang.org/
cp $WORK/github.com/hyperledger/fabric/vendor/google.golang.org/grpc.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/vendor/google.golang.org/grpc.a
mkdir -p $WORK/github.com/hyperledger/fabric/core/comm/_obj/
cd /opt/gopath/src/github.com/hyperledger/fabric/core/comm
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/core/comm.a -trimpath $WORK -p github.com/hyperledger/fabric/core/comm -complete -buildid 5121bd1695e6d2ac9bf33449c1103e442a22e671 -importmap github.com/op/go-logging=github.com/hyperledger/fabric/vendor/github.com/op/go-logging -importmap github.com/spf13/viper=github.com/hyperledger/fabric/vendor/github.com/spf13/viper -importmap google.golang.org/grpc=github.com/hyperledger/fabric/vendor/google.golang.org/grpc -importmap google.golang.org/grpc/credentials=github.com/hyperledger/fabric/vendor/google.golang.org/grpc/credentials -importmap google.golang.org/grpc/grpclog=github.com/hyperledger/fabric/vendor/google.golang.org/grpc/grpclog -D _/opt/gopath/src/github.com/hyperledger/fabric/core/comm -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./config.go ./connection.go ./server.go
mkdir -p $WORK/github.com/hyperledger/fabric/protos/gossip/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/protos/
cd /opt/gopath/src/github.com/hyperledger/fabric/protos/gossip
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/protos/gossip.a -trimpath $WORK -p github.com/hyperledger/fabric/protos/gossip -complete -buildid 7ffde35afa7dfa993da3cb3f866f9fbf149b68db -importmap github.com/golang/protobuf/proto=github.com/hyperledger/fabric/vendor/github.com/golang/protobuf/proto -importmap golang.org/x/net/context=github.com/hyperledger/fabric/vendor/golang.org/x/net/context -importmap google.golang.org/grpc=github.com/hyperledger/fabric/vendor/google.golang.org/grpc -D _/opt/gopath/src/github.com/hyperledger/fabric/protos/gossip -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./extensions.go ./message.pb.go
cp $WORK/github.com/hyperledger/fabric/core/comm.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/core/comm.a
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/protos/
cp $WORK/github.com/hyperledger/fabric/protos/gossip.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/protos/gossip.a
mkdir -p $WORK/github.com/hyperledger/fabric/gossip/util/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/gossip/
cd /opt/gopath/src/github.com/hyperledger/fabric/gossip/util
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/gossip/util.a -trimpath $WORK -p github.com/hyperledger/fabric/gossip/util -complete -buildid 14d2a436a53979024e9ede386c5560c03d6f5e34 -importmap github.com/op/go-logging=github.com/hyperledger/fabric/vendor/github.com/op/go-logging -importmap github.com/spf13/viper=github.com/hyperledger/fabric/vendor/github.com/spf13/viper -importmap google.golang.org/grpc/grpclog=github.com/hyperledger/fabric/vendor/google.golang.org/grpc/grpclog -D _/opt/gopath/src/github.com/hyperledger/fabric/gossip/util -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./logging.go ./misc.go ./msgs.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/gossip/
cp $WORK/github.com/hyperledger/fabric/gossip/util.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/gossip/util.a
mkdir -p $WORK/github.com/hyperledger/fabric/gossip/discovery/_obj/
cd /opt/gopath/src/github.com/hyperledger/fabric/gossip/discovery
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/gossip/discovery.a -trimpath $WORK -p github.com/hyperledger/fabric/gossip/discovery -complete -buildid 6535f01870df543ea8cec2cffe653658a61ea34d -importmap github.com/op/go-logging=github.com/hyperledger/fabric/vendor/github.com/op/go-logging -importmap github.com/spf13/viper=github.com/hyperledger/fabric/vendor/github.com/spf13/viper -D _/opt/gopath/src/github.com/hyperledger/fabric/gossip/discovery -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./discovery.go ./discovery_impl.go
mkdir -p $WORK/github.com/hyperledger/fabric/gossip/gossip/algo/_obj/
mkdir -p $WORK/github.com/hyperledger/fabric/gossip/gossip/
cd /opt/gopath/src/github.com/hyperledger/fabric/gossip/gossip/algo
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/gossip/gossip/algo.a -trimpath $WORK -p github.com/hyperledger/fabric/gossip/gossip/algo -complete -buildid db8584301d491ffaeba59be11cde822034f63997 -importmap github.com/spf13/viper=github.com/hyperledger/fabric/vendor/github.com/spf13/viper -D _/opt/gopath/src/github.com/hyperledger/fabric/gossip/gossip/algo -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./pull.go
mkdir -p /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/gossip/gossip/
cp $WORK/github.com/hyperledger/fabric/gossip/gossip/algo.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/gossip/gossip/algo.a
cp $WORK/github.com/hyperledger/fabric/gossip/discovery.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/gossip/discovery.a
mkdir -p $WORK/github.com/hyperledger/fabric/gossip/election/_obj/
cd /opt/gopath/src/github.com/hyperledger/fabric/gossip/election
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/gossip/election.a -trimpath $WORK -p github.com/hyperledger/fabric/gossip/election -complete -buildid c11839c6800baf6d808aa388ab90455c8eea2808 -importmap github.com/op/go-logging=github.com/hyperledger/fabric/vendor/github.com/op/go-logging -importmap github.com/spf13/viper=github.com/hyperledger/fabric/vendor/github.com/spf13/viper -D _/opt/gopath/src/github.com/hyperledger/fabric/gossip/election -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./adapter.go ./election.go
cp $WORK/github.com/hyperledger/fabric/gossip/election.a /opt/gopath/pkg/linux_amd64/github.com/hyperledger/fabric/gossip/election.a

@davecheney
Copy link
Contributor

davecheney commented May 7, 2017 via email

@xuqingsz
Copy link
Author

xuqingsz commented May 7, 2017

@davecheney
You are actually right. I was trying different random things, hence there was a GOPATH/src/peer, too.
From a clean start, the original build command ended with
github.com/hyperledger/fabric/peer
and with that, the result is still the same.

@josharian
Copy link
Contributor

Interesting. There should have been a linker invocation at the end, and there is not. I don't see an obvious reason from the log. Can you try experimenting without the various ldflags and see whether that makes a difference? Experiment with not setting GOBIN? Etc. If you find a combo that does work, we can try to figure out why.

@josharian
Copy link
Contributor

Oh, I just noticed you are running 1.7. Can you try Go 1.8.1 and see whether that fixes it?

@xuqingsz
Copy link
Author

xuqingsz commented May 7, 2017

@josharian
Yes I'll give them a try. I may have tried a few combinations, but not exhaustively.
On that linker invocation, is there anyway to find out what the call is, and do it manually? (Assume time to delivery of the fix/workaround is later than when I want the binary?)

@josharian
Copy link
Contributor

Stupid question, but is peer's package called "main"? That's the clue to cmd/go to build an executable.

@josharian
Copy link
Contributor

The time to fix depends on what the issue is.

@bradfitz bradfitz added the WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. label May 7, 2017
@xuqingsz
Copy link
Author

xuqingsz commented May 9, 2017

@josharian @davecheney
A few questions and updates:

  1. In the log I pasted above:
bccsp/pkcs11/pkcs11.go:516: undefined: pkcs11.ObjectHandle
bccsp/pkcs11/pkcs11.go:556: undefined: pkcs11.Ctx
bccsp/pkcs11/pkcs11.go:556: undefined: pkcs11.SessionHandle
bccsp/pkcs11/pkcs11.go:556: too many errors

I traced the declaration of the undefined ones, seems to be fine. Not sure why it is not happy with those. Also, if 'too many errors', how come the compilation did not stop there, but instead, went ahead despite the errors?

  1. I tried different combinations of the LDFLAGS and no difference.
    Likewise, Go 1.8.1 did not make a difference.

  2. I have two log files attached.
    go_install_peer.txt has the log that I pasted above - ran from go install -x <args> github.com/hyperledger/fabric/peer
    go_build_peer.txt has the log for running go build -x peer inside peer dir. This seems to work - link command presents, and the binary generated works as expected.

Any insight on these? Thanks.

go_build_peer.txt
go_install_peer.txt

@davecheney
Copy link
Contributor

davecheney commented May 9, 2017 via email

@josharian
Copy link
Contributor

I wonder whether there's confusion between the two pkcs11 packages. In bccsp/pkcs11/pkcs11.go, please try changing the import of "github.com/miekg/pkcs11" to read (say) mpkgcs11 "github.com/miekg/pkcs11" and update all selector expressions in the file to read (say) *mpkcs11.Ctx instead of *pkcs11.Ctx (and similarly so for all uses of the pkcs11 package) and try again.

@xuqingsz
Copy link
Author

xuqingsz commented May 9, 2017

@josharian
I guess part of it is my fault not keeping note of the commit tag of the source.
Cloned the source:latest again and the errors with 'pkcs11' were gone. Log here:
go_install_peer_2.txt
I'll try to reproduce in the background.

However, back to the topic, also thanks @davecheney for the information. I was purely trying things out from different angles. Do you all have any other ideas on what to do to narrow down the cause?

@davecheney
Copy link
Contributor

davecheney commented May 9, 2017 via email

@xuqingsz
Copy link
Author

xuqingsz commented May 9, 2017

/opt/gopath/src/github.com/hyperledger/fabric# echo $?
2

@davecheney
Copy link
Contributor

davecheney commented May 9, 2017 via email

@xuqingsz
Copy link
Author

xuqingsz commented May 9, 2017

Are you referring to go_install_peer_2.txt?
Did you mean

opt/gopath/src/github.com/hyperledger/fabric/bccsp/pkcs11/impl.go:80: undefined: pkcs11.Ctx
opt/gopath/src/github.com/hyperledger/fabric/bccsp/pkcs11/impl.go:81: undefined: pkcs11.SessionHandle

@davecheney
Copy link
Contributor

davecheney commented May 9, 2017 via email

@xuqingsz
Copy link
Author

xuqingsz commented May 9, 2017

I certainly thought it'd be so much more straightforward after this discovery.

I made the suggestions like @josharian suggested so that it reads:

bccsp/pkcs11/pkcs11.go

import (
        mpkcs11 "github.com/miekg/pkcs11"
)

func loadLib(lib, pin, label string) (*mpkcs11.Ctx, uint, *mpkcs11.SessionHandle, error) { }

bccsp/pkcs11/impl.go

import (
        mpkcs11 "github.com/miekg/pkcs11"
)

type impl struct {
        ctx      *mpkcs11.Ctx
        sessions chan mpkcs11.SessionHandle
}

Changes are applied to all (I certainly hope) applicable places (impl.go, okcs11.go, pkcs11_test.go). Yet, it still fails with

mkdir -p $WORK/github.com/hyperledger/fabric/vendor/github.com/spf13/viper/_obj/
cd /opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/spf13/viper
/opt/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/hyperledger/fabric/vendor/github.com/spf13/viper.a -trimpath $WORK -p github.com/hyperledger/fabric/vendor/github.com/spf13/viper -complete -buildid ede1787369b459a659c3da005772973b5b642658 -importmap github.com/BurntSushi/toml=github.com/hyperledger/fabric/vendor/github.com/BurntSushi/toml -importmap github.com/kr/pretty=github.com/hyperledger/fabric/vendor/github.com/kr/pretty -importmap github.com/magiconair/properties=github.com/hyperledger/fabric/vendor/github.com/magiconair/properties -importmap github.com/mitchellh/mapstructure=github.com/hyperledger/fabric/vendor/github.com/mitchellh/mapstructure -importmap github.com/spf13/cast=github.com/hyperledger/fabric/vendor/github.com/spf13/cast -importmap github.com/spf13/jwalterweatherman=github.com/hyperledger/fabric/vendor/github.com/spf13/jwalterweatherman -importmap github.com/spf13/pflag=github.com/hyperledger/fabric/vendor/github.com/spf13/pflag -importmap gopkg.in/yaml.v2=github.com/hyperledger/fabric/vendor/gopkg.in/yaml.v2 -D _/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/spf13/viper -I $WORK -I /opt/gopath/pkg/linux_amd64 -pack ./util.go ./viper.go
# github.com/hyperledger/fabric/bccsp/pkcs11
bccsp/pkcs11/impl.go:80: undefined: pkcs11.Ctx
bccsp/pkcs11/impl.go:81: undefined: pkcs11.SessionHandle

The mpkcs11 change was not reflected on the error message - still looked for pkcs11.Ctx pkcs11.SessionHandle. This confused me a lot.
I tried cleaning up the project and reinstall, looking for pkcs11 pkg that I may have missed to rename, etc, but ended nowhere.
I started wondering if it is for sure problem with the source code, or 'Go install'. Any suggestion on how to isolate?

@davecheney
Copy link
Contributor

davecheney commented May 9, 2017 via email

@xuqingsz
Copy link
Author

I tried at a couple of more times - made sure everything was clean, checked the GO settings and had another set of eyes checking all the pkcs11 declarations/references.
Problem persists.
Any ideas/explanations for the unmatching name - mpkcs11.Ctx in the code and pkcs11.Ctx in the log?

@davecheney
Copy link
Contributor

davecheney commented May 10, 2017 via email

@xuqingsz
Copy link
Author

This is the minimal reproducible recipe. Please let me know if it works on your end:

# echo $GOPATH
/opt/gopath

# echo $GOROOT
/opt/go

# cat /etc/*release*
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS"
NAME="Ubuntu"
VERSION="16.04.1 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.1 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial

# go version
go version go1.7.3 linux/amd64

# go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/opt/gopath"
GORACE=""
GOROOT="/opt/go"
GOTOOLDIR="/opt/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build969601306=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"

mkdir -p /opt/gopath/src/github.com/hyperledger
cd /opt/gopath/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git
cd fabric/
CGO_ENABLED=0 GOBIN=/opt/gopath/bin go install -x -ldflags " -X github.com/hyperledger/fabric/common/metadata.Version=1.0.0-snapshot-d6fbfcf -X github.com/hyperledger/fabric/common/metadata.BaseVersion=0.3.0 -X github.com/hyperledger/fabric/common/metadata.BaseDockerLabel=org.hyperledger.fabric -X github.com/hyperledger/fabric/common/metadata.DockerNamespace=hyperledger -X github.com/hyperledger/fabric/common/metadata.BaseDockerNamespace=hyperledger -linkmode external -extldflags -static -lpthread" github.com/hyperledger/fabric/peer
echo $?

P.S.
I am on an RHEL6.7. All commands were invoked from a container. Container was started using:
docker run --rm -it hyperledger/fabric-baseimage:x86_64-0.3.0 bash
To install the peer pkg inside the container is also intended from the source code:
https://github.com/hyperledger/fabric/blob/master/Makefile#L184

@piedup
Copy link

piedup commented Oct 24, 2017

Was there any fix on this issue? I am getting the same errors when trying to compile

github.com/hyperledger/fabric/bccsp/pkcs11/impl.go:85:12: undefined: pkcs11.Ctx
github.com/hyperledger/fabric/bccsp/pkcs11/impl.go:86:16: undefined: pkcs11.SessionHandle

Interestingly I don't get the error when compiling on darwin.

@ianlancetaylor
Copy link
Contributor

@piedup That sounds like a different and unrelated problem.

@ianlancetaylor ianlancetaylor changed the title Go install does not generate binary cmd/go: go install does not generate binary Oct 24, 2017
@ianlancetaylor ianlancetaylor added NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. and removed WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. labels Oct 24, 2017
@ianlancetaylor
Copy link
Contributor

@piedup Sorry, I take it back. It may be the same problem.

@ianlancetaylor
Copy link
Contributor

I am unable to recreate this problem with any version of Go.

@piedup Can you provide your reproduction instructions?

@ianlancetaylor ianlancetaylor added this to the Go1.10 milestone Oct 24, 2017
@ianlancetaylor ianlancetaylor changed the title cmd/go: go install does not generate binary cmd/go: unexpected undefined symbols in imported vendored package Oct 24, 2017
@piedup
Copy link

piedup commented Oct 25, 2017

@ianlancetaylor I've uploaded a simple repo that you should be able to use to reproduce the error https://github.com/piedup/buildtest

Just dep ensure and then build (works for darwin not linux).

I am using go1.9.1 darwin/amd64

@ianlancetaylor
Copy link
Contributor

@piedup Thanks. I still can't recreate it. Please show us the exact commands that you run and the exact output that you get.

@piedup
Copy link

piedup commented Oct 25, 2017

@ianlancetaylor actually I asked a colleague who is running linux to compile the code and it worked (after installing libltdl-dev), but failed when trying to compile for darwin or windows. I am using a Mac (installed libtool) and it fails for linux and windows so it seems to be a cross platform compilation issue

So if you download the repo and go into buildtest and run:
dep ensure

GOOS=darwin GOARCH=amd64 go build should fail

GOOS=linux GOARCH=amd64 go buildshould work

@ianlancetaylor
Copy link
Contributor

@piedup Your build is failing with GOOS=darwin because you are running the build on a non-Darwin system. The package that defines the symbols (github.com/hyperledger/fabric/vendor/github.com/miekg/pkcs11) uses cgo, and by default cgo is not enabled when cross-compiling.

You can set CGO_ENABLED=1 to enable cgo with cross-compiling, but that will in general only succeed if you have a Darwin cross-compiler installed.

It's unfortunate that the miekg/pkcs11 compiles successfully when cgo is not available, but fails to provide the expected types. It's routine for packages to work both with and without cgo--for example, the standard library net and os/user packages work this way--so we can't fail to compile a package that uses cgo merely because cgo is not available.

I don't see anything we can change in the Go toolchain or standard library to avoid this problem.

@ianlancetaylor
Copy link
Contributor

By the way, thanks for providing the test case and explanation.

@ianlancetaylor
Copy link
Contributor

I've gone through the issue again and as far as I can tell everything is explained by the fact that the miekg/pkcs11 package fails to define expected symbols when not using cgo. I'm going to close this issue because I don't see anything we can do. Please comment if you disagree.

@piedup
Copy link

piedup commented Oct 25, 2017

@ianlancetaylor thanks a lot for bringing some light on this ! I will see how we can handle this on our side (and maybe speaking to people maintaining miekg/pkcs11)

@golang golang locked and limited conversation to collaborators Oct 25, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Projects
None yet
Development

No branches or pull requests

7 participants