OpenVMS AXP オペレーティング・システム

OpenVMS AXP
オペレーティング・システム

OpenVMS AXP オペレーティング・システムへの移行:
再コンパイルと再リンク


AA-PU8LC-TE


ソフトウェア・バージョン: OpenVMS AXP V 6.1


コンパックコンピュータ株式会社


1994年7月

Copyright © 1994 Digital Equipment Corporation Japan

以下は他社の商標です。

PostScriptは,Adobe Systems Incorporated の商標です。


次へ 目次 索引 DOC HOME


まえがき

本書の目的

本書は,開発者がOpenVMS VAXアプリケーションを OpenVMS AXPシステムに移行する際に役立つように構成されています。

対象読者

本書は経験の豊富なソフトウェア技術者を対象にしており,特にCやFORTRANなどの高級プログラミング言語や,中級プログラミング言語で作成されたアプリケーションのコードを移植する際の責任者を対象にしています。

本書の構成

本書は6つの章と1つの付録から構成されています。

第 1 章 アプリケーションが,VAXアーキテクチャに依存している部分を調べる方法について,その概要を示します。
第 2 章 アプリケーションがVAXのページ・サイズに依存しているときの対処方法を示します。
第 3 章 複数のプロセスによるデータ・アクセスに関して,アプリケーションがVAXアーキテクチャの同期方式に依存しているときの対処方法について説明します。
第 4 章 アラインメントに関する問題も含めて,AXPシステムでのデータ宣言の影響について説明します。
第 5 章 アプリケーションがVAXの条件処理機能に依存しているときの問題への対処方法について説明します。
第 6 章 トランスレートされたVAXイメージを呼び出したり,これらのイメージから呼び出すことができるネイティブな AXPイメージの作成方法について説明します。
付録 A OpenVMS AXPシステムで,Ada,C,Cobol,FORTRANおよびPascalプログラミング言語によってサポートされる,新しい機能と変更された機能を簡単にまとめます。

参考文献

本書はOpenVMS VAXアプリケーションをOpenVMS AXPシステムに移行する際のさまざまな問題を説明したマニュアル・セットの一部です。このマニュアル・セットには,本書の他に次のマニュアルが準備されています。

また,VAX Environment Software Translator(VEST)に関する次のマニュアルがあります。

表記法

本書では次の表記法を使用します。

表記法 意味
[Return] 四角形で囲まれたこの記号は,キーボードのキーを押すことを示します。たとえば,[Return]は Returnキーを押すことを示します。
[Ctrl/x] [Ctrl/x] の記号は,Ctrl キーを押しながら,同時にあるキーを押すことを示します。たとえば,[Ctrl/c] は Ctrl キーと c 文字キーを同時に押します。
... 例の中で水平反復記号は,次のいずれかを示します。

  • 文中のオプショナル引数が省略されていること

  • 前の項目(1つ以上)を1回以上繰り返すことができること

  • 追加パラメータ,値,あるいは他の情報を入力でること

.
.
.

垂直反復記号は,コード例やコマンド形式から項目が省略されていることを示します。このように項目が省略されるのは,その項目が説明している内容にとって重要でないからです。
() 括弧は,複数のオプションを選択するときに,選択項目を括弧で囲まなければならないことを示す。
<lbrack symbol> <rbrack symbol> 大括弧は,項目が省略可能であることを示します(しかし,VMSファイル指定のディレクトリ名の構文や,代入文の部分文字列指定の構文では,大括弧は省略可能ではありません)。
<lbrace symbol> <rbrace symbol> 中括弧は,必ず1つを選択しなければならない項目を囲むために使用します。
太字 太字のテキストは,新しい用語を導入する場合や,引数,属性,条件の名前を示すために使用します。

また,マニュアルのオンライン・バージョンでユーザ入力を示す場合も,太字のテキストを使用します。

イタリック体 イタリック体のテキストは,システム・メッセージやコマンド・ラインの中で,変化する可能性のある情報を表現します。
英大文字 英大文字は,コマンド,修飾子,パラメータ,ルーチン名,ファイル名,ファイル保護コード名,システム特権の短縮形を示します。
コード例で使用されているハイフンは,要求に対する追加引数が後続の行に指定されることを示します。
数字 特に示した場合を除き,説明文の内部で使用している数字はすべて 10 進数です。数値が 10 進数以外(2進数,8進数,16 進数)の場合には,そのことが明記されます。
「 」 かぎ括弧は,この製品のドキュメント構成に含まれるマニュアル名を示します。
『 』 二重かぎ括弧は,この製品のドキュメント構成に含まれないマニュアル名または,別の製品のマニュアル名を示します。


第 1 章
はじめに

この章では,アプリケーションを構成するソース・ファイルを再コンパイルおよび再リンクすることにより,VAXシステム上で動くアプリケーションをAXPシステムに移行する(migrate)プロセスについて,その概要を説明します。特に,この章では次の内容について説明します。

1.1 概要

一般に,アプリケーションが高級プログラミング言語で作成されている場合には,わずかな作業でAXPシステムで実行できるようになります。高級言語では,アプリケーションをマシン・アーキテクチャから分離します。さらに,AXPシステム上のプログラミング環境のほとんどの部分は,VAXシステムのプログラミング環境と同じです。したがって,AXP版の各言語のコンパイラとOpenVMSリンカ・ユーティリティを使用すれば,アプリケーションを構成するソース・ファイルを再コンパイルおよび再リンクでき,ネイティブなAXPイメージを作成できます。

