CS+とCC-RX(V3.04)の組み合わせでバグ発生

 首記の通り、CS+とCC-RX(V3.04)の組み合わせでマニュアルに記載のないエラーが発生します。以下にバグの発生内容を記載しますのでルネサス内部の方から回答を期待します。

・RX72Nでプロジェクトを生成(型番は何でも良いです)。

・ソースのどこかでstrtolライブラリ関数を呼び出す。

 多分、他のライブラリ関数でも同じになると思いますが、小生はstrtol関数で発見しました。

 #include <stdlib.h> をインクルードし、strtol( 0, 0, 0 ); とでも記述してください。

・プロジェクトをビルドします。このビルドは問題なく行われます。

・次にオプションで共通、CPUカテゴリの「倍精度浮動小数点処理命令を使用する」を変更してください。

・ビルドすると「E0562220:Illegal mode type "double type size" in "DefaultBuild\test.lib(strtol)"」の未知のエラーが発生します。

・ちなみにクリーンプロジェクトを行うと、その時はエラーがなくなりますが、再びオプションを変更するとエラーとなります。

Parents
  • こんにちは。NoMaYです。

    試してみました。少なくともCS+側は何か変ですね、、、

    (1) CS+のライブラリジェネレータの設定でmath.h対応ライブラリを生成することを指定する(念の為)
    (2) コンパイラのdpfpuオプションを有効(RX72Nではデフォルト)にしてビルドする (この条件ではdoubleサイズは8である)
    (3) コンパイラのdpfpuオプションを無効にしてビルドする (この条件ではデフォルトのdoubleサイズは4でありデフォルトのままとした)

    期待値:
    ・ CS+がライブラリジェネレータを起動してmath.h対応ライブラリをビルドし直すこと

    結果:
    ・ CS+がライブラリジェネレータを起動している気配が無い(起動していればそれなりのメッセージが表示される)

    補足
    ・ CS+は以下の場合にはライブラリジェネレータを起動しなければならないと思う(起動される/されないの詳細確認は未確認)

    (A) コンパイラをバージョンアップ(あるいはバージョンダウン)した時
    (B) ライブラリジェネレータの設定でオプション変更時に生成することを指定した場合はコンパイルオプション変更時
    (B') コンパイラのヘルプでライブラリジェネレータが無視する旨が記載されているコンパイルオプションの変更では起動しない

    以下、コンパイラのリリースノートとCS+の画面コピーです。

    リリースノート


    CS+がライブラリジェネレータを起動している気配が無い(起動していればそれなりのメッセージが表示される)


    一旦ビルドした後に以下のコンパイルオプションを変更してビルド/リビルドしてみた



    (参考) CS+がライブラリジェネレータを起動していればそれなりのメッセージが表示される


    [追記]

    エビスクラウンさんの最初の投稿に書かれていたので一旦クリーンしてみたところ、ライブラリジェネレータが起動されましたね。(でも一瞬で終わるのでmath.h対応ライブラリはビルドし直されていないような気もします、、、これも何だろう、、、) (ああそうか、これまでにライブラリをビルドした.objがどこかに保存されていて自動的にそれが検出されてライブラリジェネレータ内部のビルド過程がスキップされたのかな、そんな気がする、、、それで一瞬で終わったのかな、、、)


     

  • こんにちは。NoMaYです。

    CS+で以下の設定を変更した時にライブラリジェネレータが起動されるかどうか調べてみました。私は後ろ2つはバグだと思います、、、

    (1) 命令セットアーキテクチャ(RXv1/RXv2/RXv3)の変更 → 起動される
    (2) doubleサイズの変更 → 起動される
    (3) FPUを使う/使わないの変更 → 起動されない
    (4) DPFPUを使う/使わないの変更 → 起動されない

Reply
  • こんにちは。NoMaYです。

    CS+で以下の設定を変更した時にライブラリジェネレータが起動されるかどうか調べてみました。私は後ろ2つはバグだと思います、、、

    (1) 命令セットアーキテクチャ(RXv1/RXv2/RXv3)の変更 → 起動される
    (2) doubleサイズの変更 → 起動される
    (3) FPUを使う/使わないの変更 → 起動されない
    (4) DPFPUを使う/使わないの変更 → 起動されない

Children
  • こんにちはNoMaYさん、エビスクラウンです。

    検証、有難う御座います。FPUを使う/使わないも同様でしたか! こちらは試していませんでした。

    ルネサスさんに取っては、かなり有意義な検証だと思います。修正版が公開されると良いのですが。。。

  • こんにちは。NoMaYです。

    e2 studio 2022-01で以下の設定を変更した時にライブラリジェネレータが起動されるかどうか調べてみました。問題無かったです。

    (1) 命令セットアーキテクチャ(RXv1/RXv2/RXv3)の変更 → 起動される
    (2) doubleサイズの変更 → 起動される
    (3) FPUを使う/使わないの変更 → 起動される
    (4) DPFPUを使う/使わないの変更 → 起動される

    以下、e2 studioのオプション設定GUIの画面コピーです。





     

  • エビスクラウンさん、NoMaYさん

    こんにちは、シェルティです。

    検証ありがとうございまず。大変助かります。社内でもNoMaYさんの検証結果をありがたく使わせていただいています。さらにそれに加え、ほかに何か条件が潜んでいないかなどを確認進めています。以下現状の見解まとめます。ご意見などありましたらお聞かせください。

    ・暫定対策はエビスクラウンさんの提案通りでエラー番号E0562220発生時はクリーンビルドが適切(FAQ化等の情報展開も検討中)

    ・恒久対策1は条件を満たしたときにライブラリジェネレータを再実行(いつのCS+バージョンアップに盛り込むかは時期検討中)

    ・恒久対策2CC-RXマニュアルにエラー番号E0562220を追記(次版改定時に追加)

    以上です

  • こんにちは、シェルティさん。エビスクラウンです。

    シェルティさんの見解で問題ない、と言うか、良いと思います。

    出来れば、次のCS+のバージョンでは解決していることを望むのみです。