]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
runtime: Check _end rather than end to find end of program.
authorIan Lance Taylor <ian@gcc.gnu.org>
Wed, 24 Jul 2013 17:37:07 +0000 (17:37 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Wed, 24 Jul 2013 17:37:07 +0000 (17:37 +0000)
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.

From-SVN: r201220

libgo/runtime/malloc.goc

index dfab683950a867cbef074e43769aaece93a4a808..4b93e9707691faff2ff136a49bb5846bc6fc2883 100644 (file)
@@ -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);