RENESAS TOOL NEWS 2005年08月01日 : RSO-SHC-050801D
SuperH RISC engine ファミリ C/C++コンパイラパッケージ
V.9.00 Release 03へのリビジョンアップのお知らせ |
SuperH RISC engineファミリ用C/C++コンパイラパッケージを V.9.00 Release 02からV.9.00 Release 03にリビジョンアップしました。
- リビジョンアップ対象製品
SuperH RISC engine ファミリC/C++コンパイラパッケージ V.9
製品型名:
| Windows版 |
R0C40700XSW09R |
| Solaris版 |
R0C40700XSS09R |
| HP-UX版 |
R0C40700XSH09R |
- リビジョンアップ内容
- 2.1 新機能および機能改善
-
| 2.1.1 |
統合開発環境High-performance Embedded Workshop(Windows版のみ)
同梱のHigh-performance Embedded WorkshopをV.4.00.02へリビジョン アップしました。
詳細は、2005年7月1日発行 RENESAS TOOL NEWS "統合開発環境 High-performance Embedded Workshop V.4.00.02へのリビジョン アップのお知らせ"(資料番号: RSO-HEW-050701D)を参照ください。
|
| 2.1.2 |
シミュレータ (Windows版のみ)
| (1) |
タイマシミュレーション機能をI/O DLLとしてシミュレータ本体から分離 しました。 |
| (2) |
SH2A-FPU Functional SimulatorおよびSH2A-FPU Cycle Base Simulatorで ROMキャッシュシミュレーション機能を追加しました。 |
| (3) |
SH2A-FPU Functional SimulatorおよびSH2A-FPU Cycle Base Simulatorで レジスタバンクの表示および変更を行うレジスタバンクウィンドウを追加 しました。 |
|
| 2.1.3 |
アセンブラ
浮動小数点数の10進表記による四則演算において、2番目以降の「F'」の省略 を許すようにしました。ただし「F'」を省略する場合は、小数部は省略でき ません。
|
- 2.2 改修内容
-
| 2.2.1 |
インストーラ (Windows版のみ)
環境変数設定用バッチファイルに関する問題を改修しました。
問題の詳細は、2005年3月16日発行RENESAS TOOL NEWS "SuperH RISC engine, H8, H8S, および H8SXファミリC/C++コンパイラパッケージ (Windows版)ご使用上のお願い"(資料番号: RSO-SHC_1-050316D) を参照ください。
|
| 2.2.2 |
シミュレータ(Windows版のみ)
|
| 2.2.3 |
コンパイラ
2005年6月16日発行RENESAS TOOL NEWS "SuperH RISC engine ファミリ C/C++コンパイラパッケージ V.9ご使用上のお願い"(資料番号: RSO-SHC- 050616D)で報告した8点の問題を改修しました。
|
| 2.2.4 |
最適化リンケージエディタ optlnk (以降、リンカと略します)
| (1) |
リンカが生成するリンケージリストファイルに関する問題を改修しま した。
問題の詳細は2005年4月16日発行のRENESAS TOOL NEWS "SuperH RISC engine, H8, H8S, およびH8SX ファミリ用 最適化リンケージエディタ ご使用上のお願い"(資料番号: RSO-SHC- 050416D)を参照ください。
|
| (2) |
以下のエラー L0103が誤って出力される問題を改修しました。
** L0103 (I) Multiple stack sizes specified to the symbol "関数名"
問題の発生条件:
以下の条件をすべて満たす場合に発生することがあります。
- リンカのバージョンが V.9.00.00 以降である (*)。
- C/C++ソースファイルで定義した関数と同じ名前の変数 (extern修飾 子付き)が別のC/C++ソースファイルに存在する。 もしくは、「_<関数名>」というimportラベルがアセンブリソース ファイルに存在する。
- リンク時にmessageオプションを使用している。
- リンク時にstackオプションを使用している。
|
| (3) |
誤ったスタック情報ファイル (.sni) を出力する問題を改修しました。
問題の発生条件:
以下の条件をすべて満たす場合に発生することがあります。
- リンカのバージョンが V.9.00.00 以降である(*)。
- C/C++ソースファイルで定義した関数と同じ名前の変数 (extern修飾 子付き)が別のC/C++ソースファイルに存在する。 もしくは、「_<関数名>」というimportラベルがアセンブリソース ファイルに存在する。
- リンク時にstackオプションを使用している。
注意:
該当の.sniファイルを、スタック解析ツール (Call Walker)に 入力すると、誤ったスタック使用量が表示されます。
|
| (4) |
未参照シンボル削除の最適化 (optimize=symbol_delete) によって、 誤ったオブジェクトコードが生成される問題を改修しました。
問題の発生条件:
以下の条件をすべて満たす場合に発生することがあります。
- リンカのバージョンが V.9.00.00 以降である(*)。
- コンパイル時にgoptimizeオプションを使用している。
- コンパイル時にpack=1オプションを使用している。 もしくは、C/C++ソースファイル中に「#pragma pack 1」を記述して いる。
- リンカの未参照シンボル削除の最適化が有効になっている。 以下のいずれかの場合に有効になります。
- optimize=symbol_deleteオプションを使用している
- optimize=speedオプションを使用している
- optimizeオプションを使用している
- nooptimizeオプションを使用していない
- 4項の最適化で、定数 (const修飾子付き変数)、もしくは初期値 付き変数が、参照されない変数として削除される。
|
| (5) |
デバッグ情報圧縮機能(compressオプション)を使用すると、誤った デバッグ情報を生成する問題を改修しました。
問題の発生条件:
以下の条件をすべて満たす場合に発生することがあります。
- リンカのバージョンが V.7.0 以降である (*)。
- コンパイル時にdebugオプションを使用している。
- リンカでcompressオプションを使用して、リロケータブルファイル (.rel)を生成している。
- 3項の.relファイルをリンカに入力し、compressオプションを使用 してロードモジュールを生成している。
注意:
該当のロードモジュールをデバッガにロードすると誤った内容を 表示します。
|
| (6) |
使用する最適化オプションの組み合わせによって、以下のエラーL3320を 誤って出力する問題を改修しました。
** L3320 (F) Memory overflow
発生条件:
以下の条件をすべて満たす場合に発生することがあります。
- リンカのバージョンが V.9.00.00 以降である (*)。
- コンパイル時にgoptimizeオプションを使用している。
- リンク時の最適化オプションが以下のいずれかである。
- optimize=symbol_delete, register, string_unify の3種類の最適化を同時に使用している
- optimize=speedオプションを使用している
- optimizeオプションを使用している
- nooptimizeオプションを選択していない
- 3項の最適化によって、削除される関数がある。
|
| (7) |
内部エラーを出力する問題を改修しました。
問題の発生条件:
以下のいずれかを満たすと、問題が発生する場合があります。
- アセンブリ言語記述の.EQUシンボルを含んだ .relファイルを、 リンカに入力している。
(発生する内部エラー: L4000-8010)
- .EQUシンボルを呼び出す関数コールを持つオブジェクトファイルを リンカに入力している。
(発生する内部エラー: L4000-8874)
- .relファイルをリンカに入力している。
(発生する内部エラー: L4000-8027または L4001)
|
|
* リンカのバージョンの確認方法
| |
(1) |
統合開発環境High-performance Embedded Workshopの メニュー「ツール」->「アドミニストレーション」を選択する。 |
| |
(2) |
開いたツールアドミニストレーションダイアログボックスの 「登録済コンポーネント」リストの「Toolchains」の中から 使用中のコンパイラパッケージを選択し、プロパティボタンを クリックする。 |
| |
(3) |
表示されたプロパティダイアログボックスの情報タブを選択すると リンカのバージョンが表示される。
表示例: Optimizing Linkage Editor (V.9.00.02) |
- 2.3 制限事項
-
| 2.3.1 |
内容
関数定義がないファイルで、文字列の初期値を持つポインタ型変数の定義と static変数の定義が存在した場合に、ポインタ型変数の指すアドレスが 正しくない場合があります。
|
| 2.3.2 |
発生条件
以下の条件をすべて満たす場合に発生します。
| (1) |
code=machinecodeオプションを使用している。またはcodeオプションを使用していない。 |
| (2) |
ファイル内に関数定義がない。 |
| (3) |
static変数の定義が存在する。 |
| (4) |
文字列の初期値を持つポインタ型変数の定義が存在する。 |
| (5) |
(3)および(4)の変数が以下のいずれかの条件を満たす。
| (a) |
(3)の変数が初期値を持たない。 |
| (b) |
(4)の変数のみconst指定されている。 |
| (c) |
(3)および(4)の変数が同じセクションに割り付き、かつ(4)が先に 定義されている。 |
|
|
| 2.3.3 |
回避策
以下のいずれかの方法で回避してください。
| (1) |
code=asmcodeオプションを使用する。 |
| (2) |
関数定義を追加する。 |
| (3) |
発生条件(3)の変数のstatic宣言をはずす。 |
|
- リビジョンアップと購入方法
- 3.1 リビジョンアップ(無償)
- 対象製品をお持ちの場合、無償でリビジョンアップできます。
| (1) |
R0C40700XSW09R(Windows版)の場合 オンラインでリビジョンアップできます。
こちら(8月中旬公開予定)からダウンロードしてください。
|
| (2) |
R0C40700XSS09R (Solaris版) および R0C40700XSH09R (HP-UX版)の場合
以下の情報を最寄りのルネサス販売または特約店までご連絡ください。
| 製品型名 |
| Solaris版: |
R0C40700XSS09R |
| HP-UX版: |
R0C40700XSH09R |
|
| バージョン番号 |
V.9.00 |
| リリース番号 |
Release 03 |
|
- 3.2 新規購入
- ご注文の際には、以下の情報を最寄りのルネサス販売または特約店までご連絡ください。
| 製品型名 |
| Windows版: |
R0C40700XSW09R |
| Solaris版: |
R0C40700XSS09R |
| HP-UX版: |
R0C40700XSH09R |
|
| バージョン番号 |
V.9.00 |
| リリース番号 |
Release 03 |