This service is available only in Japanese-language.

No GNU_HASH in the ELF binary

自作アプリをコンパイルしていると、特定のアプリで
”No GNU_HASH in the ELF binary・・・ didn't pass LDFLAGS? [ldflags]”エラーが発生しました。
TARGET_CC_ARCH += "${LDFLAGS}"、FILES_${PN} = "${bindir}/*"、LDFLAGSをMakefileへ追加など、
実施してみましたがエラーは解消しませんでした。

ネットで調べると、回避策の一つとしてINSANE_SKIP_** = "ldflags"と記載があり、
実施するとコンパイルも無事完了しました。

Yoctoのシステムがデフォルトではsysvになっている(らしい)、
log.do_compileを確認すると--hash-style=gnuでモジュールを作成し、
readelfも.gnu.hashのセクションがあり、GNU_HASHになっているのでは?と考えており、
何が起こっているのか、わからない状況です。

こういった場合、INSANE_SKIPの対処で良いのでしょうか?

オプション
LDFLAGS=-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fstack-protector-strong -Wl,-z,relro,-z,now
CXX=aarch64-poky-linux-g++ -fstack-protector-strong -Wformat -Wformat-security -Werror=format-security --sysroot=/home/****/1.0-r0/recipe-sysroot

makefile
$(CXX) -o ${CND_DISTDIR}/test-app.com $(LDFLAGS) ${OBJECTFILES} -lcap -lpq -lpthread

Linker Hash Styleは、Yocto2.2より変更となっています。
makefileベースの既存ソースのレシピ化する際の設定は、
https://www.yoctoproject.org/docs/3.0.1/dev-manual/dev-manual.html#new-r...
に記載がありますが
EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} -I${S}/include -DWITHOUT_XATTR' 'BUILDDIR=${S}'"
のCFLAGSの設定に合わせて、EXTRA_OEMAKE に 'LDFLAGS=${LDFLAGS}' を追加することで、 make 実行時のLDFLAGSに
bitbake環境のLDFLAGS変数が渡っていきます。

EXTRA_OEMAKEを追加しましたが、状況はかわりませんでした。
他に考えられることはありますか?

bitbake -c cleanall実施時に中間ファイル、オブジェクトも削除していると思っていましたが、
実際には古いモジュールが残ったままで、更新されていないモジュールがありました。
中間ファイル、リンク後のモジュールを削除してmakeを実施したところ、うまくいきました。

EXTRA_OEMAKEで対応出来ました。お騒がせしました。