cvs commit: src/lib/libc/include libc_private.h src/lib/libc/stdlib Makefile.inc calloc.c malloc.c posix_memalign.3 src/lib/libpthread/thread thr_fork.c src/lib/libthr/thread thr_fork.c src/libexec/rtld-elf malloc.c

Jason Evans jasone at FreeBSD.ORG
Wed Jan 11 23:43:09 PST 2006


On Jan 11, 2006, at 11:38 PM, Andrey Chernov wrote:

> On Thu, Jan 12, 2006 at 07:28:21AM +0000, Jason Evans wrote:
>>     * Move calloc() from calloc.c to malloc.c.  Add a calloc()  
>> implementation in
>>       rtld-elf in order to make the loader happy (even though  
>> calloc() isn't
>>       used in rtld-elf).
>
> If it isn't used, what you mean by saying "happy"? Does it means  
> that new
> rtld-elf should be builded/installed before new libc builded/ 
> installed or
> not?

rtld-elf needs its own implementation of malloc, but when the  
application is loaded, the symbols in rtld-elf's malloc.o are  
overridden.  I had numerous problems with this overriding mechanism  
not working if libc's malloc.o had a calloc symbol, but rtld-elf's  
malloc.o did not.

I can't claim to completely understand why the addition of calloc in  
rtld-elf was necessary.  It's possible that there's another fix, but  
I don't know what it might be.

Jason


More information about the cvs-src mailing list