[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
pkgsrc/doc/guide/files/platforms.xml: 1.27 -> 1.28
以下のページの更新をしました。ツッコミをお願いします。
pkgsrc/doc/guide/files/platforms.xml: 1.27 -> 1.28
> revision 1.28
> date: 2006/02/18 19:59:12; author: rillig; state: Exp; lines: +65 -7
> Bootstrapping pkgsrc to build 64-bit binaries on Solaris with SunPro is
> non-trivial. At least, it's documented now.
水曜日までに異議がなければ、 commit します。
以下、訳と原文それぞれの新旧の差分です。
--- platforms.xml.orig 2006-10-31 23:45:33.000000000 +0900
+++ platforms.xml 2006-10-31 23:45:33.000000000 +0900
@@ -1,6 +1,6 @@
-<!-- $NetBSD: platforms.xml,v 1.27 2006/02/14 17:10:15 rillig Exp $ -->
+<!-- $NetBSD: platforms.xml,v 1.28 2006/02/18 19:59:12 rillig Exp $ -->
<!-- Based on english version: -->
-<!-- NetBSD: platforms.xml,v 1.27 2006/02/14 17:10:15 rillig Exp -->
+<!-- NetBSD: platforms.xml,v 1.28 2006/02/18 19:59:12 rillig Exp -->
<chapter id="platforms">
<title>&os; 以外のシステムで pkgsrc を使う</title>
@@ -560,6 +560,11 @@
<para>なお、 Solaris 上では GNU binutils
はサポートされて<emphasis>いません</emphasis>。</para>
+ <para>どのコンパイラーを使うにせよ、コンパイラーツールと
+ $prefix を、必ず <varname>PATH</varname> に含めてください。
+ これは、<filename>/usr/ccs/{bin,lib}</filename>
+ や、たとえば <filename>/usr/pkg/{bin,sbin}</filename> などです。</para>
+
<sect3 id="solaris-gcc-note">
<title>gcc を使う場合</title>
@@ -602,16 +607,69 @@
CPP= /usr/ccs/lib/cpp
</programlisting>
- <para>64 ビットバイナリーを構築したい場合は、以下のようにします。</para>
+</sect3>
+<sect3 id="solaris-sunpro-64">
+<title>SunPro を使って 64 ビットバイナリーを構築する</title>
+
+ <para>64 ビットバイナリーの構築は、少し巧妙なやり方になります。
+ 最初に、pkgsrc のブートストラップを 64 ビットモードでおこなう必要があります。
+ ここでの問題は、ブートストラップキットに含まれているプログラムのひとつ
+ (<filename>bmake</filename>) の構築中に、<varname>CFLAGS</varname>
+ 変数が、たとえ環境変数に設定しても、無視されることです。
+ このバグを回避するには、以下のような簡単なシェルスクリプトを、
+ <filename>cc64</filename> という名前で <varname>PATH</varname>
+ 中のどこかに置きます。</para>
+
+<programlisting>
+ #! /bin/sh
+ exec /opt/SUNWspro/bin/cc -xtarget=ultra -xarch=v9 ${1+"$@"}
+</programlisting>
+
+ <para>次に、<varname>CC</varname> の定義を
+ <command>bootstrap</command> コマンドの環境変数に渡します。</para>
+
+<programlisting>
+ &uprompt; <userinput>cd bootstrap</userinput>
+ &uprompt; <userinput>CC=cc64 ./bootstrap</userinput>
+</programlisting>
+
+ <para>ブートストラップをした後は、パッケージのバグを見つけたいのか、
+ システムを手っ取り早く使えるようにしたいだけなのかによって、
+ 二通りの選択肢があります。システムを使えるようにしたいだけの場合は、
+ 以下の各行を <filename>mk.conf</filename>
+ ファイルに付け足します。</para>
<programlisting>
- CFLAGS= -xtarget=ultra -xarch=v9
+ CC= cc64
+ CXX= CC64
+ PKGSRC_COMPILER= sunpro
</programlisting>
- <para>どのコンパイラーを使うにせよ、コンパイラーのツールと
- $prefix が <varname>PATH</varname> にあることを確認してください。
- これは <filename>/usr/ccs/{bin,lib}</filename> と、
- たとえば <filename>/usr/pkg/{bin,sbin}</filename> などです。</para>
+ <para>この方法を使うと、あらゆるコンパイラーの呼び出しが、
+ 上で定義されたラッパーを介しておこなわれるようになり、
+ 必要な ABI オプションが自動的に追加されます。(シェルスクリプト
+ <filename>CC64</filename> も忘れずに作っておいてください。)</para>
+
+ <para>ユーザーが指定した
+ <varname>CFLAGS</varname> や <varname>CXXFLAGS</varname>
+ を無視するパッケージを見つけるには、以下の各行を <filename>mk.conf</filename>
+ ファイルに付け足します。</para>
+
+<programlisting>
+ CC= cc
+ CXX= CC
+ PKGSRC_COMPILER= sunpro
+ CFLAGS= -xtarget=ultra -xarch=v9
+ CXXFLAGS= -xtarget=ultra -xarch=v9
+ LDFLAGS= -xtarget=ultra -xarch=v9
+</programlisting>
+
+ <para>設定ファイルで指定されたフラグを使わないパッケージは、
+ 32 ビットバイナリーを構築しようとして、リンクに失敗します。
+ このようなものを見つけることは、
+ エラーが表に出ずに黙って先に進むような他のプラットフォームでのバグを予防するために、
+ 有用です。</para>
+
</sect3>
<sect3 id="plat.sunos.problems"><title>ありがちな問題</title>
Index: platforms.xml
===================================================================
RCS file: /cvsroot/pkgsrc/doc/guide/files/platforms.xml,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- platforms.xml 14 Feb 2006 17:10:15 -0000 1.27
+++ platforms.xml 18 Feb 2006 19:59:12 -0000 1.28
@@ -1,4 +1,4 @@
-<!-- $NetBSD: platforms.xml,v 1.27 2006/02/14 17:10:15 rillig Exp $ -->
+<!-- $NetBSD: platforms.xml,v 1.28 2006/02/18 19:59:12 rillig Exp $ -->
<chapter id="platforms">
<title>Using pkgsrc on systems other than &os;</title>
@@ -551,6 +551,11 @@
<para>Please note the use of GNU binutils on Solaris is
<emphasis>not</emphasis> supported.</para>
+ <para>Whichever compiler you use, please ensure the compiler tools and
+ your $prefix are in your <varname>PATH</varname>. This includes
+ <filename>/usr/ccs/{bin,lib}</filename>
+ and e.g. <filename>/usr/pkg/{bin,sbin}</filename>.</para>
+
<sect3 id="solaris-gcc-note">
<title>If you are using gcc</title>
@@ -593,16 +598,69 @@
CPP= /usr/ccs/lib/cpp
</programlisting>
- <para>You may also want to build 64-bit binaries, e.g.:</para>
+</sect3>
+<sect3 id="solaris-sunpro-64">
+<title>Buildling 64-bit binaries with SunPro</title>
+
+ <para>Building 64-bit binaries is a little trickier. First, you
+ need to bootstrap pkgsrc in 64-bit mode. One problem here is
+ that while building one of the programs in the bootstrap kit
+ (<filename>bmake</filename>), the <varname>CFLAGS</varname>
+ variable is not honored, even if it is set in the environment.
+ To work around this bug, you can create a simple shell script
+ called <filename>cc64</filename> and put it somewhere in the
+ <varname>PATH</varname>:</para>
<programlisting>
- CFLAGS= -xtarget=ultra -xarch=v9
+ #! /bin/sh
+ exec /opt/SUNWspro/bin/cc -xtarget=ultra -xarch=v9 ${1+"$@"}
</programlisting>
- <para>Whichever compiler you use, please ensure the compiler tools and
- your $prefix are in your <varname>PATH</varname>. This includes
- <filename>/usr/ccs/{bin,lib}</filename>
- and e.g. <filename>/usr/pkg/{bin,sbin}</filename>.</para>
+ <para>Then, pass the definition for <varname>CC</varname> in the
+ environment of the <command>bootstrap</command> command:</para>
+
+<programlisting>
+ &uprompt; <userinput>cd bootstrap</userinput>
+ &uprompt; <userinput>CC=cc64 ./bootstrap</userinput>
+</programlisting>
+
+ <para>After bootstrapping, there are two alternative ways,
+ depending on whether you want to find bugs in packages or get
+ your system ready quickly. If you just want a running system,
+ add the following lines to your <filename>mk.conf</filename>
+ file:</para>
+
+<programlisting>
+ CC= cc64
+ CXX= CC64
+ PKGSRC_COMPILER= sunpro
+</programlisting>
+
+ <para>This way, all calls to the compiler will be intercepted by
+ the above wrapper and therefore get the necessary ABI options
+ automatically. (Don't forget to create the shell script
+ <filename>CC64</filename>, too.)</para>
+
+ <para>To find packages that ignore the user-specified
+ <varname>CFLAGS</varname> and <varname>CXXFLAGS</varname>, add
+ the following lines to your <filename>mk.conf</filename>
+ file:</para>
+
+<programlisting>
+ CC= cc
+ CXX= CC
+ PKGSRC_COMPILER= sunpro
+ CFLAGS= -xtarget=ultra -xarch=v9
+ CXXFLAGS= -xtarget=ultra -xarch=v9
+ LDFLAGS= -xtarget=ultra -xarch=v9
+</programlisting>
+
+ <para>Packages that don't use the flags provided in the
+ configuration file will try to build 32-bit binaries and fail
+ during linking. Detecting this is useful to prevent bugs on
+ other platforms where the error would not show up but pass
+ silently.</para>
+
</sect3>
<sect3 id="plat.sunos.problems"><title>Common problems</title>