<最適化リンケージエディタ(rlink)・オプション / セクションオプション>
[指定形式]
-start= <sub>[,...]
<sub> : [(]<セクション名> [{: | ,} <セクション名>[,...] ][)][,...] [/<アドレス>]
|
セクションを0番地から割り付けます。
[詳細説明]
- | セクションの開始アドレスを指定します。アドレスは16進数で指定してください。 |
- | セクション名はワイルドカード(*)も指定できます。ワイルドカードで指定したセクションはオブジェクトファイルの入力順に展開します。 |
- | セクションをコロン(:)で区切ることにより、複数のセクションを同一アドレスに割り付ける(セクションオーバーレイ配置)ことが可能です。 |
- | 同一アドレスに割り付け指定したセクション間は、指定順に割り付けます。 |
- | また、丸括弧"()"で囲むことにより、オーバーレイ配置する対象セクションを変更できます。 |
- | 同一セクション内オブジェクトは、入力ファイルの指定順、入力ライブラリの指定順に割り付けます。 |
- | アドレスの指定がない場合は、0番地から割り付けます。 |
- | startオプションで指定していないセクションは、最終割り付けアドレスに続いて割り付けます。 |
[例]
下記順番でオブジェクトを入力する場合のセクション配置を例に示します。
(括弧内は各オブジェクトが持つセクション)
tp1.obj(A,D1,E) -> tp2.obj(B,D3,F) -> tp3.obj(C,D2,E,G) -> lib.lib(E)
- | -start=A,B,E/400,C,D*:F:G/8000 |
- | ":"で区切ったC,F,Gセクションは、同一アドレスに割り付きます。 |
- | ワイルドカードで記述したセクション(ここではDで始まる名前のセクション)は、
入力した順番で割り付きます。 |
- | 同名セクション内(ここではEセクション)は、入力したオブジェクトから順番に割り付きます。 |
- | ライブラリ入力による同名セクション(ここではEセクション)は、入力オブジェクトの次に割り付きます。 |
- | -start=A,B,C,D1:D2,D3,E,F:G/400 |
- | ":"で区切った直後のセクション(この例の場合はA,D2,G)を先頭として、それぞれ先頭が同一アドレスに割り付きます。 |
- | -start=A,B,C,(D1:D2,D3),E,(F:G)/400 |
- | "()"で同一アドレス配置を括った場合、"()"の直前のセクション(この例の場合はC,E)の直後を先頭として、"()"内の同一アドレス配置が行われます。 |
- | "()"の直後のセクション(この場合E)は、"()"内の最後尾のセクションの直後に続けて配置されます。 |
[備考]
- | form={object | relocate | library}またはstrip指定時、本オプションは無効です。 |
- | 括弧"()"は、ネストして記述することはできません。 |
- | 括弧"()"内では、少なくともひとつはコロン":"の記述が必要です。コロン":"を記述しない場合には、括弧"()"は記述できません。 |
- | 括弧"()"を記述した場合、"()"外にコロン":"を記述することはできません。 |
- | 括弧"()"を使用して本オプションを記述した場合、リンカの最適化機能は無効になります。 |