しかし,アプリケーションが高級言語で作成されている場合でも,アーキテクチャ固有の機能に依存している可能性があります。この後の節では,AXPシステム上のプログラミング環境について説明し,アプリケーション・ソース・ファイルの中で,変更しなければAXPシステムに移行できないコードを識別するためのガイドラインを示します。

1.2 ネイティブなAXPコンパイラによるアプリケーションの再コンパイル

VAXシステムでサポートされる言語の多くは,AXPシステムでもサポートされます。たとえばFORTRANやCなどです。AXPシステムでどのプログラミング言語を使用できるかについての詳しい説明は,『OpenVMS AXP オペレーティング・システムへの移行:システム移行の手引き』を参照してください。

AXPシステムで使用出来るコンパイラは,それぞれVAXシステムの対応するコンパイラと互換性(compatibility)を維持するように設計されています。各コンパイラは言語標準規格に準拠し,また,VAXの言語拡張機能の大部分をサポートします。コンパイラは,VAXシステムの場合と同じ省略時のファイル・タイプで,出力ファイルを作成します。たとえば,オブジェクト・モジュールのファイル・タイプは.OBJです。

しかし,VAXシステムのコンパイラがサポートする一部の機能は,AXPシステムの同じコンパイラでサポートされません。さらに,AXPシステムのいくつかのコンパイラは,VAXシステムの対応するコンパイラがサポートしない新しい機能をサポートします。また互換性を維持するために,一部のAXPコンパイラは互換モードをサポートします。たとえば,DEC C for OpenVMS AXP システムのコンパイラはVAX C互換モードをサポートし,このモードは/STANDARD=VAXC修飾子を指定することにより起動されます。付録 A は,VAXシステムとAXPシステムで使用できるコンパイラの機能を示しています。

1.3 アプリケーションにおけるVAXアーキテクチャに依存する部分の識別

ネイティブなAXPコードで生成されたコンパイラを使用して,アプリケーションを正しく再コンパイルできた場合でも,VAXアーキテクチャに依存する部分が含まれている可能性があります。オペレーティング・システムは,高いレベルの互換性を維持するように設計されています。しかし,2つのアーキテクチャには基本的な相違があるため,ある種の矛盾をどうしても避けることができません。次のリストはアプリケーションの中で調べなければならない部分を示しています。本書のこの後の各章では,これらの各項目について詳しく説明します。

1.4 AXPシステムでのアプリケーションの再リンク

ソース・ファイルを正しく再コンパイルした後,アプリケーションを再リンクしてネイティブなAXPイメージを作成しなければなりません。リンカは現在のVAXシステムと同じファイル・タイプで,出力ファイルを作成します。たとえば,省略時の設定では,リンカはイメージ・ファイルのファイル・タイプとして.EXEを使用します。

AXPシステムではある種のリンク作業を実行する方法が異なるため,アプリケーションを構築するために使用するLINKコマンドを変更しなければなりません。次のリストは,アプリケーションのビルド手順に影響を与える可能性のある,これらのリンカの変更点を説明しています。詳しくは『OpenVMS Linker Utility Manual』を参照してください。

リンカはAXPシステム固有の修飾子とオプションをサポートします。これらは 表 1-1表 1-2 に示すとおりです。この表にはまた,VAXシステムでサポートされ,AXPシステムのリンカでサポートされないリンカ修飾子も示されています。

表 1-1 AXPシステム固有のリンカ修飾子
修飾子 説明
/DEMAND_ZERO リンカがデマンド・ゼロ・イメージ・セクションを作成する方法を制御する。
/GST 共有可能イメージに対してグローバル・シンボル・テーブル(GST)を作成することをリンカに要求する(省略時の設定)。ランタイム・キット用に共有可能イメージを作成する場合には,/NOGSTを指定する方が一般的である。
/INFORMATIONALS リンク操作で情報メッセージを出力することをリンカに要求する(省略時の設定)。/NOINFORMATIONALSを指定する方が一般的であり,その場合には情報メッセージは出力されない。
/NATIVE_ONLY 作成中のイメージ内で,コンパイラが作成したプロシージャ・シグナチャ・ブロック(PSB)情報を渡さないことをリンカに要求する。省略時の設定では,リンク操作に対する入力ファイルとして指定したオブジェクト・モジュールにPSB情報が含まれている場合には,リンカはイメージに PSB情報を含む。イメージ・アクティベータはこの情報を使用して,ジャケット・ルーチンを作成する。ネイティブなAXPイメージがトランスレートされた VAXイメージと協調動作するには,ジャケット・ルーチンが必要である。
/REPLACE コンパイラによって要求された場合,作成中のイメージの性能を向上するための最適化を行うことをリンカに要求する(省略時の設定)。
/SECTION_BINDING 常駐イメージとしてインストール可能な共有可能イメージを作成することをリンカに要求する。
/SYSEXE リンク操作で解釈されなかったシンボルを解釈するために OpenVMSエグゼクティブ・イメージ(SYS$BASE_IMAGE.EXE)を処理することをリンカに要求する。

表 1-2 AXPシステム固有のオプション
オプション 説明
BASEオプション AXPシステムではサポートされない。
DZRO_MINオプション AXPシステムではサポートされない。
ISD_MAXオプション AXPシステムではサポートされない。
SYMBOL_TABLEオプション 共有可能イメージに関連するシンボル・テーブル・ファイルにユニバーサル・シンボルだけでなく,グローバル・シンボルも登録することをリンカに要求する。省略時の設定では,リンカはユニバーサル・シンボルだけを登録する。
SYMBOL_VECTORオプション AXP共有可能イメージでユニバーサル・シンボルを宣言するために使用する。
UNIVERSALオプション AXPシステムではサポートされない。


次へ 目次 索引