On Thu, 2007-08-09 at 09:48 +0700, zen wrote:
> >  awk  '/checking.for.mallopt/,/result:/' config.log  
> >
> here the result:
> configure:42213: checking for mallopt
> configure:42270: gcc -o conftest -Wall -g -O2  -g -pthread conftest.c 
> -lpthread -lm  >&5
> /var/tmp//ccQv9b17.o(.text+0x14): In function `main':
> /data/source/squid-3.0.PRE6/conftest.c:222: undefined reference to
> `mallopt'
...
> configure:42301: result: no

Hm... Something does not add up here. ./configure found no mallopt and
should have undefined the HAVE_MALLOPT #define in include/autoconf.h
Do you have the following lines in that file (search for HAVE_MALLOPT)?

> /* Define to 1 if you have the `mallopt' function. */
> /* #undef HAVE_MALLOPT */

If yes, then Squid cannot be using mallopt in MemPool.cc because the
usage is guarded:

> #if HAVE_MALLOPT && M_MMAP_MAX
>     mallopt(M_MMAP_MAX, MEM_MAX_MMAP_CHUNKS);
> #endif

So if HAVE_MALLOPT is undefined, then GCC would not even try to compile
the mallopt() call above!

Please let me know the output of

        fgrep -2 MALLOPT include/autoconf.h

and the output of

        cd lib/
        # this is the compilation command from your original email except I 
told GCC
        # to stop at the preprocessing step and save the results into MemPool.E
        g++ -DHAVE_CONFIG_H -I. -I. -I../include -I../include -I../include 
-Werror -Wall -Wpointer-arith -Wwrite-strings -Wcomments  -D_REENTRANT -g -O2 
-MT MemPool.o -MD -MP -MF ".deps/MemPool.Tpo" -E -o MemPool.E MemPool.cc
        fgrep -3 mallopt MemPool.E

and
        g++ --version

Thank you,

Alex.


Reply via email to