makeコマンドにてビルドした際にエラーが発生しています。
Linuxの設定が悪いのか、Makefileの作りが悪いのか、シェルの作りが悪いのか判断できないため、ご教示頂きたいです。
環境
- raspberry pi 3 B+
- openSUSE 64bit
- Makefileとその中で呼び出しているシェルスクリプト
エラー内容
Creating .build/goshim.tar.bz2
make: execvp: /bin/sh: Argument list too long
make: *** [Makefile:316: .build/goshim.tar.bz2] Error 127
エラー発生箇所
GOSHIM_DEPS = $(shell ./scripts/goListFiles.sh $(PKGNAME)/core/chaincode/shim)
orderer: $(BUILD_DIR)/bin/orderer
$(BUILD_DIR)/goshim.tar.bz2: $(GOSHIM_DEPS)
@echo "Creating $@"
@tar -jhc -C $(GOPATH)/src $(patsubst $(GOPATH)/src/%,%,$(GOSHIM_DEPS)) > $@
試したこと
1.シェルの引数をxargsで分割してみる
同じエラーが発生し、解決しませんでした。
下記に@tar -jhc -C $(GOPATH)/src $(patsubst $(GOPATH)/src/%,%,$(GOSHIM_DEPS))
を置き換えたMakefileの一文を記載します。
@./scripts/goListFiles.sh $(PKGNAME)/core/chaincode/shim | sed s#$(GOPATH)/src/##g | xargs tar -jhc -C $(GOPATH)/src > $@
2.シェル引数の上限値を上げる
下記で表示される値をあげてみましたが解決しませんでした。
getconf ARG_MAX
3.ARMでなく、x64のubuntu, centOSでビルド
こちらは問題なくビルドが成功しました。