Gentoo Linuxな生活​/システム管理関連

make.confって? anchor.png

make.confはGentooがパッケージをコンパイルする場合のコンパイルパラメータを制御する設定ファイルです。これをいろいろいじくると、コンパイルバイナリの出来が変わったり、依存関係が変化したりします。このUSEフラグが結構曲者で、最初にどんなものをインストールしたいかを明確に定めておかないと、パッケージを作り直したりするはめになります。

Page Top

設定項目いろいろ anchor.png

Page Top

CHOSTS,CFLAGS,CXXFLAGS anchor.png

Gentooといえば、コンパイルして最適を作るのが王道。やはりバイナリは最適な奴でないとね♪ 基本的にCXXFLAGSはCFLAGSと同じでいいハズ。CXXFLAGS=CFLAGSね。コンパイル始める前に/proc/cpuinfoみてインストールするPCのCPUは調べましょう。 CPUに適切なCFLAGSはココを見ると便利です。ちなみに、gcc4.0以上から、x86/x86_64については、-march=nativeってのを選べるようになりました。これを使うと、何も考えなくても、最適なコンパイルオプションを選択してくれます。

ただし、distccを使用して、並列コンパイルを行うとき、同じCore2でも、Core2Duo、Corei7、Atomでは、コンパイルオプションが異なるので、展開して書いておいてやる必要があります。調べたいよねーということで、こんなことやるとわかります。

#gcc -E -v -march=native -
Using built-in specs.
Target: x86_64-hawk-linux-gnu
コンフィグオプション: /var/tmp/portage/sys-devel/gcc-4.3.2-r3/work/gcc-4.3.2/configure --prefix=/usr --bindir=/usr/x86_64-hawk-linux-gnu/gcc-bin/4.3.2 --includedir=/usr/lib/gcc/x86_64-hawk-linux-gnu/4.3.2/include --datadir=/usr/share/gcc-data/x86_64-hawk-linux-gnu/4.3.2 --mandir=/usr/share/gcc-data/x86_64-hawk-linux-gnu/4.3.2/man --infodir=/usr/share/gcc-data/x86_64-hawk-linux-gnu/4.3.2/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-hawk-linux-gnu/4.3.2/include/g++-v4 --host=x86_64-hawk-linux-gnu --build=x86_64-hawk-linux-gnu --disable-altivec --disable-fixed-point --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --enable-secureplt --enable-multilib --enable-libmudflap --disable-libssp --enable-libgomp --disable-libgcj --enable-languages=c,c++,treelang,fortran --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.3.2-r3 p1.6, pie-10.1.5'
スレッドモデル: posix
gcc version 4.3.2 (Gentoo 4.3.2-r3 p1.6, pie-10.1.5)
COLLECT_GCC_OPTIONS='-E' '-v'
 /usr/libexec/gcc/x86_64-hawk-linux-gnu/4.3.2/cc1 -E -quiet -v - -march=core2 -mcx16 -msahf --param l1-cache-size=32 --param l1-cache-line-size=64 -mtune=core2
存在しないディレクトリ "/usr/local/include" を無視します
存在しないディレクトリ "/usr/lib/gcc/x86_64-hawk-linux-gnu/4.3.2/../../../../x86_64-hawk-linux-gnu/include" を無視します
#include "..." の探索はここから始まります:
#include <...> の探索はここから始まります:
/usr/lib/gcc/x86_64-hawk-linux-gnu/4.3.2/include
/usr/lib/gcc/x86_64-hawk-linux-gnu/4.3.2/include-fixed
/usr/include
探索リストの終わり

/usr/libexec/gcc/x86_64-hawk-linux-gnu/4.3.2/cc1の行をみると、-march=以降、nativeが展開されていますね~。Core2Duoの場合は、上記が最適オプションみたいよ。make.confに書いといてあげましょう。

Page Top

ネットはPROXY経由だい! anchor.png

という人は、

HTTP_PROXY="http://プロキシーサーバー:ポート"
FTP_PROXY="http://プロキシーサーバー:ポート"
RSYNC_PROXY="http://プロキシーサーバー:ポート"

を追加しておくとよい

Page Top

設定すると便利なUSEフラグ anchor.png

まず、デフォルトのUSEフラグの設定は、

emerge info

と打つと出てきます。USE=ってとこですね。ココに全て載ってます。意味は確認してくださいね。/usr/portage/profiles/use.descにも最新があります。こっちを見てチェックするのが賢いかもね~。何を入れたいかは自分の好みなんですけど、これは入れておくと便利!ってやつを。

cjk多国籍パッケージ対応 日本語なんかは入れておくと対応してくれるかも。
ithreadsスレッドを使う。Pentium4HTなんかには有利かもしんない。しかしPerlしか使わないかも??
sse浮動小数点演算拡張を使う。Intel系CPUはいいかも?
nptlNativePosixThreadを使う。Thread系処理が高速化される。しかし、これをやるとLinux2.6しかチョイスできないから注意
Page Top

並列コンパイル数 anchor.png

(CPU数+1)×2ぐらいが最適値なんだそうです。

MAKEOPTS="-j11"
Page Top

言語選択 anchor.png

日本人なので、日本語選びましょう。

LINGUAS="ja"
Page Top

複数ホストで分散コンパイルする場合は、これを付けときましょう。 anchor.png

FEATURE="distcc"

ちなみに、おじさんは、Core2Duoと、Atom N330のマシン2台で分散コンパイル環境を構築です。なので、MAKEOPTSも、Core2がCPU2つ、AtomN330が4つ、で16なんだけど、コンパイル振り分けにパワー食うので-j11ぐらいで抑えているのですね。


Front page   Freeze Diff Backup Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 6013, today: 4, yesterday: 3
Princeps date: 2009-08-19 (Wed) 00:26:01
Last-modified: 2009-12-27 (Sun) 02:02:53 (JST) (3582d) by maruo
ページ内検索

ログイン

ユーザー名:


パスワード:





パスワード紛失

メインメニュー

サブメニュー
自宅鯖計画

Gentoo Linuxな生活

玄箱HGにGentoo格闘記

航空ショーへ行こう

モータースポーツな世界

奥深き写真の世界への誘い

我思う ゆえに我あり



携帯用QRコード