(toppers-users 2465) Re: malloc()の利用方法

TAKAGI Nobuhisa takagi-n @ biggie.jp
2006年 7月 11日 (火) 18:24:45 JST


二口様

> これは、newlibrt.c のC++用に記述された部分を
> うまく省くことができればいいということでしょうか?

ほぼそれでよいのですが、ターゲットやnewlibのビルド時の設定などで、
微妙に状況が異なると思います。
ただ、ARMで試したことはないので、詳しいことはよくわかりません。

> newlib の中にも、_sbrk(), _sbrk_r() があったり、
> __malloc_[un]lock() が呼ばれていなかったりで、
> newlibのmalloc() と 自作(あるいはnewlibrt.c)の_sbrk()他、との
> 関係が今ひとつ読み取れません。

mallocやfree関数の実装では、複雑なマクロ定義が使われているので、
慎重に読まないとなかなか追えないと思います。
例えば、__malloc_lockがMALLOC_LOCKマクロになっていたりします。

_sbrk等に関しては、newlib/libc/sysおよびnewlib/libc/syscalls以下に、
定義があると思いますが、ターゲットによってはsbrkを置き換える方が
よい場合もあります。

-----------
高木信尚