Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2002-01-17 19:39:53 +0300
committerNick Clifton <nickc@redhat.com>2002-01-17 19:39:53 +0300
commitb2db0ebcfe5ade4a1db755bca5112400a69be288 (patch)
treea4fe0a94bbf2ba68331117f6089e65e1276c281d /newlib/libc/sys
parent104c3be68177cc1f239d42bdfcc66f2bf5789942 (diff)
_sbrk(): Return -1 rather than aborting if too much memory is requested.
Diffstat (limited to 'newlib/libc/sys')
-rw-r--r--newlib/libc/sys/arm/syscalls.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/newlib/libc/sys/arm/syscalls.c b/newlib/libc/sys/arm/syscalls.c
index 795f7784d..0483d4893 100644
--- a/newlib/libc/sys/arm/syscalls.c
+++ b/newlib/libc/sys/arm/syscalls.c
@@ -470,8 +470,6 @@ _getpid (int n)
n = n;
}
-extern void abort (void);
-
caddr_t
_sbrk (int incr)
{
@@ -486,8 +484,18 @@ _sbrk (int incr)
if (heap_end + incr > stack_ptr)
{
+ /* Some of the libstdc++-v3 tests rely upon detecting
+ out of memory errors, so do not abort here. */
+#if 0
+ extern void abort (void);
+
_write (1, "_sbrk: Heap and stack collision\n", 32);
+
abort ();
+#else
+ errno = ENOMEM;
+ return -1;
+#endif
}
heap_end += incr;