summaryrefslogtreecommitdiffstats
path: root/newlib/libc/stdlib/nano-mallocr.c
Commit message (Collapse)AuthorAgeFilesLines
* Newlib build is broken if configured with nano-malloc and non-reentrant ↵Игорь Веневцев2016-02-081-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | system calls Non-reentrant system calls version implies both MISSING_SYSCALL_NAMES and REENTRANT_SYSCALL_PROVIDED macros to be defined. Being coupled with --enable-newlib-nano-malloc knob it breaks the build: bash-4.3$ ../newlib-2.3.0.20160104/configure CC_FOR_TARGET=gcc AR_FOR_TARGET=ar RANLIB_FOR_TARGET=ranlib CFLAGS_FOR_TARGET="-m32 -DMISSING_SYSCALL_NAMES -DREENTRANT_SYSCALLS_PROVIDED" --target=i386-elf --enable-newlib-nano-malloc && make <...omitted output...> ../../../../../../newlib-2.3.0.20160104/newlib/libc/stdlib/nano-mallocr.c: In function ‘_mallinfo_r’: ../../../../../../newlib-2.3.0.20160104/newlib/libc/stdlib/nano-mallocr.c:489:35: error: macro "_sbrk_r" requires 2 arguments, but only 1 given sbrk_now = _sbrk_r(RCALL 0); ^ ../../../../../../newlib-2.3.0.20160104/newlib/libc/stdlib/nano-mallocr.c:489:20: error: ‘_sbrk_r’ undeclared (first use in this function) sbrk_now = _sbrk_r(RCALL 0); ^ ../../../../../../newlib-2.3.0.20160104/newlib/libc/stdlib/nano-mallocr.c:489:20: note: each undeclared identifier is reported only once for each function it appears in Makefile:1512: recipe for target 'lib_a-nano-mallinfor.o' failed make[8]: *** [lib_a-nano-mallinfor.o] Error 1 In case of non-reentrant system calls _sbrk_r became a macro with TWO args (defined in reent.h): #define _sbrk_r(__reent, __incr) sbrk(__incr) But in our case only one argument is present. (RCALL 0) is considered as a single argument despite RCALL itself is a macro:) So intermediate one-arg macro will be enough to expand args before final _sbrk_r expansion: #define _SBRK_R(X) _sbrk_r(X) Here is a patch:
* * libc/stdlib/nano-mallocr.c (ALIGN_TO): Do not assume thatDJ Delorie2014-12-161-1/+1
| | | | integers are as big as pointers.
* Implement malloc_stats for nano.Corinna Vinschen2013-10-301-34/+80
| | | | | | | | | | | | * libc/stdlib/nano-mallocr.c (RONECALL): New parameter macro. (sbrk_start): New variable. (current_mallinfo, free_list): Forward declaration of data. (chunk): Define size as long type. (mallinfo): Synchronize with latest malloc.h. (nano_*): Forward declaration of functions. (get_chunk_from_ptr): Defined to static inline. (nano_mallinfo): Implement this function. (nano_malloc_stats): Implement this function.
* 2013-09-13 Joey Ye <joey.ye@arm.com>Jeff Johnston2013-09-131-2/+2
| | | | | * libc/stdlib/nano-mallocr.c (nano_allopt): Typo fixed to ... (nano_mallopt): ... this.
* * configure.in (--enable-newlib-nano-malloc): New option.Corinna Vinschen2013-05-291-0/+581
* configure: Regenerated. * libc/configure.in (--enable-newlib-nano-malloc): New option. * libc/configure: Regenerated. * libc/stdlib/Makefile.am (NEWLIB_NANO_MALLOC): Use. * libc/stdlib/Makefile.in: Regenerated. * libc/stdlib/nano-mallocr.c: New file, implementing nano version malloc family functions.