Sun Studio 11 x86に関するページ

Sunの開発環境です。無償で利用可能です。

入手

入手ファイル

Sun Studio のページから右側メニューの[Get the Software]をたどって「Sun Studio 11 - Electronic Software Download (Multilanguage)」のDownload列でInt'lのリンクを選択します。

Accept欄をクリックした後で、Solaris x86 Platform Sun[tm] Studio 11をクリックします。

パッチ

Sun Studio 11のパッチ

Sun Studio Patchesページからダウンロードします。

2006/10/4現在のx86/x64版SunStudio11パッチ情報
パッチID リビジョン リリース日 備考
120759 08 2006/08/21 バックエンド・コンパイラ共通パッチ
120762 02 2006/08/30 パフォーマンスアナライザツールパッチ
121016 03 2006/08/30 Cコンパイラパッチ
121018 05 2006/10/14 C++コンパイラパッチ
121020 03 2006/09/12 Fortran 95コンパイラパッチ
121022 02 2006/10/14 Fortran 95ダイナミックライブラリパッチ
121616 02 2006/08/30 dbxデバッガパッチ
122136 02 2006/10/10 パフォーマンスライブラリパッチ
122143 01 2006/08/31 dbx GUIプラグインとCPPモジュールパッチ

SunStudio 11インストール後に、それぞれパッチを適用します。

# ls
120759-08    121016-03    121020-03    121616-02
120762-02    121018-04    121022-01
# patchadd -G -M . 120759-08 120762-02 121016-03 121018-04 121020-03 121022-01 121616-02
    :
#

-Gオプションを指定しないと駄目なようです。-Mオプションは1回で複数のパッチをインストールするときに指定します。

OSのパッチ

Solaris 10 x86/x64のパッチのうちSun Studio 11に必要なパッチをダウンロードします。なお、OS側でパッチを更新していれば、以下は既に適用済みであるかもしれません。

2006/10/4現在のSolaris 10 x86版SunStudio11パッチ情報
パッチID リビジョン リリース日 備考
118677 02 2006/03/20 makeおよびsccsパッチ
118855 19 2006/09/21 Solaris 10 x86カーネルパッチ
119961 02 2006/01/19 アセンブラパッチ
119964 07 2006/08/07 C++共有ライブラリパッチ
120754 02 2006/01/19 マイクロタスキングライブラリ(libmtsk)パッチ
121621 02 2006/03/27 mediaLibのパッチ

OS標準のSun Update Managerでパッチをインストールする場合

Sun Update Managerでアップデート対象パッチの中にSun Studio 11関連のパッチもリストされます。しかし、パッチ適用でエラーとなって失敗します。回避方法については、Solaris10のパッチの記述を参照。

SunStudio 11のインストール

インストール実施

まず、studio11-sol-x86.tar.bz2を展開します。

# gtar xjf studio11-sol-x86.tar.bz2
# ls -a
.install
InstallGuide_Solaris.pdf
SunStudio11_SLA.html
THIRDPARTYLICENSEREADME.html
batch_installer
installer
kits
#

そして、インストーラをコマンドライン環境用で実行します。

# ./installer -nodisplay

Sun Studio 11インストールウィザードへようこそ。この統合開発ツールによって、エン
タープライズアプリケーションの開発や配備が可能になります。


   <継続するには Enter キーを押してください。> {"!" 終了} 

[Enter]キーを押すと、ライセンスが表示されます。最後まで表示されると、ライセンスに同意するかどうか聞いてきます。

(ライセンスが表示される)

   次のプロンプトに「同意する」と入力して、この契約書に同意してください。この契
   約書に同意しない場合は「同意しない」、または「!」を入力してインストールを終了
   させてください。 {"<" 戻る, "!" 終了} 同意する

"同意する"とタイプするとインストールに移ります。英語、日本語、中国語の地域化データのどれを選択するか聞いてきます。

ボックスがチェックされた言語の、Select Locale 地域化データがインストールされます:


 [X]  1  英語 [en]
 [X]  2  日本語 [ja]
 [X]  3  中国語 [zh]

   特定のロケールを確認するには、対応する番号を入力してください。確認が終了したら
 0 を入力してください [0] {"<" 戻る, "!" 終了}: 3

ボックスがチェックされた言語の、Select Locale 地域化データがインストールされます:


 [X]  1  英語 [en]
 [X]  2  日本語 [ja]
 [ ]  3  中国語 [zh]

   特定のロケールを確認するには、対応する番号を入力してください。確認が終了したら
 0 を入力してください [0] {"<" 戻る, "!" 終了}: 0

