Dear all,

I use uClinux on m68knommu plaftorm for embedded device and have a
problem with memory allocation/deallocation in C++ application.

I try to use ccmalloc library, but encounter some problems:

1. lack of sbrk function in libraries.

ucfront-gcc m68k-uclinux-gcc -m5307 -DCONFIG_COLDFIRE -Wl,-elf2flt
-Wl,-move-rodata -msep-data -Wl,-elf2flt -Wl,-move-rodata -msep-data -o
telnetd 
/home/plyatov/development/uClinux-20090302/lib/libccmalloc/lib/ccmalloc-gcc.o 
/home/plyatov/development/uClinux-20090302/lib/libccmalloc/lib/libccmalloc.a 
telnetd.o state.o termstat.o slc.o sys_term.o utility.o global.o authenc.o 
logwtmp.o logout.o -lutil -lutil 
telnetd.elf2flt: In function `MY_malloc':
src/myalloc.c:115: undefined reference to `sbrk'
collect2: ld returned 1 exit status
make[3]: *** [telnetd] Error 1

I resolve this problem by such ccmalloc's Makefile change:

-OBJ=obj/callchain.o obj/hash.o obj/wrapper.o
+OBJ=obj/callchain.o obj/hash.o obj/wrapper.o obj/sbrk.o

+obj/sbrk.o: src/config.h ../uClibc/libc/sysdeps/linux/common/sbrk.c
+       $(CC) $(CFLAGS) -c -o$@ \
+       ../uClibc/libc/sysdeps/linux/common/sbrk.c

is this a right solution?


2. applications linked with libccmalloc, write only part of information
to logfile. There is no ccmalloc report produced :-(
   For example, telnetd gives such output:
.----------------------------------------------------------------------.
|================ ccmalloc-0.3.9 (C) 1997-2001 Armin Biere ============|
+----------------------------------------------------------------------+
| executable       = telnetd                                           |
| startup file     = .ccmalloc                                         |
| log file         = /var/disk1/telnet.log                             |
| start time       = Tue Nov 30 00:01:55 1999                          |
| operating system = uClinux 2.4.20-uc0 m68knommu on GS100014          |
+----------------------------------------------------------------------+
| only-count        = 0            keep-deallocated-data = 0           |
| check-interval    = 0            check-free-space      = 0           |
| check-start       = 0            file-info             = 0           |
| chain-length      = 0            additional-line       = 1           |
| check-underwrites = 0            print-addresses       = 0           |
| check-overwrites  = 0            print-on-one-line     = 0           |
| sort-by-wasted    = 1            sort-by-size          = 1           |
| # only-log-chain  = 0            continue              = 0           |
| # dont-log-chain  = 0            statistics            = 0           |
| debug             = 0            library-chains        = 0           |
| load-dynlibs      = 0            align-8-byte          = 0           |
| only-wasting-alloc= 1                                                |
`----------------------------------------------------------------------'
And nothing more.

.ccmalloc content:
   file telnetd
   log /var/disk1/telnetd.log
   file-info 0
   set only-wasting-alloc 0

What can be wrong?

Thanks in advance and best regards!
--
Igor Plyatov

_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to