web-dev-qa-db-ja.com

Ubuntu 12.04でGLIBCをコンパイルできないのはなぜですか?

私はvirtualbox内で実行されているUbuntu 12.04で Linux From Scratchカーネル、バージョン7.1 をコンパイルしようとしています。

チュートリアルの一部は正常に完了しましたが、ステップ5.7:Glibc-2.14.1のビルドに到達すると、作成時にエラーが発生します。

In file included from ../sysdeps/unix/sysv/linux/syslog.c:10:0
../misc/syslog.c: In function '__vsyslog_chk':
../misc/syslog.c:144:9: warning: variable 'prioff' set but not used [-Wunused-but-
    set-variable
../misc/syslog.c:123:1: sorry, unimplemented: inlining failed in call to 'syslog':        
    function body not available.
../misc/syslog.c:155:9: sorry, unimplemented: called from here
make[2]: *** [/mnt/lfs/sources/glibc-build/misc/syslog.o] Error 1
make[2]: Leaving directory `/mnt/lfs/sources/glibc-2.14.1/misc'
make[1]: *** [misc/subdir_lib] Error 2
make[1]: Leaving directory `/mnt/lfs/sources/glibc-2.14.1'
make: ***[all] Error 2

いくつかのグーグルの後、提出されたバグレポートを見ました: http://sourceware.org/bugzilla/show_bug.cgi?id=10375 同じエラーが表示されましたが、解決策を見つけることができませんでした。

どこに向かえばいいの?

7
Eagle

バグレポートはかなり明白です -特に最後の2つの投稿を参照してください。

問題は、(それらの)GLIBCは、Ubuntuのgccによってデフォルトで設定されるFORTIFY_SOURCEオプションと互換性がないことです。

より良い解決策は、問題が修正されたトランクから最新のコピーを取得することです。または、メイクファイルでそのオプションを設定解除(無効化)するか、次のコマンドでmakeを呼び出します。

export CFLAGS=-U_FORTIFY_SOURCE
4
ish