インストールする製品種類を聞いてきます。
"Solaris patches"は、現状はSolaris 8/9用のものだけなので[No Install]にします。(Installでも支障はないと思われます)
"J2SE SDK 1.4.2 Solaris OS"は、Solaris10標準搭載のJ2SE SDK 1.4.2があるので、[No Install]にします。

インストールするコンポーネントの、デフォルトインストールまたはカスタムインストール
の列にあるボタンをクリックしてください。カスタムインストールを選択した場合、詳細な
コンポーネントを選択することができます。継続するには「次へ」をクリックします。

     No Install  Default Install  Custom Install  Product
     ----------  ---------------  --------------  -------
 0.  [ ]         [X]              [ ]             Solaris patches
 1.  [ ]         [X]              [ ]             Sun Studio Software
 2.  [ ]         [X]              [ ]             Documentation
 3.  [ ]         [X]              [ ]             Source Distribution
 4.  [ ]         [X]              [ ]             Sun Performance Library
 5.                                               Done
    変更する製品に対応する番号を入力してください。終了するには、Done に対応する
番号を選択してください。[5] {"<" 戻る, "!" 終了}: 5

Selected: Solaris patches

1. No Install
2. Default Install
3. Custom Install

   Selection for Solaris patches [2] {"<" 戻る, "!" 終了} 1

Select the components you want to install by clicking the radio button in the
Default Install column or Custom Install column. If you choose a Custom
Install, you can select which subcomponents you want to install. To continue,
click Next.

     No Install  Default Install  Custom Install  Product
     ----------  ---------------  --------------  -------
 0.  [X]         [ ]              [ ]             Solaris patches
 1.  [ ]         [X]              [ ]             Sun Studio Software
 2.  [ ]         [X]              [ ]             Documentation
 3.  [ ]         [X]              [ ]             Source Distribution
 4.  [ ]         [X]              [ ]             Sun Performance Library
Patches
 5.                                               Done
   Enter the number next to the product you wish to change.
   Select the number that corresponds with Done when you are finished. [5] 
   {"<" 戻る, "!" 終了}: 5

インストールする製品種別を指定したら、"5"をタイプします。

インストール先ディレクトリを聞いてきます。デフォルトの/optのままなので、そのまま[Enter]キーを押します。

Enter the directory name where you want to install the product.

   Studio Software [/opt] {"<" 戻る, "!" 終了} [Enter]

インストール確認が表示されます。

ディスク容量を確認中です。


次の項目がインストールされます:

製品: Sun Studio Software
位置: /opt
サイズ: 639.21 MB
-----------------------

製品: Documentation
位置: /opt
サイズ: 12.54 MB
-----------------

製品: Source Distribution
位置: /opt
サイズ: 2.02 MB
-----------------------

製品: Sun Performance Library
位置: /opt
サイズ: 151.34 MB
---------------------------

インストールの準備完了

1. インストール開始
2. 最初に戻る
3. インストール終了

    次の処理を選択してください。 [1] {"<" 戻る, "!" 終了} 1

"1"を入力すると、インストールが開始されます。

Sun Studio Software をインストール中
|-1%--------------25%-----------------50%-----------------75%--------------100%|

Documentation をインストール中
|-1%--------------25%-----------------50%-----------------75%--------------100%|

Source Distribution をインストール中
|-1%--------------25%-----------------50%-----------------75%--------------100%|

Sun Performance Library をインストール中
|-1%--------------25%-----------------50%-----------------75%--------------100%|


インストールの詳細:

     製品                       結果        詳細
 1.  Sun Studio Software      インストール済み  利用可
 2.  Documentation            インストール済み  利用可
 3.  Source Distribution      インストール済み  利用可
 4.  Sun Performance Library  インストール済み  利用可

 5. 完了

   詳細を表示したい項目を対応する番号で選択してください。継続する場合は 5 を入力
してください [5] {"!" 終了}: 5

"5"を入力します。

The installation and licensing log files are located at /var/sadm/install/logs.
To view a log file, type at the prompt:
% cd /var/sadm/install/logs; more <filename> 


If you installed any component of the Sun Studio 11 developer tools on a
network server, you can use the email template /<install-
directory>/SUNWspro/READMEs/email_template.txt to send getting started
information to the developers who use the network-installed software.


Be sure to register the product using the Registration Wizard available from
the integrated development environment (IDE).


