aboutsummaryrefslogtreecommitdiff
path: root/libgloss/or1k/sbrk.c
diff options
context:
space:
mode:
Diffstat (limited to 'libgloss/or1k/sbrk.c')
-rw-r--r--libgloss/or1k/sbrk.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libgloss/or1k/sbrk.c b/libgloss/or1k/sbrk.c
index de80663..5bd7044 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