Linuxカーネルのkconfig設定で依存関係のサイクルを追跡したいと思います。
gcc-6.3でコンパイルすると、問題なく次のことができます。
$ make ARCH=powerpc custom_defconfig
$ make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu-
ところでもうgcc-8.2バージョンでもう一度試してみると何か新しいものが触発されるようだ。代わりに、私は次のようになります。
$ make ARCH=powerpc custom_defconfig
$ make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu-
GEN Makefile
scripts/kconfig/conf --syncconfig Kconfig
*
* Restart config...
*
*
* General architecture-dependent options
*
OProfile system profiling (OPROFILE) [M/n/y/?] m
Kprobes (KPROBES) [Y/n/?] y
Optimize very unlikely/likely branches (JUMP_LABEL) [N/y/?] n
Stack Protector buffer overflow detection (STACKPROTECTOR) [Y/n/?] (NEW)
もちろん、custom_defconfig
最小化を確認しました(savedefconfig
実行と違いはありません)。だからkconfigオプションで何らかのループをトリガーしているようです。カーネル管理者に正確な情報を報告できるように、これをどのように追跡しますか?
答え1
依存関係のサイクルがなく、単にユーザーエラーであり、正しい手順は、構成とビルドの両方で同じコンパイラーを使用することです。たとえば、次のようになります。
$ make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- custom_defconfig
$ make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu-