Hi,
I found that malloc/free functions have been implemented in at least
three different libraries: cxx, mini_c and libc. I assume cxx is used
for genode base and core implementations, mini_c for demos and libc for
porting. However, I am not able to use any of them in my own
application. When using malloc defined in mini_c or libc, I got a
compiler error " reference to 'size_t' is ambiguous". It looks like
both stdlib.h in mini_c (or libc) directory and stdint.h in base
directory have defined "size_t" type. And I cannot get rid of the use of
stdint.h as it has been included in many genode base and core files.
On the other hand, if I wanted to use the malloc in cxx by putting "cxx"
into LIB in my application's target.mk, malloc cannot be recognized by
the compiler. To solve this problem, I currently have to define my own
malloc/free by copying the implementation from cxx and it works.
However, I really wonder which malloc/free defined in genode should I
use and how? By the way, the implementation of heap()->alloc() is
thread-safe, right?
Thanks.
Chen