To run the IDE, type at the prompt:
% sunstudio 


   <継続するには Enter キーを押してください。> {"<" 戻る, "!" 終了} [Enter]
#

パッチの適用

ダウンロードしたパッチをインストールします。zip形式を解凍し、patchaddコマンドでインストールします。

# patchadd -G 120759-08
   :
#

-Gオプションを指定しないとパッチが当てられません。
また、-dオプションを指定すると、バックアウト用のファイル保存を行わいません。

利用設定

ユーザ環境

SunStudioとGCCとの設定切り替え

開発ツール

リンカ関係

dumpstabsコマンド

ELF形式の実行ファイル(共有ライブラリファイル)の情報を見ることができます。(/usr/ccs/bin/nmコマンドでもシンボル情報は見れます)

情報の中には、コンパイラのバージョン(パッチID)、コンパイルオプションが含まれています。

その他メモ

エラー関連

__rwstd::InterlockedDecrement / __rwstd::InterlockedIncrement が未定義

たまに実行時にこのエラーが出ることがありました。原因・解決方法は未定です。

この関数はどちらもlibCstdにて定義されているもので、発生した場合に以下の試行錯誤が有効な場合があります。

C/C++プラットフォーム定義(define)関係

定義一覧

Sun C++コンパイラ固有の定義
__ARRAYNEW
-features=[no%]arraynew指定で制御される定義。(標準モードでは指定不可)
__BOOL
-features=[no%]bool指定で制御される定義。
未定義:-features=no%bool指定時
1:-features=bool指定時(デフォルト)
__BUILTIN_VA_ARG_INCR
varargs.h, stdarg.h, sys/varargs.hに関連
__cplusplus
(ISO C/C++規格の適合性に関する定義に記載)
__DATE__
(要調査)
__FILE__
(要調査)
__LINE__
(要調査)
__STDC__
(ISO C/C++規格の適合性に関する定義に記載)
__sun
(要調査)
sun
(要調査)
__SUNPRO_CC
0x580に設定
__SUNPRO_CC_COMPAT
-compat[={4|5}]指定で制御される定義。
4:-compat=4指定時
5:-compat=5指定時(コンパイラのデフォルト)
__i386
x86
i386
(要調査)+pが使用されていると未定義
__REENTRANT
-mtオプションを指定を付けると定義される。
ISO C/C++規格、POSIX、XOPEN規格の適合性に関する定義
_POSIX_C_SOURCE
POSIX完全準拠のアプリケーションをコンパイルする際に指定する必要がある。POSIX規格以外の型定義・関数の使用を排除することになる。
未定義:非POSIX互換
1:POSIX.1-1990互換
2:POSIX.2-1992互換
199309L:POSIX.1b-1993互換(リアルタイム)
199506L:POSIX.1c-1995互換(POSIXスレッド)
200112L:POSIX.1-2001互換(Austin Group版)
<sys/feature_test.h>において、ユーザーが未定義のときは1が設定される。
socket APIを使用するアプリケーションで_POSIX_C_SOURCE=199506Lを指定する場合、__EXTENSIONS__も定義しないと、socket APIがPOSIX規格外なので問題になる(らしい)。
__XOPEN_OR_POSIX
<sys/feature_test.h>において、_XOPEN_SOURCEまたは_POSIX_C_SOURCEが定義されていると定義される
_STRICT_STDC
<sys/feature_test.h>において、__STDC__が1のとき定義される
_STDC_C99
<sys/feature_test.h>において、__STDC_VERSIONが199901L(C99規格)以上のとき定義される
__STDC__
未定義:ISO/IEC C規格に非適合(-Xs : K&R)
0:ISO/IEC C規格外の拡張を許している場合(-Xa : デフォルト, -Xt : transitional)
1:ISO/IEC C規格に厳密に適合している場合(-Xc : strictly conforming)
__STDC_VERSION__
ISO/IEC C95以降の規格で追加された定義。
未定義:ISO C規格に非対応
1:C90規格に対応
199409L:C90:AMD1規格に対応
199901L:C99規格に対応
__SUNPRO_C
Sun Cコンパイラのバージョン識別。16進3桁でバージョン番号を識別。0xVRP
V:バージョン、R:リビジョン、P:パッチ。例)0x580 => 5.8
__SUNPRO_CC
Sun C++コンパイラのバージョン識別。書式は__SUNPRO_Cと同一。
__SUNPRO_CC_COMPAT
Sun C++コンパイラ互換モード種類の識別。
4 : ARM準拠
5 : ISO規格
__sun
Sunコンパイラの場合定義される。
__i386
Intelアーキテクチャのコード生成時に定義される
__cplusplus
1 : ARM互換モード(SunC++コンパイラの-compat=4指定時)
199711L : ISO規格モード
_XOPEN_SOURCE
500未満:XPG3、XPG4、XPG4v2
500:SUSv2(XPG5)
600:SUSv3(XPG6)
_XOPEN_VERSION
4:XPG4

