Как построить Hyperledger ткань с Gccgo - PullRequest
0 голосов
/ 01 сентября 2018

Есть ли способ построить Hyperledger Fabric, используя gccgo? Я хочу сделать это для того, чтобы использовать опцию -finstrument-functions в gcc для отслеживания вызовов функций. Но я столкнулся с двумя проблемами. Мои шаги следующие.

  1. найти команду сборки

make -n release

echo "Сборка релиза / linux-amd64 / bin / configtxgen для linux-amd64 "

mkdir -p release / linux-amd64 / bin CGO_CFLAGS = ""

GOOS = linux GOARCH = amd64 go build -o /home/yiifburj/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin/configtxgen -tags "nopkcs11" -ldflags "-X github.com/hyperledger/fabric/common/tools/configtxgen/metadata.Version=1.1.0" github.com/hyperledger/fabric/common/tools/configtxgen

  1. изменить команду сборки для использования gccgo

CGO_CFLAGS = "" GOOS = linux GOARCH = amd64 go build -компилятор gccgo -o /home/yiifburj/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin/configtxgen -tags "nopkcs11" -gccgoflags "-X github.com/hyperledger/fabric/common/tools/configtxgen/metadata.Version=1.1.0" github.com/hyperledger/fabric/common/tools/configtxgen

# github.com / hyperledger / ткань / bccsp / завод

bccsp / factory / pluginfactory.go: 12: 8: ошибка: импортировать файл «плагин» не найдено
"Плагин"

bccsp / factory / pluginfactory.go: 56: 15: ошибка: ссылка на неопределенное имя

plug-in plug, err: = plugin.Open (config.PluginOpts.Library)

Во-первых, как и выше, «плагин» не может быть найден, когда gccgo вызывается go build. Еще один способ передать ldflags -X при использовании gccgo? Кажется, что -X является недопустимым параметром только в gc tools, а не в gccgo.

Кто-нибудь может мне помочь? Спасибо.

1 Ответ

0 голосов
/ 03 сентября 2018

Вам потребуется использовать правильную версию GCC, чтобы получить поддержку версий Go, поддерживаемых различными версиями Fabric.

  • Ткань 1.1 требует Go 1.9.x
  • Ткань 1.2.x требует Go 1.10.x
  • Для будущей Fabric 1.3 также требуется Go 1.10

gccgo не поддерживает Go 1.9 (GCC 7 поддерживает Go 1.8). GCC 8 добавляет поддержку Go 1.10.

Так что вам следует использовать Fabric v1.2 и GCC 8.

...