前へ | 次へ | 目次 | 索引 |
次のトランスレートされた VAX C プログラムの制限事項は永久的なものです。
この問題を回避するには,メモリを解放するために brk() を絶対に使用しないか,またはメモリを解放するために後で使用するブレーク・アドレスを入手する前に,複合 VAX 命令を確実に実行します。メモリを割り当てるために brk() を使用しても問題はありません。
トランスレーション・サポートは,ユーザが Alpha に移行する際に発生する障害を削減するために提供されています。それは次の理由によるものです。
VAX バージョンが現在も活発に開発されている言語に対して,ネイティブな Alpha バージョンも提供されています。TIE は,OpenVMS VAX バージョン 5.5-2 のリリースの時点で提供されていた言語機能をサポートできるように維持管理されています。
同様に,システム・サービスや実行時ライブラリのエントリ・ポイントの使用が,OpenVMS VAX バージョン 5.5-2 で提供されていたものに制限されているイメージに対しては,トランスレーションがサポートされます。
もっと新しい VAX レイヤード製品がインストールされている場合には,アプリケーションでトランスレーションに適したイメージを再構築することが必要なときに,いくつかの追加手順が必要になることがあります。たとえば,OpenVMS VAX 用の DECwindows Motif バージョン 1.2 またはバージョン 1.2--3 では,トランスレーションにとって適切であるように,OSF Motif バージョン 1.2.2 やバージョン 1.2.3 のライブラリではなく,OSF Motif バージョン 1.1.3 ライブラリまたは DECwindows XUI ライブラリを使用してイメージを作成しなければなりません。
同様に,DEC Fortran for VAX の最近のバージョンを使用するイメージの場合,トランスレーションに適した Fortran プログラムをコンパイルするために追加の修飾子が必要です。
詳細については,それぞれの VAX 製品のリリース・ノートを参照してください。
OpenVMS VAX イメージを将来,再構築したり,再トランスレーションしなければならない状況では,安全措置として,関連する OpenVMS VAX バージョン 5.5-2 共用可能イメージのコピーを別の VAX ディレクトリに保存し,これらのイメージに対して VAX アプリケーションの新しいバージョンをリンクするようにしてください。この手法を使用する場合,作成されるイメージは新しい OpenVMS VAX 共用可能イメージと互換性があり (OpenVMS の既存の機能を拡張した機能を使用できます),また,OpenVMS Alpha にトランスレーションするためにイメージを正しく構築できます (共用可能イメージの新しいバージョンは必要ありません)。
この後の節では,トランスレートされたイメージ,イメージ情報ファイル,および OpenVMS Alpha で提供されるその他の関連ファイルについて説明します。
OpenVMS Alpha には,トランスレートされたメッセージ・イメージはありません。メッセージ・イメージはすべて,ネイティブ・イメージとして作成されます。
BASRTL2_D53_TV.EXE
BASRTL2_D56_TV.EXE
BASRTL_D56_TV.EXE
BASRTL_TV_SUPPORT.EXE
BLAS1RTL_D53_TV.EXE
BLAS1RTL_D56_TV.EXE
COBRTL_D56_TV.EXE
DBLRTL_D56_TV.EXE
EDTSHR_TV.EXE
FORRTL2_TV.EXE
FORRTL_D56_TV.EXE
LIBRTL2_D56_TV.EXE
LIBRTL_D56_TV.EXE
MTHRTL_D53_TV.EXE
MTHRTL_D56_TV.EXE
PASRTL_D56_TV.EXE
PLIRTL_D56_TV.EXE
RPGRTL_TV.EXE
SCNRTL_TV.EXE
TECOSHR_TV.EXE
TIE$EMULAT_TV.EXE
UVMTHRTL_D53_TV.EXE
UVMTHRTL_D56_TV.EXE
VAXCRTLG_D56_TV.EXE
VAXCRTL_D56_TV.EXE
VMSRTL_TV.EXE
DBLMSGMGR_TV.EXE
EDF_TV.EXE
EDT_TV.EXE
MONITOR_TV.EXE
TECO32_TV.EXE
IMAGELIB: 内のトランスレートされた RTL イメージ
BASRTL2_D53_TV.EXE
BASRTL_D56_TV.EXE
BLAS1RTL_D53_TV.EXE
COBRTL_D56_TV.EXE
DBLRTL_D56_TV.EXE
FORRTL2_TV.EXE
FORRTL_D56_TV.EXE
LIBRTL_D56_TV.EXE
PLIRTL_D56_TV.EXE
RPGRTL_TV.EXE
SCNRTL_TV.EXE
トランスレートされた RTL の大部分は,D53 形式ではなく,D56 形式で提供されます。一部は両方の形式で提供されます。両方の形式が提供される場合には,省略時の形式は D53 です。トランスレートされた実行時ライブラリの詳細については,第 9.5 節 を参照してください。
ACLEDTSHR.IIF
BASRTL2.IIF
BASRTL.IIF
BLAS1RTL.IIF
COBRTL.IIF
CONVSHR.IIF
CRFSHR.IIF
DBLRTL.IIF
DCXSHR.IIF
DISMNTSHR.IIF
DTKSHR.IIF
EDTSHR.IIF
ENCRYPSHR.IIF
EPC$SHR.IIF
FDLSHR.IIF
FORRTL.IIF
FORRTL2.IIF
INIT$SHR.IIF
LBRSHR.IIF
LIBRTL.IIF
LIBRTL2.IIF
MAILSHR.IIF
MOUNTSHR.IIF
MTHRTL.IIF
NCSSHR.IIF
P1_SPACE.IIF
PASRTL.IIF
PLIRTL.IIF
PPLRTL.IIF
PTD$SERVICES_SHR.IIF
RPGRTL.IIF
S0_SPACE.IIF
SCNRTL.IIF
SCRSHR.IIF
SECURESHR.IIF
SMBSRVSHR.IIF
SMGSHR.IIF
SORTSHR.IIF
SPISHR.IIF
TECOSHR.IIF
TPUSHR.IIF
UVMTHRTL.IIF
VAXCRTL.IIF
VAXCRTLG.IIF
VMSRTL.IIF
次のシステム論理名は,トランスレートされた環境を使いやすくするために定義されています。
ACLEDTSHR_TV = ACLEDTSHR
CDDSHR_TV = CDDSHR
CONVSHR_TV = CONVSHR
CRFSHR_TV = CRFSHR
DCXSHR_TV = DCXSHR
DISMNTSHR_TV = DISMNTSHR
DTKSHR_TV = DTKSHR
ENCRYPSHR_TV = ENCRYPSHR
EPC$SHR_TV = EPC_SHR
FDLSHR_TV = FDLSHR
INIT$SHR_TV = INIT$SHR
LBRSHR_TV = LBRSHR
MAILSHR_TV = MAILSHR
MOUNTSHR_TV = MOUNTSHR
NCSSHR_TV = NCSSHR
PPLRTL_TV = PPLRTL
PTD$SERVICES_SHR_TV = PTD$SERVICES_SHR
SCRSHR_TV = SCRSHR
SECURESHR_TV = SECURESHR_JACKET
SMBSRVSHR_TV = SMBSRVSHR
SMGSHR_TV = SMGSHR
SORTSHR_TV = SORTSHR
SPISHR_TV = SPISHR
TPUSHR_TV = TPUSHR
BASRTL_TV = BASRTL_D56_TV
BASRTL2_TV = BASRTL2_D53_TV
BLAS1RTL_TV = BLAS1RTL_D53_TV
COBRTL_TV = COBRTL_D56_TV
DBLRTL_TV = DBLRTL_D56_TV
FORRTL_TV = FORRTL_D56_TV
LIBRTL_TV = LIBRTL_D56_TV
LIBRTL2_TV = LIBRTL2_D56_TV
MTHRTL_TV = MTHRTL_D53_TV
PASRTL_TV = PASRTL_D56_TV
PLIRTL_TV = PLIRTL_D56_TV
VAXCRTL_TV = VAXCRTL_D56_TV
VAXCRTLG_TV = VAXCRTLG_D56_TV
DBLMSGMGR = DBLMSGMGR_TV
EDTSHR_TV = EDTSHR
TECO32 = TECO32_TV
TECOSHR = TECOSHR_TV
VMSRTL = VMSRTL_TV
DBLRTLMSG = DBL$MSG
PASMSG = PAS$MSG
PLIMSG = PLI$MSG
RPGMSG = RPG$MSG
SCNMSG = SCN$MSG
VAXCMSG = DECC$MSG
OpenVMS Alpha キットの一部として,DEC はトランスレートされた実行時ライブラリを提供しています。
VAX 実行時ライブラリのルーチンの一部は,倍精度算術演算に対して VAX D 浮動小数点データ型を使用します。
これらのライブラリのトランスレートされたバージョンでは,省略時の設定では,Alpha の D56 D 浮動小数点データ型が使用されます (VAX 実行時ライブラリでは D 浮動小数点を使用していました)。この結果,VAX D 浮動小数点の 56 ビットの仮数部の完全な精度が提供されるため,実行時の性能は低下しますが,一貫性のある結果が求められます。
性能が重要な算術演算関連のライブラリの場合には,倍精度演算に対して Alpha の D53 D 浮動小数点データ型を使用する,トランスレートされた実行時ライブラリのバージョンも提供しています。これらのライブラリの場合,省略時の設定は D53 形式です。D53 形式は,仮数部の下位 3 ビットの精度を犠牲にして性能を向上します。
次のトランスレートされたライブラリは,D56 形式でのみ提供されます。
次のトランスレートされたライブラリは,D56 形式と D53 形式 (省略時の設定) の両方で提供されます。
実行時ライブラリを使用する場合には,省略時の設定により,次の処理が行われます。
一部のユーザは D56 浮動小数点の完全な精度を必要とします。しかし,D56 ルーチンを使用すると,性能が大幅に低下します。D56 ルーチンにアクセスするには,表 9-2 に示すように,D56 形式を指す実行時ライブラリの論理名を再定義しなければなりません。サイトの必要に応じて,論理名はプロセス単位で定義するか,またはシステム単位で定義できます。
ライブラリ | 論理名 | D56 ルーチンの名前 |
---|---|---|
BASRTL2 | BASRTL2_TV | BASRTL2_D56_TV |
BLAS1RTL | BLAS1RTL_TV | BLAS1RTL_D56_TV |
MTHRTL | MTHRTL_TV | MTHRTL_D56_TV |
9.5.1 CRF$FREE_VM と CRF$GET_VM: トランスレートされた呼び出しルーチン
トランスレートされたルーチンから CRF$FREE_VM と CRF$GET_VM を呼び出す場合,トランスレートされた呼び出し側は正しく機能しません。トランスレートされた呼び出し側は VAX JSB のセマンティックを期待していますが,ネイティブ・コードには (当然のことながら) Alpha JSB セマンティックが存在します。
この問題を回避するには,トランスレートされた呼び出し側は JSB ではなく,CALL を使用しなければなりません。
9.6 トランスレートされた VAX C 実行時ライブラリ
この後の節では,トランスレートされた VAX C 実行時ライブラリに関連するリリース・ノートを示します。
9.6.1 問題点と制限事項
この節では,OpenVMS Alpha のトランスレートされた VAX C 実行時ライブラリ (VAX C RTL) で報告されている問題点と制限事項について説明します。
9.6.1.1 機能上の制限事項
トランスレートされた VAX C RTL は,OpenVMS VAX バージョン 5.4 の VAX C RTL のトランスレートされたバージョンです。VAX C RTL のそのリリースに存在する問題と制限事項はすべて,トランスレートされた VAX C RTL にもそのまま存在します。トランスレートされた VAX C RTL の機能上の制限事項は次のとおりです。
トランスレートされた VAX C RTL がネイティブな DEC C RTL と相互操作する場合には,次の制限事項が適用されます。
これらの制限された処理を実行するプログラムでは,アクセス違反が発生するか,またはその他の例外が発生します。このような制限された操作を検出し,実行されないようにするために,徹底的なテストを行ってください。
9.7 トランスレートされた VAX COBOL プログラム
OpenVMS Alpha オペレーティング・システムでは,VAX COBOL バージョン 5.0 コンパイラ (またはそれ以前のコンパイラ) を使用してコンパイルされ,トランスレートされた VAX COBOL プログラムの実行をサポートします。
9.7.1 問題点と制限事項
VAX COBOL バージョン 5.1 コンパイラでコンパイルされたプログラムは,OpenVMS Alpha オペレーティング・システムでサポートされません。
前へ | 次へ | 目次 | 索引 |