summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--configure.ac10
-rw-r--r--src/mkid.c21
3 files changed, 31 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 610ecfe..6ecb675 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2006-07-22 Claudio Fontana <claudio@gnu.org>
+ * configure.ac: add check for sbrk
+ * src/mkid.c (get_process_heap): new function.
+ Calls sbrk() if available, or NULL if unsupported.
+
+ * src/mkid.c (report_statistics): (nochange)
+ the reported heap usage is 0+0 if sbrk is
+ not available.
+
+2006-07-22 Claudio Fontana <claudio@gnu.org>
+
upgraded gnulib.
2006-07-22 Claudio Fontana <claudio@gnu.org>
diff --git a/configure.ac b/configure.ac
index 8efded7..c0bc3c3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -27,10 +27,12 @@ AC_FUNC_ALLOCA
AM_GNU_GETTEXT
-# Use HAVE_LINK as discriminator between Unix systems and others
-AC_CHECK_FUNCS(link,
- [AC_MSG_NOTICE([assuming Unix conventions])],
- [AC_MSG_NOTICE([assuming non-Unix])])
+# check functions
+
+# if HAVE_LINK, then in the code we look for file aliases
+# if HAVE_SBRK, then we can generate statistics on memory usage
+
+AC_CHECK_FUNCS([link sbrk])
AM_PATH_LISPDIR
diff --git a/src/mkid.c b/src/mkid.c
index c8566b0..8a64530 100644
--- a/src/mkid.c
+++ b/src/mkid.c
@@ -179,15 +179,24 @@ The following arguments apply to the language-specific scanners:\n\
exit (0);
}
-char const *heap_initial;
-char const *heap_after_walk;
-char const *heap_after_scan;
+void *heap_initial;
+void *heap_after_walk;
+void *heap_after_scan;
+
+static void *get_process_heap(void)
+{
+#if HAVE_SBRK
+ return sbrk(0);
+#else
+ return 0;
+#endif
+}
int
main (int argc, char **argv)
{
program_name = argv[0];
- heap_initial = (char const *) sbrk (0);
+ heap_initial = get_process_heap();
idh.idh_file_name = DEFAULT_ID_FILE_NAME;
#if ENABLE_NLS
@@ -288,7 +297,7 @@ main (int argc, char **argv)
if (flink)
walk_flink (flink, 0);
}
- heap_after_walk = (char const *) sbrk (0);
+ heap_after_walk = get_process_heap();
mark_member_file_links (&idh);
log_8_member_files = ceil_log_8 (idh.idh_member_file_table.ht_fill);
@@ -313,7 +322,7 @@ main (int argc, char **argv)
if (idh.idh_member_file_table.ht_fill)
{
scan_files (&idh);
- heap_after_scan = sbrk (0);
+ heap_after_scan = get_process_heap();
free_summary_tokens ();
free (token_table.ht_vec);