[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>