This service is available only in Japanese-language.

optee-os の do_configure でエラーとなる場合の原因と対策

bitbake core-image-weston
を実行したのち、
以下のようなエラーが出てしまいました。

ERROR: optee-os-(略) do_configure: Function failed: do_configure (log file is located at (略)/temp/log.do_configure.27659)
ERROR: Logfile of failure stored in: (略)/temp/log.do_configure.27659
Log data follows:
| DEBUG: Executing shell function do_configure
| Reset branch 'official'
| M core/lib/libtomcrypt/src/ciphers/aes_armv8a_ce.c
| M core/lib/libtomcrypt/src/ciphers/aes_modes_armv8a_ce_a64.S
| error: your local changes would be overwritten by cherry-pick.
| hint: commit your changes or stash them to proceed.
| fatal: cherry-pick failed
| WARNING: exit code 128 from a shell command.
| ERROR: Function failed: do_configure (log file is located at (略)/temp/log.do_configure.27659)
ERROR: Task ((略)/optee/optee-os_git.bb:do_configure) failed with exit code '1'
NOTE: Tasks Summary: Attempted 4908 tasks of which 4904 didn't need to be rerun and 1 failed.

Summary: 1 task failed:
(略)/optee/optee-os_git.bb:do_configure
Summary: There was 1 ERROR message shown, returning a non-zero exit code.

何が原因と考えられ、どのような対処をすればよいでしょうか。

A社の環境では問題なく、
B社の環境で上記エラーが出ていて、
会社のネットワークポリシの違いに拠るものかと考えていますが、
解決方法を探るコツが分かりません。

問い合わせに掲載されている
| error: your local changes would be overwritten by cherry-pick.
| hint: commit your changes or stash them to proceed.
| fatal: cherry-pick failed
の部分のみ取り上げますと、gitで取得したソースコードに矛盾が生じているように
読み取れますが、

meta-optee/recipes-security/optee/optee-os_git.bb
内で、
SRCREV = "ee595e950f5be1ace3e831261c22a0e99f959046"
SRC_URI = "git://github.com/OP-TEE/optee_os.git \
file://0001-allow-setting-sysroot-for-libgcc-lookup.patch \
"
と、SRCREVを指定しており、両社で異なったバージョンを落としている
ことは考えにくいです。

このエラーが発生する前に、何らかの原因が有る可能性もありますので、
両社で当該レシピの構築時に生成されたlog.do_configure の差分を確認
することをお勧めします。

ファイルの取得状況の差に関しては、両社で当該レシピのbuild実行時の
log.do_fetch を確認すれば、ヒントはつかめるかもしれません。

フォローありがとうございます。

ビルドできている環境では、
SRCREV = "3ff350a12d634bd7c4375ff347254977e9fb5a52"
SRC_URI = "git://github.com/OP-TEE/optee_os.git \
file://0001-allow-setting-sysroot-for-libgcc-lookup.patch \
となっていて、どういうわけだかSRCREVの内容が異なっている、
ということが分かりました。

これは何を意味しているのでしょう。
どこで違いが生じているのでしょう。

<推測1>git checkoutコマンドで誤っている?
<推測2>git clone meta-linaroコマンドで誤っている?
⇒例えば、1年前、2年前といった過去にgit cloneしたままのmeta-linaroを利用している?

SRCREV = "ee595e950f5be1ace3e831261c22a0e99f959046”
は、2018/11/7 付けでcommit された最新版(v3.3) となっています。
古いものが残っているのではなく、新しすぎるバージョンのレシピに
置き換わってしまっています。
git clone 実行後のgit checkout を忘れたか、checkout実行時のpath
を間違えたのが原因として考えられます。

因みに、buildに成功したケースの
SRCREV = "3ff350a12d634bd7c4375ff347254977e9fb5a52"
は、2017/9/26 付けでcommitされたv2.5で、2017/10/26 には
v2.6 にアップデートされています。