また専門外のC++&HP-UXではまってます。
自分用にちょっとしたコマンドメモなど。
■コンパイラのバージョンを確認する
===
# whereis aCC
aCC: /opt/aCC/bin/aCC /opt/aCC/share/man/man1.Z/aCC.1
# what /opt/aCC/bin/aCC
/opt/aCC/bin/aCC:
$Revision: 92453-07 linker linker crt0.o B.11.30 020412 $
HP aC++ B3910B A.03.45
HP aC++ B3910B A.03.33 Language Support Library
===
ldについてやってみるとこんな感じ。
===
# what /usr/bin/ld
/usr/bin/ld:
$Revision: 92453-07 linker linker crt0.o B.11.37 040218 $
HP aC++ B3910B A.03.52 Classic Iostream Library
HP aC++ B3910B A.03.52 Language Support Library
ld_msgs.cat: $Revision: 1.85 $
92453-07 linker command s800.sgs ld PA64 B.11.47 REL 051005
===
なんかびみょーに違う。
■導入されているパッチの一覧を確認する
===
# /usr/sbin/swlist -l product | more
・・・
PHSS_28756 1.0 HP aC++ Compiler (A.03.45)
PHSS_32573 1.0 HP aC++ -AA runtime libraries (aCC A.03.61)
PHSS_33033 1.0 ld(1) and linker tools cumulative patch
・・・
===
要求仕様は ld(1) に対して PHSS_30049 (or higher)。
ってことは余裕でOKってことか。
■Rogue Wave Tools.h++のオンライン・マニュアル
Tools.h++ 8.0 ユーザーズガイド (Solaris)
Solaris版だけど、参考になることもあるかもしれない。
■マルチスレッド関連のオプション
バージョンA.03.30の新機能
新しい -mt オプションによって、-l や -Dなどのその他のフラグを設定しなくてもマルチスレッド機能が使用可能になります。HP aC++では、環境を調べて、自動的に適切なフラグを選択して設定します。オペレーティングシステムと使用する libstd によって4つのフラグセットがあります。
つまり、もう-D_REENTRANTとか-D_RW_MULTI_THREADとかいっぱいフラグを書かなくても、-mtさえきっておけば自動で判別してくれるのか!知らなかった…。orz