[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
pkgsrc/doc/guide/files/platforms.xml: 1.5 -> 1.7
以下のページの更新をしました。ツッコミをお願いします。
pkgsrc/doc/guide/files/platforms.xml: 1.5 -> 1.7
> revision 1.7
> date: 2005/04/10 22:45:25; author: jschauma; state: Exp; lines: +54 -10
> Don't use — -- this doesn't seem to know about it.
> Import README.Linux
> ----------------------------
> revision 1.6
> date: 2005/04/10 22:21:54; author: jschauma; state: Exp; lines: +15 -2
> synch with last changes to bootstrap and READMEs
火曜日までに異議がなければ、 commit します。
以下、訳と原文それぞれの新旧の差分です。
--- platforms.xml.orig 2006-09-11 22:58:10.000000000 +0900
+++ platforms.xml 2006-09-11 22:58:10.000000000 +0900
@@ -1,6 +1,6 @@
-<!-- $NetBSD: platforms.xml,v 1.5 2005/03/21 21:40:28 tv Exp $ -->
+<!-- $NetBSD: platforms.xml,v 1.7 2005/04/10 22:45:25 jschauma Exp $ -->
<!-- Based on english version: -->
-<!-- NetBSD: platforms.xml,v 1.5 2005/03/21 21:40:28 tv Exp -->
+<!-- NetBSD: platforms.xml,v 1.7 2005/04/10 22:45:25 jschauma Exp -->
<chapter id="platforms">
<title>&os; 以外のシステムで pkgsrc を使う</title>
@@ -130,7 +130,7 @@
<emphasis>prefix</emphasis> 以外の場所にしたい場合は、
明らかに別のシンボリックリンクが必要になります。たとえば、</para>
- <screen>&rprompt; <userinput>./bootstrap --pkgdbdir=/usr/pkg/pkgdb --pkgsrcdir=/Volumes/ufs/pkgsrc</userinput></screen>
+ <screen>&rprompt; <userinput>./bootstrap --pkgdbdir /usr/pkg/pkgdb --pkgsrcdir /Volumes/ufs/pkgsrc</userinput></screen>
<para>Mac OS X のインストール時にパーティションを作り、
UFS でフォーマットした場合は、ブート時に自動的に
@@ -332,16 +332,72 @@
ローカルの設定に依存するオプションを設定したい場合があるかもしれません。
詳細は、<filename>pkgsrc/mk/defaults/mk.conf</filename> をご覧ください。
そしてもちろん、お使いのコンパイラーのマニュアルページもご覧ください。</para>
+
+ <para>SGI の MIPSPro コンパイラーを使っている場合は、
+ <filename>/etc/mk.conf</filename> で
+ <programlisting>PKGSRC_COMPILER=mipspro</programlisting> を設定してください。これを設定しないと、
+ pkgsrc は gcc を使っていることを仮定するので、コンパイラーに不適切なフラグを渡すことがあります。
+ なお、標準状態では、bootstrap は適切な <filename>mk.conf.example</filename>
+ を作成するはずです。</para>
+
+ <para>gcc と MIPSPro コンパイラーチェインの両方をインストールしているが、
+ 必ず MIPRPro を使うようにしたい場合は、<varname>PATH</varname>
+ に gcc の場所 (ありがちなのは
+ <filename>/usr/freeware/bin</filename>) を<emphasis>含めない</emphasis>でください。さらに (重要)、
+ '--preserve-path' フラグを bootstrap に渡してください。</para>
</sect2>
-<!--
-<sect2>
-<title>Linux</title>
-<para>
-... XXX
-</para>
-</sect2>
--->
+ <sect2>
+ <title>Linux</title>
+
+ <para>
+ Linux のなかには、libtermcap と libcurses (libncurses) のいずれかを必要とするものがあります
+ (たとえば Debian GNU/Linux など)。そのようなディストリビューションでは
+ libncurses-dev パッケージ (または相当品) をインストールすれば問題なくなるはずです。</para>
+
+ <para>
+ pkgsrc は gcc (GNU Compiler Collection) と icc (Intel C++
+ Compiler) のどちらにも対応しています。gcc が標準で使われます。icc は i386 上の icc 8.0 と 8.1 で確認がおこなわれています。
+ </para>
+
+ <para>icc を使って bootstrap をおこなうには、以下のようにします
+ (icc は標準のディレクトリーにインストールされているものとします)。
+ <programlisting>env CC=/opt/intel_cc_80/bin/icc LDFLAGS=-static-libcxa \
+ ac_cv___attribute__=yes ./bootstrap</programlisting></para>
+
+ <note>
+ <para>icc 8.1 では、引数の -static-libcxa を `-i-static' にする必要があります。</para>
+ </note>
+
+ <para>icc は __attribute__ に対応していますが、GNU configure のテストではネストした関数を使っており、
+ icc はネストした関数に対応していません。__attribute__ を #undef してしまうと、
+ Linux の多くのヘッダーファイルが __attribute__ なしでは正しくコンパイルできず、
+ 壊れてしまうという副作用があります。このため、テストは、コンパイラーが
+ __attribute__ に対応しているとしたもので上書きする必要があります。</para>
+
+ <para>bootstrap した後に、<filename>/etc/mk.conf</filename> で
+ <varname>PKGSRC_COMPILER</varname> を設定します。
+ <programlisting>PKGSRC_COMPILER=icc</programlisting></para>
+
+ <para>icc がインストールされるディレクトリーは標準では
+ <filename>/opt/intel_cc_80</filename> であり、pkgsrc
+ でもこのディレクトリーを標準としています。これ以外のディレクトリーに
+ icc をインストールしている場合は、<filename>/etc/mk.conf</filename> で
+ <varname>ICCBASE</varname> を設定してください。
+ <programlisting>ICCBASE=/opt/icc</programlisting></para>
+
+ <para>pkgsrc は、icc が提供する実行時ライブラリーを静的リンクするので、
+ 作られたバイナリーはその共有ライブラリーがインストールされていないシステムでも
+ 動かすことができます。</para>
+
+ <para>ただし、libtool は、C++ の共有ライブラリーをリンクして記録する時に実行された
+ (ライブラリーごとに -Bstatic や -Bdynamic オプションの指定がまちまちな)
+ ld(1) コマンドをもとにライブラリーの一覧を展開します
+ このことから、libtool でリンクされた C++ の共有ライブラリーは、libtool が修正されない限り、
+ icc のライブラリーに対して実行時依存性を持った状態になります。
+ </para>
+
+ </sect2>
<sect2>
<title>OpenBSD</title>
Index: platforms.xml
===================================================================
RCS file: /cvsroot/pkgsrc/doc/guide/files/platforms.xml,v
retrieving revision 1.5
retrieving revision 1.7
diff -u -r1.5 -r1.7
--- platforms.xml 21 Mar 2005 21:40:28 -0000 1.5
+++ platforms.xml 10 Apr 2005 22:45:25 -0000 1.7
@@ -1,4 +1,4 @@
-<!-- $NetBSD: platforms.xml,v 1.5 2005/03/21 21:40:28 tv Exp $ -->
+<!-- $NetBSD: platforms.xml,v 1.7 2005/04/10 22:45:25 jschauma Exp $ -->
<chapter id="platforms">
<title>Using pkgsrc on systems other than &os;</title>
@@ -129,7 +129,7 @@
place the package database directory outside the
<emphasis>prefix</emphasis>. e.g.</para>
- <screen>&rprompt; <userinput>./bootstrap --pkgdbdir=/usr/pkg/pkgdb --pkgsrcdir=/Volumes/ufs/pkgsrc</userinput></screen>
+ <screen>&rprompt; <userinput>./bootstrap --pkgdbdir /usr/pkg/pkgdb --pkgsrcdir /Volumes/ufs/pkgsrc</userinput></screen>
<para>If you created your partitions at the time of installing Mac OS X
and formatted the target partition as UFS, it should automatically
@@ -328,16 +328,73 @@
as imake(1), but you may want to set some options depending on your local
setup. Please see <filename>pkgsrc/mk/defaults/mk.conf</filename> and, of
course, your compilers man pages for details.</para>
+
+ <para>If you are using SGI's MIPSPro compiler, please set
+ <programlisting>PKGSRC_COMPILER=mipspro</programlisting>
+ in <filename>/etc/mk.conf</filename>. Otherwise, pkgsrc will assume you
+ are using gcc and may end up passing invalid flags to the compiler. Note that
+ bootstrap should create an appropriate <filename>mk.conf.example</filename> by
+ default.</para>
+
+ <para>If you have both the MIPSPro compiler chain installed as well as gcc,
+ but want to make sure that MIPRPro is used, please set your <varname>PATH</varname>
+ to <emphasis>not</emphasis> include the location of gcc (often
+ <filename>/usr/freeware/bin</filename>), and (important) pass the
+ '--preserve-path' flag.</para>
</sect2>
-<!--
-<sect2>
-<title>Linux</title>
-<para>
-... XXX
-</para>
-</sect2>
--->
+ <sect2>
+ <title>Linux</title>
+
+ <para>
+ Some versions of Linux (for example Debian GNU/Linux) need either
+ libtermcap or libcurses (libncurses). Installing the distributions
+ libncurses-dev package (or equivalent) should fix the problem.</para>
+
+ <para>
+ pkgsrc supports both gcc (GNU Compiler Collection) and icc (Intel C++
+ Compiler). gcc is the default. icc 8.0 and 8.1 on i386 have been tested.
+ </para>
+
+ <para>To bootstrap using icc, assuming the default icc installation
+ directory:
+ <programlisting>env CC=/opt/intel_cc_80/bin/icc LDFLAGS=-static-libcxa \
+ ac_cv___attribute__=yes ./bootstrap</programlisting></para>
+
+ <note>
+ <para>icc 8.1 needs the `-i-static' argument instead of -static-libcxa.</para>
+ </note>
+
+ <para>icc supports __attribute__, but the GNU configure test uses a nested
+ function, which icc does not support. #undef'ing __attribute__ has the
+ unfortunate side-effect of breaking many of the Linux header files, which
+ cannot be compiled properly without __attribute__. The test must be
+ overridden so that __attribute__ is assumed supported by the
+ compiler.</para>
+
+ <para>After bootstrapping, you should set <varname>PKGSRC_COMPILER</varname>
+ in <filename>/etc/mk.conf</filename>:
+ <programlisting>PKGSRC_COMPILER=icc</programlisting></para>
+
+ <para>The default installation directory for icc is
+ <filename>/opt/intel_cc_80</filename>, which
+ is also the pkgsrc default. If you have installed it into a different
+ directory, set <varname>ICCBASE</varname> in
+ <filename>/etc/mk.conf</filename>:
+ <programlisting>ICCBASE=/opt/icc</programlisting></para>
+
+ <para>pkgsrc uses the static linking method of the runtime libraries
+ provided by icc, so binaries can be run on other systems which do not
+ have the shared libraries installed.</para>
+
+ <para>Libtool, however, extracts a list of libraries from the ld(1)
+ command run when linking a C++ shared library and records it, throwing
+ away the -Bstatic and -Bdynamic options interspersed between the libraries.
+ This means that libtool-linked C++ shared libraries will have a
+ runtime dependency on the icc libraries until this is fixed in libtool.
+ </para>
+
+ </sect2>
<sect2>
<title>OpenBSD</title>