summaryrefslogtreecommitdiff
path: root/libgo
diff options
context:
space:
mode:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2013-07-24 17:37:07 +0000
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2013-07-24 17:37:07 +0000
commitfe8f8c83d8dce53b0fb8aec5efc91e7ae55b8529 (patch)
tree4bb653dd86ad7900797661b952db05e7dcb8f000 /libgo
parent9612f3980812ea5058080798c20f2cc5f3f609fe (diff)
downloadgcc-fe8f8c83d8dce53b0fb8aec5efc91e7ae55b8529.tar.gz
runtime: Check _end rather than end to find end of program.
This fixes a problem on Solaris, where end is not defined in the main program but comes from some shared library. This only matters for 32-bit targets. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201220 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgo')
-rw-r--r--libgo/runtime/malloc.goc4
1 files changed, 2 insertions, 2 deletions
diff --git a/libgo/runtime/malloc.goc b/libgo/runtime/malloc.goc
index dfab683950a..4b93e970769 100644
--- a/libgo/runtime/malloc.goc
+++ b/libgo/runtime/malloc.goc
@@ -319,7 +319,7 @@ runtime_mallocinit(void)
{
byte *p;
uintptr arena_size, bitmap_size;
- extern byte end[];
+ extern byte _end[];
byte *want;
uintptr limit;
@@ -408,7 +408,7 @@ runtime_mallocinit(void)
// So adjust it upward a little bit ourselves: 1/4 MB to get
// away from the running binary image and then round up
// to a MB boundary.
- want = (byte*)(((uintptr)end + (1<<18) + (1<<20) - 1)&~((1<<20)-1));
+ want = (byte*)(((uintptr)_end + (1<<18) + (1<<20) - 1)&~((1<<20)-1));
if(0xffffffff - (uintptr)want <= bitmap_size + arena_size)
want = 0;
p = runtime_SysReserve(want, bitmap_size + arena_size);