* ldmain.c (main): Add start_sbrk set to sbrk(0) on entry.
authorSimon Baldwin <simonb@google.com>
Thu, 15 Nov 2012 10:49:02 +0000 (10:49 +0000)
committerSimon Baldwin <simonb@google.com>
Thu, 15 Nov 2012 10:49:02 +0000 (10:49 +0000)
On exit, compute data size as the delta between current
sbrk(0) and start_sbrk.

ld/ChangeLog
ld/ldmain.c

index afb0b997fc37e889eeddefeeda60e6071d8de15c..2b0a3e41ed62f8b4a7e88efdbfd0c6429efc0e26 100644 (file)
@@ -1,3 +1,9 @@
+2012-11-15  Simon Baldwin  <simonb@google.com>
+
+       * ldmain.c (main): Add start_sbrk set to sbrk(0) on entry.
+       On exit, compute data size as the delta between current
+       sbrk(0) and start_sbrk.
+
 2012-11-09  Nick Clifton  <nickc@redhat.com>
 
        * emultempl/rxelf.em (no_flag_mismatch_warnings): Initialise to
index 3ba19b9fb47629ba51efa5705fad5d346be21cbb..07f5f0923def5daf7db19fe73306cef061ec24ac 100644 (file)
@@ -191,6 +191,9 @@ main (int argc, char **argv)
 {
   char *emulation;
   long start_time = get_run_time ();
+#ifdef HAVE_SBRK
+  char *start_sbrk = (char *) sbrk (0);
+#endif
 
 #if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
   setlocale (LC_MESSAGES, "");
@@ -505,7 +508,7 @@ main (int argc, char **argv)
               program_name, run_time / 1000000, run_time % 1000000);
 #ifdef HAVE_SBRK
       fprintf (stderr, _("%s: data size %ld\n"), program_name,
-              (long) (lim - (char *) &environ));
+              (long) (lim - start_sbrk));
 #endif
       fflush (stderr);
     }