[Momonga-devel.ja:01587] Re: OmoiKondara の distcc 対応について


むらけんです.

In message <m3of2x6a4s.wl@xxxxxxxxxx> at Wed, 23 Apr 2003 14:44:19 +0900,
Kazuhiko <kazuhiko@xxxxxxxxxx> wrote:
> リモート1台で分散コンパイルしてみましたがうまく動いています。リモート2台
> 以上のときは、~/.OmoiKondara で
> DISTCC_HOST host1 host2 ...
> みたいな感じでいいのかな (distcc --help を見た感じでは)。

いえ,

  DISTCC_HOST host1
  DISTCC_HOST host2

のように,ホストの数分だけ行を増やしてください.

> > なお,まだクロスコンパイル等には対応してなく,distcc にも限界
> > があるため,使用するホストにインストールされている gcc のバー
> > ジョンは同じにしなければなりません.ただし,ライブラリやヘッダ
> > ファイル等は,OmoiKondara を実行するホストにインストールされて
> > いるだけで大丈夫です.
> 
> spec の変更なしで使えるようになると素敵ですね。でもかたっぱしから distcc 
> を使うとなると、gcc だけでなく、gcc2.96 とか gcc2.95.3 パッケージも入れ
> ておいた方がよさそうですね。

そうですね.OmoiKondara が書き出す rpmmacros で %configure を 

%configure \
  CC="%{?_distcc} ${CC:-gcc}" ; export CC ; \
  CXX="%{?_distcc} ${CXX:-gcc}" ; export CXX ; \
  CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \
  CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \
  FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ; \
  %{?__libtoolize:[ -f configure.in ] && %{__libtoolize} --copy --force ;} \
  ./configure %{_target_platform} \\\
 	--prefix=%{_prefix} \\\
	--exec-prefix=%{_exec_prefix} \\\
	--bindir=%{_bindir} \\\
	--sbindir=%{_sbindir} \\\
	--sysconfdir=%{_sysconfdir} \\\
	--datadir=%{_datadir} \\\
	--includedir=%{_includedir} \\\
	--libdir=%{_libdir} \\\
	--libexecdir=%{_libexecdir} \\\
	--localstatedir=%{_localstatedir} \\\
	--sharedstatedir=%{_sharedstatedir} \\\
	--mandir=%{_mandir} \\\
	--infodir=%{_infodir}


こんな感じに上書きして spec ファイルで %configure を使う,とい
うのが一番簡単かと思います.もちろん,distcc を使う場合だけ 
%_distcc を /usr/bin/distcc に定義します.

%configure を使っていない spec ファイルの場合は個別に対応する
しかないかもしれません.

> あと、手元では ccache も併用していますが、dictcc 先では ccache は関係な
> いのかな。

distcc は /usr/lib/gcc-lib/i586-redhat-linux/3.2.2/cc1 を直接
起動しているみたいなんで,ccache を使うには何かトリックを使わ
ないとダメでしょう.

-- 
1024D/2A3FDBE6 2001-08-26 Kenta MURATA (muraken) <muraken2@xxxxxxxxx>
Key fingerprint = 622A 61D3 280F 4991 4833  5724 8E2D C5E1 2A3F DBE6