[cfe-dev] "::malloc not found"
Joerg Sonnenberger
joerg at britannica.bec.de
Fri May 11 15:26:43 PDT 2012
On Fri, May 11, 2012 at 01:12:06PM -0400, Martin C. Martin wrote:
> Hi,
>
> I can compile libmemcached-1.0.5 just fine with gcc/g++ (on Ubuntu
> 12.04). But when I try with Clang 3.0 I get:
>
> CXX libmemcached/csl/libmemcached_libmemcached_la-context.lo
> In file included from libmemcached/csl/context.cc:38:
> In file included from ./libmemcached/csl/common.h:40:
> In file included from ./libmemcached/common.h:49:
> /usr/include/c++/4.6/cstdlib:118:11: error: no member named 'malloc' in
> the global namespace
> using ::malloc;
> ~~^
> /usr/include/c++/4.6/cstdlib:126:11: error: no member named 'realloc' in
> the global namespace
> using ::realloc;
> ~~^
>
> Any pointers on whether this is a Clang or libmemcached problem? It
> compiles just fine with gcc after all...
glibc headers can be strange and gcc headers can be strange, so
"compiles fine with gcc" is not a very useful metric. I suggest you
start by using adding -save-temps and check when malloc/realloc are
defined. One item to look for: stray extern "C" blocks. GCC seems to
implicitly switch back to C++ mode for the C++ system headers, Clang
doesn't.
Joerg
More information about the cfe-dev
mailing list