Solaris 10

Solaris 10は、IEEE 1003.1、IEEE 1003.2をサポートしています。以下の定義が含まれます。
POSIX.1-1990, POSIX.1b-1993, POSIX.1c-1996, POSIX.2-1992, POSIX.2a-1992更新
また、X/Open共通アプリケーション環境ポータビリティガイドのXPG3, XPG4, XPG4v2, シングルUNIX仕様SUSv2(XPG5), SUSv3(XPG6), XNS4, XNS5をサポートしています。

SUS:Single UNIX Specification。XPG4の後継。

UNIXの標準化の歴史には、IEEEによるPOSIXの流れ、The Open GroupによるX/Openの流れ、ISO/IECの規格と3系統がありましたが、これら3つの団体が共同で統一標準を出すに至り、ようやく1つのUNIX標準が規定されるようになりました。

X/Open

The Open Groupが規定しているUNIX標準仕様。

X/Open Portability Guide, Issue 3 : XPG3
    SVID3のユーティリティを含むPOSIX.1-1988のスーパーセット
X/Open CAE Specification, Issue 4: XPG4
    XPG3に加えてPOSIX.1-1990、POSIX.2-1992、POSIX.2a-1992
X/Open CAE Specification, Issue 4, Version 2: XPG4v2
    UNIX 95 (SUS or SUSv1)
    BSDインタフェースを含むXPG4のスーパーセット
X/Open CAE Specification, Issue 5: XPG5
    UNIX 98 (SUSv2)
    SUSの拡張(POSIX.1b-1993、POSIX.1c-1996、ISO/IEC 9899 Amendment 1)
Open Group Technical Standard, Issue 6: XPG6
    SUSv3
    IEEE Std. 1003.1-2001 and ISO/IEC 9945:2002
    この規格は、X/OpenとPOSIX規格の融合であり、POSIX.1-2001と同一

X/Open規格に対応するアプリケーションのコンパイルオプション指定
規格 アプリケーションで指定するマクロ定義 システム内部で使用するマクロ 備考
XPG3
_XOPEN_SOURCE
_XPG3
_XOPEN_SOURCEマクロの値は500未満
XPG4
_XOPEN_SOURCE && _XOPEN_VERSION=4
_XPG4
XPG4v2
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED=1
_XPG4_2
XPG5
_XOPEN_SOURCE=500
_XPG5
XPG6
_XOPEN_SOURCE=600 または POSIX_C_SOURCE=200112L
_XPG6

POSIX

Portable Operating System Interface for UNIXの略。米国電気電子学会(IEEE)で規定している、UNIX系のOSの共通仕様。システムコール(API)だけでなく、コマンド、ディレクトリ等についても規定している。

IEEE Std 1003.1-1990(POSIX.1)
POSIX
IEEE Std 1003.2-1992(POSIX.2)
コマンドとユーティリティ。ISO/IEC 9945-2:1993として承認。
IEEE Std 1003.1b-1993(POSIX.1b)
リアルタイム機能。ISO/IEC 9945-1:1996として承認。
IEEE Std 1003.1c-1995(POSIX.1c)
POSIXスレッド。
IEEE Std 1003.1c-1999(POSIX.1d)
追加のリアルタイム拡張。
IEEE Std 1003.1g-2000(POSIX.1g)
ソケットを含むネットワークAPI。
IEEE Std 1003.1-1996(POSIX.1-1996)
POSIX.1の1996年改訂版。POSIX.1bとPOSIX.1cを取り込んでいる。
IEEE Std 1003.1-2001
IEEE, ISO/IEC, The Open Groupの3団体共通仕様として定義。従来の1003.1と1003.2を含む仕様となっている。

何を定義すべきか?

POSIXスレッドを使うアプリケーション

アンインストール

ここではバッチソフトウェア・アンインストーラを使ったアンインストールを行います。

~$ su
パスワード: ******
# cd /var/sadm/prod/com.sun.studio_11
# ./batch_uninstall_all
Starting the uninstallation ...
   :
End of the uninstallation ... 
#