On Fri, May 21, 2021 at 3:36 PM Joel Sherrill <j...@rtems.org> wrote: > > Closes #4r37. ?
> --- > bsps/powerpc/shared/start/sbrk.c | 14 ++++++++++++-- > 1 file changed, 12 insertions(+), 2 deletions(-) > > diff --git a/bsps/powerpc/shared/start/sbrk.c > b/bsps/powerpc/shared/start/sbrk.c > index 95104ba9c8..d7507b3997 100644 > --- a/bsps/powerpc/shared/start/sbrk.c > +++ b/bsps/powerpc/shared/start/sbrk.c > @@ -150,9 +150,19 @@ void *sbrk(ptrdiff_t incr) > remaining_size-=incr; > rval = (void *) remaining_start; > remaining_start += incr; > - } else { > - errno = ENOMEM; This may be a kind of API change that needs to be documented in release notes for PPC users? > } > + > + /* > + * sbrk() is a Legacy POSIX method which means it is no longer part of the > + * POSIX standard. Historically, it was required to set errno to ENOMEM if > + * the extension failed. This implementation does not do that for two > + * reasons. First, this method is only called from the RTEMS malloc() > + * implementation and does not expect errno to be set when -1 is returned. > + * Second, setting errno implicitly pulls in some of the newlib reentrancy > + * support. Not setting errno avoids this method forcing that support > + * into every application for every BSP that uses this method. > + */ > + > #ifdef DEBUG > printk("************* SBRK 0x%08x (ret 0x%08x) **********\n", incr, > rval); > #endif > -- > 2.24.4 > > _______________________________________________ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel