GCC Toolchain for Renesas RX 14.2.0.202607 Released
We are pleased to announce the release of GCC Toolchain for Renesas RX version 14.2.0.202607.
This GCC-based cross-development toolchain supports C and C++ application development for all Renesas RX devices and generates ELF-format object files. Installers are available for Ubuntu 22.04 or later and compatible Linux distributions, Windows 7 or later, and macOS Ventura 13.4 running on Apple M1.
The latest version of the toolchain is available for download here.
GCC Toolchain for Renesas RX 14.2.0.202607 is based on the following components:
– GCC 14.2.0
– GNU Binutils 2.44
– Newlib 4.4.0
– GDB 16.2
The latest applicable patches have also been incorporated into the toolchain sources.
Key improvements and fixes in this release include:
– Renesas RXv3e Protect Zone support
Support for the RXv3e Protect Zone has been added through the new -mprotect-zone compiler option. Developers working with this feature should refer to the GCC documentation supplied with the toolchain and the relevant RXv3e software and hardware manuals for configuration details.
– New TFU security attribute option
The new -mtfu-security-attribute=[secure/nonsecure] command-line option allows developers to select the memory-region address to be used as the TFU base address.
– Updated interaction between rx-elf-libgen and MTFU options
MTFU-related options are now filtered from the rx-elf-libgen --compiler-options command line by the associated makefiles. This change helps prevent potential address inconsistencies following the introduction of Protect Zone support.
– Corrected -mtfu=intrinsic,mathlib behavior in C++
When compiling C++ applications, the -mtfu=intrinsic,mathlib option did not correctly replace calls to sinf, cosf, atan2f, and hypotf with their corresponding built-in implementations. This issue has been resolved.
– Fixed a compiler failure involving certain 64-bit subtraction operations
Certain 64-bit subtraction expressions could prevent the compiler from selecting a valid instruction and cause the compiler to terminate unexpectedly. This regression affected the 202505 and 202511 toolchain releases and has been corrected in version 14.2.0.202607.
Developers upgrading existing projects should also review the following compatibility considerations:
– -Wreturn-type is enabled by default. Warnings generated for non-void functions that can reach the end without returning a value should be addressed, as such code may behave incorrectly when optimized.
– G++ applies stricter validation to malformed template definitions, including templates that cannot be valid for any possible instantiation.
– The C++ alignof operator now reports the minimum alignment required by the target ABI rather than the compiler’s preferred alignment. Code requiring the preferred alignment can use __alignof__.
– In C++17 mode, comparison objects used by associative containers such as std::map, std::multimap, std::set, and std::multiset must be callable when const-qualified.
– The Optlib library has been removed because it did not provide complete ANSI/ISO headers and definitions, implemented only part of the standard library functionality, and included mathematical functions that traded precision for speed or code size and were not IEEE 754 compliant.
For e² studio users, the installer does not provide a separate integration option because e² studio can automatically detect an installed GNURX toolchain when it starts. The toolchain can also be configured through the Toolchain Management feature in e² studio. Integration with the HEW IDE is not supported by this installer.
For complete technical information, usage details, and known issues, please refer to the release notes, available here.
We welcome your feedback on this release. Please share your comments, questions, or experiences with the new toolchain in the comments below.
Sex Cam6 Responses to GCC Toolchain for Renesas RX 14.2.0.202607 Released
Leave a Reply
You must be logged in to post a comment.

日本語
TFU Version2 を指定してコンパイルした場合のビルトイン関数の仕様等の情報はどこで参照できるでしょうか?
void sincosfx(int, int*, int*);
void atan2hypotfx(int, int, int*, int*);
int sinfx(int);
int cosfx(int);
int atan2fx(int, int);
int hypotfx(int, int);
こんにちは。
お問い合わせいただき、ありがとうございます。
各関数の説明については、ツールチェーンに同梱されている以下のドキュメントをご参照ください。
< ツールチェーンのインストール先>/Doc/gcc.pdf
6.62.34節「RX Built-in Functions」
その他にもご不明な点やお困りのことがございましたら、どうぞお気軽にお知らせください。
よろしくお願いいたします。
Open Source Tools Team
お世話になっております。
https://github.com/hirakuni45/RX/tree/master/RAYTRACER_sample
上記のプログラム(レイトレーシング、3Dレンダリングプログラム)で
RXv1 コア(RX62N、RX631 など)の場合に、gcc-8.3.0 に比べて極端に実行速度が遅くなる現象が発生しています
このプログラムは、単精度浮動小数点演算が多く含まれているプログラムです
又、rx64m、rx71m、rx66T、rx72T などの場合にも、微妙に実行速度が遅くなる現象があります
※実行時間の計測は、マイコン内蔵CMTタイマーによるものです
※実行時間は、上記リンクで表にしてあります
※gcc-8.3.0 は 202004 版を利用しています
上記プログラムは、一般的な e² studio 環境では無く、MSYS2上で、Makefile を使ったコマンドラインによるもので、スタートアップも独自に行っています
最適化は「-O3」で行っています
この件に関して、何か、情報がありましたら、教えて頂きたく思います
こんにちは。
詳細な情報をご提供いただき、ありがとうございます。
まずは、コンパイラオプションに **`-mno-balign`** を追加していただき、実行速度に改善が見られるかご確認いただけますでしょうか。
ご報告いただいた性能低下については、現在も原因の調査を進めておりますが、特定までにはしばらく時間を要する可能性があります。
弊社では、ツールチェーン自体に性能劣化がないかを確認するため、継続的に社内ベンチマークを実施しております。現時点では、ツールチェーン全体として、ご報告いただいたような性能低下は確認されておりません。ただし、これはお客様の特定のプロジェクトを対象とした検証結果ではないため、今回の事象については引き続き調査を進めてまいります。
また、調査の過程で、プロジェクトの構成やビルド条件などについて追加で確認させていただく場合がございます。その際はご協力いただけますと幸いです。
よろしくお願いいたします。
オープンソースツールチーム
お世話になっています。
RX62N で試してみましたが、「-mno-balign」オプションを追加しても、ほぼ変化しませんでした。(10ms 短縮した)
3868 —> 3856 [ms]
—
自分が簡単な調査をした処、以下の問題があるようです
RXv1 には、単精度浮動小数点の平方根を求める専用命令が無い為、数学関数の「sqrtf」を呼び出しています、この実装が、gcc-8.3.0とgcc-14.2.0で異なっているのでは無いかと考えています、RXv2、RXv3 では、インラインアセンブラで、専用命令fsqrtを呼び出しています、これは、「raytracer.hpp」の最初にあります
試しに、RX66T(RXv3) で、sqrtf を専用命令では無く、libm の数学関数命令に置き換えると
gcc-8.3.0 : 696[ms]
gcc-14.2.0: 1292[ms]
となり、RXv1で遅くなった傾向に類似しています
gcc-8.3.0とgcc-14.2.0で、リンクされているiee754-sqrtのアセンブラリストを見比べるとかなり大きな違いがあります(数学ライブラリは十分枯れたコードだと思うので、ここまで異なるのは一般的な感覚と異なります)
倍精度浮動小数点の関数がマッピングされているような印象があります
自分の調査はここまでです。
こんにちは。
あわせて、コンパイラオプションに `-fno-ipa-cp-clone` を追加していただくことをお勧めいたします。
このオプションを追加することで、特に `main.cpp` の `doRaytrace` 関数について、GCC 8.3.0 使用時に近いコード生成となります。
引き続き調査を進め、新たに判明した点がございましたらご報告いたします。
よろしくお願いいたします。
オープンソースツールチーム