こんにちは。NoMaYです。最近、以下のスレッドに関わって知ったのですが、ルネサスさんのTCP/IPスタックT4のバイナリライブラリ(元ソースもRXスマートコンフィグレータにて提供される)が以下の画面コピーのT4のドキュメント記載の事情によりビルド出来ないことを知りました。そこで対処法を試行錯誤してみました。続く。FreeRTOSとr_t4_rxを使用した際のビルドエラーについて(RX72N)japan.renesasrulz.com/cafe_rene/forums-groups/beginners/f/002-2095199602/8335/freertos-r_t4_rx-rx72n/42982#42982「ところで脱線しますけれども、T4のドキュメントの以下の制限事項ですが、エラーは発生するのでしょうか?」RX SmartConfiguratorで気になった点とか改善する案とか報告してみるスレッドjapan.renesasrulz.com/cafe_rene/forums-groups/mcu-mpu/rx/f/forum5/7536/rx-smartconfigurator/43222#43222「ビルドエラーが発生するのはT4のライブラリ(r_t4_rx/make_lib/make_lib.zip の中にライブラリソースと作成用プロジェクトが入っています)を自前で作成する時です。」以下、T4のドキュメントの画面コピーです。
こんにちは。NoMaYです。2重定義になっているin_addr_tという型は以下になります。なお、Google検索すると業界標準は、構造体/共用体による定義ではなく、プレーンな32ビット整数型による定義の方のようです。T4側
typedef struct _in_addr{ union { struct { uint8_t s_b1; uint8_t s_b2; uint8_t s_b3; uint8_t s_b4; } S_un_b; struct { uint16_t s_w1; uint16_t s_w2; } S_un_w; uint32_t S_addr; } S_un;} in_addr_t;
GCC側
#if __BSD_VISIBLE#include <machine/endian.h>#include <sys/select.h># define physadr physadr_t# define quad quad_t#ifndef _IN_ADDR_T_DECLAREDtypedef __uint32_t in_addr_t; /* base type for internet address */#define _IN_ADDR_T_DECLARED#endif#ifndef _IN_PORT_T_DECLAREDtypedef __uint16_t in_port_t;#define _IN_PORT_T_DECLARED#endiftypedef __uintptr_t u_register_t;#endif /* __BSD_VISIBLE */
Google検索: in_addr_twww.google.com/search?q=in_addr_t続く。