

makeコマンドにてビルドした際にエラーが発生しています。  
Linuxの設定が悪いのか、Makefileの作りが悪いのか、シェルの作りが悪いのか判断できないため、ご教示頂きたいです。

## 環境

  * raspberry pi 3 B+
  * openSUSE 64bit
  * Makefileとその中で呼び出しているシェルスクリプト 
    * Makefile  
<https://github.com/hyperledger/fabric/blob/release-1.4/Makefile>

    * シェルスクリプト  
<https://github.com/hyperledger/fabric/blob/release-1.4/scripts/goListFiles.sh>

## エラー内容

[code]

    Creating .build/goshim.tar.bz2
    make: execvp: /bin/sh: Argument list too long
    make: *** [Makefile:316: .build/goshim.tar.bz2] Error 127
    
[/code]

## エラー発生箇所

[code]

    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)) > $@
    
[/code]

## 試したこと

### １．シェルの引数をxargsで分割してみる

同じエラーが発生し、解決しませんでした。  
下記に`@tar -jhc -C $(GOPATH)/src $(patsubst
$(GOPATH)/src/%,%,$(GOSHIM_DEPS))`を置き換えたMakefileの一文を記載します。

[code]

    @./scripts/goListFiles.sh $(PKGNAME)/core/chaincode/shim | sed s#$(GOPATH)/src/##g | xargs tar -jhc -C $(GOPATH)/src > $@
    
[/code]

### ２．シェル引数の上限値を上げる

下記で表示される値をあげてみましたが解決しませんでした。

[code]

    getconf ARG_MAX
    
[/code]

### ３．ARMでなく、x64のubuntu, centOSでビルド

こちらは問題なくビルドが成功しました。


CC BY-SA 4.0
2019-02-24T10:44:40.517
52994
2019-02-24T20:21:49.157
2019-02-24T14:13:19.727
32047
32047
question
linux bash shellscript makefile
makeコマンドでビルド中に「make: execvp: /bin/sh: Argument list too long」エラーが発生


GNU tarではアーカイブに追加するファイルを引数に指定する代わりに、`-T`オプションで指定したファイルから読み込ませることができます。

Raspberry
piのtarがこのオプションをサポートしていれば、ファイルのリストを適当なファイルに書き出して、tarの`-T`オプションでそのファイルを指定してみてはどうでしょうか。


CC BY-SA 4.0
2019-02-24T20:21:49.157
53001
2019-02-24T20:21:49.157
9464
52994
answer