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:
-rw-r--r--libgloss/ChangeLog4
-rw-r--r--libgloss/or1k/sbrk.c5
2 files changed, 7 insertions, 2 deletions
diff --git a/libgloss/ChangeLog b/libgloss/ChangeLog
index 6b3fe3c4e..c05f12d06 100644
--- a/libgloss/ChangeLog
+++ b/libgloss/ChangeLog
@@ -1,5 +1,9 @@
2015-05-26 Stefan Wallentowitz <stefan.wallentowitz@tum.de>
+ * or1k/sbrk.c: Allow for different heap start
+
+2015-05-26 Stefan Wallentowitz <stefan.wallentowitz@tum.de>
+
* or1k/or1k_uart.c: Fix interrupts
2015-05-26 Stefan Wallentowitz <stefan.wallentowitz@tum.de>
diff --git a/libgloss/or1k/sbrk.c b/libgloss/or1k/sbrk.c
index de80663ee..5bd7044f7 100644
--- a/libgloss/or1k/sbrk.c
+++ b/libgloss/or1k/sbrk.c
@@ -19,12 +19,13 @@
#include "include/or1k-support.h"
+extern uint32_t end; /* Set by linker. */
+uint32_t _or1k_heap_start = &end;
static uint32_t _or1k_heap_end;
void *
_sbrk_r (struct _reent * reent, ptrdiff_t incr)
{
- extern uint32_t end; /* Set by linker. */
uint32_t prev_heap_end;
// This needs to be atomic
@@ -34,7 +35,7 @@ _sbrk_r (struct _reent * reent, ptrdiff_t incr)
uint32_t sr_tee = or1k_timer_disable();
// Initialize heap end to end if not initialized before
- or1k_sync_cas((void*) &_or1k_heap_end, 0, (uint32_t) &end);
+ or1k_sync_cas((void*) &_or1k_heap_end, 0, (uint32_t) _or1k_heap_start);
do {
// Read previous heap end