カーネルヘッダーは、プログラムがカーネルと対話する方法を指定するため、標準ライブラリの構築に関与する必要があることを知りました。それとも? arm-elf ツールチェーン ( http://wiki.ubuntuusers.de/GNU_ARM-Toolchain )を構築する方法を非常によく説明するチュートリアルを読みました。
私を混乱させているのは、このプロセスにカーネルヘッダーが関与していないことです。彼らはgccを設定します
../gcc-4.3.2/configure --target=arm-elf --prefix=/opt/gnuarm --enable-interwork --enable-multilib --enable-languages="c,c++" --enable-target-optspace --with-float=soft --with-newlib --with-headers=../newlib-1.16.0/newlib/libc/include/ --disable-nls
とNewlib
../newlib-1.16.0/configure --target=arm-elf --prefix=/opt/gnuarm --enable-interwork --enable-multilib --enable-target-optspace --with-float=soft
彼らはnewlibからのみヘッダーを取得しているように思えます(glibcの代わりにnewlibを使用しています)。このディレクトリ内のファイルは、非常に汎用的に見えます。Linux の「カーネル バージョン」がこのプロセスのどこかに表示されることを期待していますが、そうではありません。Linux ABI は、カーネル バージョンからカーネル バージョンに変更できると考えました。カーネル (ヘッダー) と gcc ツールチェーン間の「接続」はどのようになっていますか?