This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: free() does not call sbrk()


> The point I'm trying to make is that two different ports using the mallocr.c
> code and your test case work fine. ?The only obvious difference is that you
> have some additional functions with UART_ in front of them that are not part
> of newlib. ?One or more of these additional functions may be touching the
> heap or are corrupting the call to free() somehow. ?You might have a bug in
> the compiler used to build newlib or your test. ?There may even be a bug in
> mallocr that nobody has ever seen before. ?It's going to take some debugging
> on your part.
>
> I suggest you debug the test case to ensure that the newlib mallocr code is
> being called for malloc and free, that the ptr passed to free is the same
> one you got from malloc earlier, and that there are no other heap calls
> being made in between directly or indirectly by the UART functions. ?Failing
> that, try debugging mallocr to see why malloc/free aren't reusing the same
> piece of storage.

Hi Jeff, thanks for making this clear. I found out that our compiler
produces wrong code  when using -Ox, for x > 0.
Kind regards,
Martin


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]