diff --git a/dmalloc-5.5.2/.svn/entries b/dmalloc-5.5.2/.svn/entries
deleted file mode 100644
index e3d0761..0000000
--- a/dmalloc-5.5.2/.svn/entries
+++ /dev/null
@@ -1,1873 +0,0 @@
-10
-
-dir
-4827
-svn+ssh://dfw/home/jaten/master/djitia/trunk/strongref/dmalloc/dmalloc-5.5.2
-svn+ssh://dfw/home/jaten/master
-
-
-
-2011-08-05T03:20:51.163180Z
-3033
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-e6be6f59-e0a5-4eb3-8248-31cade392fd3
-
-dmalloc_argv.h
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-6c33fed236478aa8dad14badb44b42ed
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-15099
-
-conf.h.in
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-dfe219655b56fc1a86fdc7016310735c
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-8365
-
-configure
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-c497b413455af751b34b6a5799f49d51
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-325906
-
-error_val.h
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-92aa96bf0eddaae0b4af68b6dcfc1dd9
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4730
-
-Makefile.in
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-cce6fc5e478191290438ef0cd2c37cb6
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-14406
-
-dmalloc_tab.c
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-980c17524a1d578c974ee2115922e089
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-20885
-
-RELEASE.html
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-acb10286fbfaaf222af6b58a79a9a941
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3410
-
-config.log
-file
-
-
-
-
-2011-09-21T21:55:23.000000Z
-f7dc7d81b559bc9f4cf404f89a2fe5dc
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-ChangeLog.1
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-7f40a2bbcea98aff67d6ae2b4fcdcd19
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-66379
-
-dmalloc_fc_t.c
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-92f5ee315367942daeff56c1c0fdc456
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-23750
-
-dmalloc_tab.h
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-1bfb7ead6e985e689d18f38b5a6f7e52
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4076
-
-docs
-dir
-
-malloc.c
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-2fe75a2de6b8b4b3d38585b70dd6d22b
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-51358
-
-debug_tok.h
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-c901ca67eb27ef0e3d959bfa9bf2764f
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-6186
-
-chunk_loc.h
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-1531a2f8a226070cefdb84325c5f2c7e
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-6034
-
-config.help
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-b6161685359c68016bf971407e443b13
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4153
-
-heap.c
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-f79fb27f8370ab820ed6482fcec520c6
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-5515
-
-dmalloc_loc.h
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-9d4f3aa3f38961989aeb8fd78028351c
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2308
-
-dmalloc.h.1
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-809b956968f67ad827031a8cbd40d5f2
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-869
-
-dmalloc.h.2
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-bc0e470a012f46bd2e500201c17672fe
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-572
-
-dmalloc.h.3
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-52298effd128b0b072227974526da131
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-33378
-
-heap.h
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-6b3c37695e37dbd03d149f2296049f73
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1972
-
-configure.ac
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-f5658585089f9a5fe3f12a2543e47f92
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-24328
-
-INSTALL
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-792d1a718291c79a4df930c41658d4bc
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-162441
-
-env.c
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-0d9c1482cdf2e9857969899bfd0c64c4
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-10752
-
-error.c
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-4e159daab140f72ab90983518a126dec
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-16550
-
-conf.h
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-3130c28cce507a1895027e5de311eb29
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-8406
-
-NEWS
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-1662257cdf9a2817c588a9e70ca3034f
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-25183
-
-Makefile
-file
-
-
-
-
-2011-09-21T21:55:23.000000Z
-55a91061396824006247e6935e9ffb57
-2011-08-04T22:18:45.255070Z
-2997
-jaten
-
-dmalloc_argv_loc.h
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-9c2c037245fa1e51b299b7703c8b494c
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-7622
-
-env.h
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-82a30375684b5885a323eb98808a7e24
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2436
-
-dmalloc_t.c
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-368da44fc5859d133b8d758c6067e734
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-105685
-
-error.h
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-3e42492c0c691c5cb21b49aebf732a33
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4868
-
-mkinstalldirs
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-c926c64bb974f0fb88554a27ecdf2661
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-675
-
-dmalloc_tab_loc.h
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-07ecda6685198ab9eea934348395d7c2
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2670
-
-settings.h
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-f468803e7fc1a94140bec4dd80191721
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-16391
-
-config.status
-file
-
-
-
-
-2011-09-21T21:55:23.000000Z
-7ccc2e433744745d786314254d6d2b12
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-has-props
-
-arg_check.c
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-5ecc833ea1c11610f37eb39770026e9b
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-19011
-
-chunk.c
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-be4921f10925b7ce057ae2beaf475a6c
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-87452
-
-malloc_funcs.h
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-8e13429b94d2db774e220a33c3bcadad
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-8558
-
-dmalloc.c
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-025092abe857541214513777b7719b82
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-28965
-
-arg_check.h
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-8eb190db59e8c34f092e185d292e2475
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-7284
-
-README
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-61571326a8d27dc314f355b5507b7494
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3778
-
-chunk.h
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-39ad1b6c58e7a95c4e90886e45ab671a
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-9998
-
-contrib
-dir
-
-dmalloc_rand.c
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-36b6c98a51c9b5dfafc538111d43fa93
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2618
-
-dmallocrc
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-1cb44b585e2ca9ab991628e54c9b24b2
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4237
-
-dmalloc.h
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-c9521aeb5581176a05628bec540a86a9
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-34819
-
-dmallocc.cc
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-635415fd21ca69d67a9e8a40f95adc69
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2231
-
-settings.dist
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-ec1bd2647bea7a486ec1e1fa8b18907b
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-16224
-
-dmalloc.spec
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-296930b056176cc71d9c621e77bc16c9
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1557
-
-compat.c
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-10828333b44f2ddcb4a10de572e3a29e
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-10778
-
-dmalloc_rand.h
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-2191f62ad3089f2398f957935b9fa89c
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1550
-
-return.h
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-81e3ac2cbc998e788c8e2d573a2d4972
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-9072
-
-compat.h
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-4992443af1e3ecaaefa979c3a051548a
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-5651
-
-dmalloc_argv.c
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-290ecef42db85b36651c4fad5873f997
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-86555
-
-version.h
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-dbc485845ed121cd767186d0d08861b8
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1365
-
-install-sh
-file
-
-
-
-
-2011-09-21T22:04:42.000000Z
-ca4c8e08be31723608758c97c4001862
-2011-08-03T21:09:48.822322Z
-2963
-jaten
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-5585
-
diff --git a/dmalloc-5.5.2/.svn/prop-base/config.status.svn-base b/dmalloc-5.5.2/.svn/prop-base/config.status.svn-base
deleted file mode 100644
index 869ac71..0000000
--- a/dmalloc-5.5.2/.svn/prop-base/config.status.svn-base
+++ /dev/null
@@ -1,5 +0,0 @@
-K 14
-svn:executable
-V 1
-*
-END
diff --git a/dmalloc-5.5.2/.svn/prop-base/configure.svn-base b/dmalloc-5.5.2/.svn/prop-base/configure.svn-base
deleted file mode 100644
index 869ac71..0000000
--- a/dmalloc-5.5.2/.svn/prop-base/configure.svn-base
+++ /dev/null
@@ -1,5 +0,0 @@
-K 14
-svn:executable
-V 1
-*
-END
diff --git a/dmalloc-5.5.2/.svn/prop-base/install-sh.svn-base b/dmalloc-5.5.2/.svn/prop-base/install-sh.svn-base
deleted file mode 100644
index 869ac71..0000000
--- a/dmalloc-5.5.2/.svn/prop-base/install-sh.svn-base
+++ /dev/null
@@ -1,5 +0,0 @@
-K 14
-svn:executable
-V 1
-*
-END
diff --git a/dmalloc-5.5.2/.svn/prop-base/mkinstalldirs.svn-base b/dmalloc-5.5.2/.svn/prop-base/mkinstalldirs.svn-base
deleted file mode 100644
index 869ac71..0000000
--- a/dmalloc-5.5.2/.svn/prop-base/mkinstalldirs.svn-base
+++ /dev/null
@@ -1,5 +0,0 @@
-K 14
-svn:executable
-V 1
-*
-END
diff --git a/dmalloc-5.5.2/.svn/text-base/ChangeLog.1.svn-base b/dmalloc-5.5.2/.svn/text-base/ChangeLog.1.svn-base
deleted file mode 100644
index 0a0fb96..0000000
--- a/dmalloc-5.5.2/.svn/text-base/ChangeLog.1.svn-base
+++ /dev/null
@@ -1,2397 +0,0 @@
-2007-05-14 Gray Watson <>
-
- * Removed some left-over references to the dmalloc.info file.
- Thanks Bernard.
-
- * Fixed some unsigned/signed issues in one of the dmalloc_t tests.
- Thanks Bernard.
-
- * Fixed problems with configure and SL_LINK_OBJS. Thanks Bernard.
-
- * Releasing dmalloc version 5.5.2.
-
-2007-03-25 Gray Watson <>
-
- * Fixed some problems with str[n]dup argument checking.
-
- * Releasing dmalloc version 5.5.1.
-
-2007-03-24 Gray Watson <>
-
- * Fixed bug where LOG_PNT_SEEN_COUNT set to 0 caused segfault in
- dmalloc_examine. dmalloc_t was also not handling the setting
- appropriated.
-
- * Fixed bug with the checking of the MAX_FILE_LENGTH.
-
-2007-03-23 Gray Watson <>
-
- * Revamped the chunk.c tests for user_pnt space. Added support
- for strnlen sizing. Added better checking of non-exact user
- pointers.
-
- * Added dmalloc_verify_pnt_strsize to support strnlen size testing.
-
-2007-03-22 Gray Watson <>
-
- * Added missing DMALLOC_FUNC_CHECK routines: atoi, atol, memmove
-
- * Added a number of special checks for DMALLOC_FUNC_CHECK stuff.
-
- * Fixed all of the DMALLOC_FUNC_CHECK arguments thanks to Nickolai.
-
-2007-03-12 Gray Watson <>
-
- * Improved some documents after user feedback. Thanks Renny.
-
-2007-02-08 Gray Watson <>
-
- * Releasing dmalloc version 5.5.0.
-
-2006-03-27 Gray Watson <>
-
- * Fixed a problem with arg-check dmalloc code and check-fence.
-
-2006-03-23 Gray Watson <>
-
- * Fixed a section of the manual about Cygwin thanks to Pierre.
-
- * Fixed a problem with Cygwin env parsing. Thanks to Pierre and
- others.
-
-2005-12-21 Gray Watson <>
-
- * Added a section on dumping core in the manual.
-
- * Added a number of regression tests for the arg-check code.
-
-2005-12-19 Gray Watson <>
-
- * Fixed some problems with function argument checking and length
- arguments. The library was not handling strncmp correctly for
- example.
-
- * Added handling of strndup function.
-
- * Added overlapping memory check for memcpy if memmove exists.
-
- * Added __FILE__ and __LINE__ arguments to function checks. Not
- sure why they weren't there earlier.
-
-2005-12-18 Gray Watson <>
-
- * Added patches to [hopefully] improve the building under Mac OSX.
- Thanks to Terry.
-
- * Added dmalloc_get_stats function to report on internal heap
- stats. Thanks to Sam.
-
-2005-12-17 Gray Watson <>
-
- * Fixed a problem with the RPM .spec file.
-
-2005-11-30 Gray Watson <>
-
- * Fixed a problem with double free not reporting
- ERROR_ALREADY_FREE. This was confusing.
-
-2005-10-27 Gray Watson <>
-
- * Made some changes to the docs to address the possible mmap
- issues.
-
- * Added better checking for mmap compatibility during autoconfig.
-
-2005-10-15 Gray Watson <>
-
- * Added a section to the startup docs about the .tgz file
- extension.
-
-2005-07-26 Gray Watson <>
-
- * Improved some of the startup docs and installed a new version of
- texi2html. The old one was hiding the NOTE entries.
-
-2005-06-05 Gray Watson <>
-
- * Improved the usage output for dmalloc. Thanks to murf.
-
- * Improved some of the error values to better identify internal
- dmalloc errors.
-
- * Fixed problem where if LARGEST_ALLOCATION is set to 0 the test
- program still checks it. Whoops. Thanks to sbied.
-
-2005-03-18 Gray Watson <>
-
- * Increased the basic block default to 32k.
-
- * Fixed some documentation.
-
- * Added better error code output in dmalloc_t.
-
- * Fixed the global Makefile to install libs as 755 not 644.
-
-2005-01-11 Gray Watson <>
-
- * Added some fixes for Compaq's C compiler, some include ordering
- fixes, and some C++ compiler defines. Thanks Burl.
-
-2004-12-03 Gray Watson <>
-
- * Improved dmalloc_t to better detect and test a small heap area.
-
-2004-10-19 Gray Watson <>
-
- * Releasing dmalloc version 5.4.2.
-
- * Refined the definition of the 'alloc-blank' and 'free-blank'
- tags. The 'alloc-blank' token clear various parts of the
- allocation block when it is allocated. The 'free-blank' token
- clears a pointer when it is freed.
-
- * Also, the library was clearing the user spaces of an allocated
- chunk with the alloc-blank character and the non-user spaces with
- the free-blank character. This seemed confusing and wrong so now
- all sections of an allocated chunk are cleared with the
- alloc-blank character.
-
- * Fixed a couple of longer standing stupid bugs via feedback from
- Philippe. Thanks dude.
-
-2004-10-12 Gray Watson <>
-
- * Releasing dmalloc version 5.4.1.
-
- * Found and fixed a stupid little test bug so re-released as 5.4.1.
-
- * Releasing dmalloc version 5.4.0.
-
- * Added return.h support for ARM processors from Silvester Erdeg.
-
- * Improved the manual a bit.
-
-2004-09-13 Gray Watson <>
-
- * Made allocating zero size chunks the default.
-
-2004-08-13 Gray Watson <>
-
- * Fixed some missing ; and a int/unsigned-int bug from feedback
- from Joe Buehler.
-
- * Added return.h support for AIX 4.3 RS/6000 from Joe Buehler.
-
- * Added backwards compatibility (ugh) to %d for logfile name.
-
-2004-07-10 Gray Watson <>
-
- * Starting release of 5.4.0 with beta.
-
-2004-07-09 Gray Watson <>
-
- * Removed force-linear token because made invalid with mmap
- addition.
-
- * Removed the growing up testing and other restrictions for the
- heap because mmap made it invalid. Drastically reduced the
- various up and down macros and associated testing.
-
- * Added mmap usage inside of the library. Should it be the
- default?
-
-2004-07-08 Gray Watson <>
-
- * Removed auto-seeding of internal random with variable seed.
- This was creating random addresses for programs making it hard to
- debug.
-
-2004-07-01 Gray Watson <>
-
- * Added bigger and better debugging server section to the manual.
-
- * Added header/footer to online manual.
-
-2004-06-29 Gray Watson <>
-
- * Really improved the logging of error information about pointers.
- Better formats, added prev/next for fence post errors, etc..
-
-2004-06-07 Gray Watson <>
-
- * Added return.h support for ia64 machine type from Didier Remy.
-
-2004-04-09 Gray Watson <>
-
- * NOTE: next release I should increase the maximum source file
- length from 10k to 30k or something.
-
- * Fixed some typos in the docs and created a new gdb translate
- return-address section. Thanks Luk.
-
-2004-02-18 Gray Watson <>
-
- * Fixed info install with feedback from Matt Fuller. Thanks.
-
-2004-01-31 Gray Watson <>
-
- * Added compat and arg_checking of atoi, atol, and memmove.
- Thanks to Guy (guyresh) for pointing out the omissions.
-
- * Added arg checking to internal strdup functions.
-
- * Moved argv.c code to use loc_snprintf.
-
-2004-01-28 Gray Watson <>
-
- * Releasing dmalloc version 5.3.0.
-
- * Fixed a bad bug where calls to _dmalloc_chunk_pnt_check from the
- arg_check.c functions were not locking. Ugh. Thanks much to
- Guy (guyresh).
-
- * Added dmalloc_verify_pnt function for proper external pointer
- checking.
-
-2004-01-14 Gray Watson <>
-
- * Added a dmalloc_memory_allocated function to assist with the
- checking of the memory size start feature.
-
- * Added automatic checking of the start at file:line, iteration,
- and memory size features.
-
- * Added a --start-size argument to dmalloc to start the library
- checking the heap after we allocate a certain size of memory.
- Thanks to andyc_2k.
-
- * Added some more documentation about destructors.
-
- * Added a check-shutdown token and support to check the pointers
- heap when we shutdown the library. Thanks to Charles for the
- idea.
-
-2003-11-23 Gray Watson <>
-
- * Added dmalloc_count_changed function plus tests. Thanks to
- Brian O'Kelley.
-
-2003-11-20 Gray Watson <>
-
- * Added some more error code documentation.
-
- * Added ability to disable the LARGEST_ALLOCATION setting by
- defining it to be 0.
-
-2003-11-18 Gray Watson <>
-
- * Released dmalloc version 5.2.4.
-
- * Fixed bug with check-fence and check-funcs interaction. Thanks
- to John Hetherington.
-
-2003-11-17 Gray Watson <>
-
- * Added support for rc shell. Thanks to Michael Haardt.
-
- * Fixed a logfile NULL pointer printf. Thanks to John
- Hetherington.
-
-2003-10-17 Gray Watson <>
-
- * Fleshed out the error code documentation.
-
-2003-10-06 Gray Watson <>
-
- * Fixed Makefile.in to properly refer to the documents directory.
- Whoops. Thanks to Mike Castle.
-
-2003-10-04 Gray Watson <>
-
- * Improved the docs about alias creation and usage.
-
-2003-10-01 Gray Watson <>
-
- * Added testing for destructors in configure.
-
-2003-09-29 Gray Watson <>
-
- * Releasing dmalloc version 5.2.3.
-
-2003-09-12 Gray Watson <>
-
- * Added new GetEnvironmentVariableA Cygwin call. Thanks to Rolf
- Banting.
-
-2003-09-10 Gray Watson <>
-
- * Added quick checks for the constructor attribute.
-
-2003-09-09 Gray Watson <>
-
- * Removed find_slot function in chunk.c since it was only used
- once.
-
-2003-09-08 Gray Watson <>
-
- * Changed the configure script to define the HAVE_... include
- defines to 0 or 1. Thanks to Brian Schreder.
-
- * Removed usage of environ (duh) from dmalloc_argv.c. Thanks to
- Brian Schreder.
-
- * Added better dmalloc.h processing.
-
-2003-09-08 Gray Watson <>
-
- * Releasing dmalloc version 5.2.2.
-
- * Added a Cygwin section to the manual.
-
- * Added GETENV_SAFE testing for Cygwin environments.
-
- * Added a new ERROR_NOT_START_BLOCK (30) errno for addresses which
- are within an allocation but not pointing to the start of the
- block.
-
- * Worked a bit more on the function pnt checking code after some
- more feedback from Richard Colley.
-
-2003-09-06 Gray Watson <>
-
- * Improved the pnt checking code to properly check free space
- below and above an allocation. Added regression tests for this.
-
-2003-09-05 Gray Watson <>
-
- * Fixed possible lock leak in the shutdown code. Thanks to TJ
- Saunders.
-
- * Fixed bug in function pnt checking code. Not sure when this
- broke. Thanks to Philippe Roger.
-
-2003-08-04 Gray Watson <>
-
- * Removed references to dmalloc leap.
-
-2003-07-23 Gray Watson <>
-
- * Changed the installing of libraries to install-data.
-
-2003-07-08 Gray Watson <>
-
- * Releasing version 5.2.1.
-
-2003-06-20 Gray Watson <>
-
- * Fixed problems with macro arguments not in () thanks to Paul
- Hurtley.
-
-2003-06-18 Gray Watson <>
-
- * Fixed a problem with strdup not returning char *. Thanks to Dan
- Nelson, Juhani Rautiainen, and Paul Hurtley.
-
-2003-06-10 Gray Watson <>
-
- * Releasing version 5.2.0.
-
- * Renamed the "max memory space wasted" to "max unused memory
- space" to indicate that it is not the users fault.
-
- * Improved the admin and extern block accounting.
-
- * Added PDF doc files to the installation.
-
- * Fixed a problem with the global Makefile and dmalloc_t. Thanks
- to Bert Deknuydt.
-
- * Added new logfile expansion of %u as getuid() output.
-
-2003-06-09 Gray Watson <>
-
- * Added detection of gethostname() function for %h logpath
- handling.
-
- * Added new logfile process with %h hostname, %t time, %p
- process-id, and %i for thread-id.
-
- * Removed the old logfile % processing. %d, %l, or %u no longer
- expands to the pid.
-
- * Added LOG_PID to drop the pid on each line of the logfile.
-
- * Added LOG_REOPEN to reopen the logfile when the pid of the
- process changes as with a fork. Thanks to James Hawtin.
-
- * Renamed the LOG_ITERATION_COUNT to LOG_ITERATION in settings.dist.
-
- * Renamed the STORE_SEEN_COUNT to be LOG_PNT_SEEN_COUNT.
-
- * Renamed the STORE_ITERATION_COUNT to be LOG_PNT_ITERATION.
-
- * Renamed the STORE_TIME to be LOG_PNT_TIME.
-
- * Renamed the STORE_TIMEVAL to be LOG_PNT_TIMEVAL.
-
- * Renamed the LOG_THREAD_ID to be LOG_PNT_THREAD_ID.
-
- * Improved the log_stats and log_changed output.
-
-2003-06-08 Gray Watson <>
-
- * Releasing version 5.1.0.
-
- * Fixed the FREED_POINTER_DELAY functionality.
-
- * Removed PROTECT_BLOCKS from settings.dist because was unused.
-
- * Added the tsecs perl script to convert epoch seconds time to
- ctime output.
-
- * Removed the check-lists debug token which was not being used
- with the new heap organizations.
-
- * Fixed the never-reuse functionality and added checks to
- dmalloc_t for it.
-
- * Added checks to dmalloc_t for the realloc-copy functionality.
-
- * Fixed a problem where a call to dmalloc_log_changed would wipe
- out allocate table information. Improved other table functions.
-
- * Improved the stats output a bit.
-
- * Added additional checks to dmalloc_t for wierd realloc and free
- problems.
-
-2003-06-06 Gray Watson <>
-
- * Expanded the arguments to dmalloc_examine to return more
- information about the pointer. This was explicitly needed to
- better test the library's setting of the values.
-
- * Found and fixed a problem where the last-used mark was not being
- set properly. Added checks to dmalloc_t for this.
-
- * Found and fixed a bad problem where the leaked memory was not
- being reported correctly. Very bad. Added checks in dmalloc_t
- for this.
-
-2003-06-04 Gray Watson <>
-
- * Releasing dmalloc version 5.0.2.
-
- * Fixed some problems and improved the code in dmalloc_t.
-
- * Integrated an internal random number generator since random()
- often calls malloc. Ugh.
-
-2003-05-22 Gray Watson <>
-
- * Removed protection filler to not confuse stuff.
-
-2003-05-21 Gray Watson <>
-
- * Improved some of the configure script internals.
-
- * Added support for a.exe and other cc output forms for Windoze.
-
-2003-05-20 Gray Watson <>
-
- * Releasing dmalloc version 5.0.1.
-
- * Updated configure.ac script.
-
- * New texinfo.tex macros.
-
-2003-05-19 Gray Watson <>
-
- * Added dmalloc_page_size() function.
-
- * Improved the auto-testing in dmalloc_t.
-
- * Found a [bad] problem with putting pointers back on the free
- list.
-
- * Added some checking of pointers on the free list.
-
- * Removed DEBUG_NOT_REMOVABLE and DEBUG_NOT_ADDABLE flags.
-
- * Added the per-pointer checking for cleared free memory.
-
- * Compressed the per-pointer admin structure by 8 bytes.
-
- * Cleaned up the production of dmalloc.h.3 from fillproto file.
-
-2003-05-16 Gray Watson <>
-
- * Releasing dmalloc version 5.0.0.
-
-2003-05-14 Gray Watson <>
-
- * Removed debug_val.h and error_str.h.
-
- * Lots of bugs fixed.
-
- * Removed a number of old error codes.
-
-2003-05-13 Gray Watson <>
-
- * Deprecated log-blocks and heap-check-map debug tokens.
-
- * Removed dmalloc_lp.[ch] stuff.
-
- * Added -M --memory-limit argument to dmalloc and ability to limit
- the library from allocating more than a certain number of bytes.
-
- * Getting ready for a huge checkin after a good bunch of work.
-
-2002-06-06 Gray Watson <>
-
- * Added a currently in use stats to log-stats. Thanks Bernard.
-
-2002-02-27 Gray Watson <>
-
- * Fixed some literal ranlib entries in the Makefile.in thanks to
- Ralf Fassel.
-
-2002-02-24 Gray Watson <>
-
- * Removed the USE_DMALLOC_LEAP functionality. This was causing
- pains internally and I needed to simplify some of the sections. I
- apologize for those folks who used this a lot.
-
-2002-02-14 Gray Watson <>
-
- * Added a function to close and re-open the dmalloc logfile when
- you process a new set of environmental flags.
-
- * Added a section to the docs about debugging daemon and CGI
- processes.
-
-2002-01-28 Gray Watson <>
-
- * Made some cosmetic improvements to the configure.in script.
-
-2001-11-30 Gray Watson <>
-
- * Made free(0L) not an error by default. I've been swayed by
- public pressure.
-
- * Removed short token support.
-
- * Did some more work on testing and chunk.c changes.
-
-2001-07-18 Gray Watson <>
-
- * Added better autoconf checking of thread libraries to include
- FreeBSD's non-portable libc_r. Grrr. Thanks to Steve Roberts.
-
-2001-07-12 Gray Watson <>
-
- * Added dmalloc_debug_setup function with which you can set the
- options with a function and not just the environmental variable.
-
- * Finally got the main line compiling again. Ugh. Chunk code
- looks a lot better however.
-
- * Before this time I've changed significantly the way the chunk
- routines account for pointers. Now every pointer has a flags
- field which says whether fence post checking should be applied to
- it.
-
-2001-05-23 Gray Watson <>
-
- * Renamed _dmalloc_logpath to dmalloc_logpath to match the
- documentation and dmalloc.h. Thanks Christoph.
-
-2001-05-21 Gray Watson <>
-
- * Solved problem with dmalloc_t and no sbrk.
-
- * Added INTERNAL_MEMORY_SPACE setting to the settings.dist file to
- help people with no sbrk function.
-
-2001-03-29 Gray Watson <>
-
- * Fixed some additional problems with start-file, start-count, and
- interval.
-
-2001-03-28 Gray Watson <>
-
- * Added the 'How It Works' section to the manual.
-
- * Removed necessity of strcat.
-
- * Removed use of strcpy internally.
-
- * Fixed problem with use of start-count and start-file not
- disabling the check-heap flag.
-
-Mon Feb 26 12:17:25 2001 Gray Watson <>
-
- * Releasing dmalloc version 4.8.2.
-
- * Installed new configure script to remove C++ requirement.
-
-Sun Feb 25 18:58:37 2001 Gray Watson <>
-
- * Making major changes to a number of routines.
-
-Thu Feb 22 19:24:38 2001 Gray Watson <>
-
- * Added more information to heap-check error messages on freed
- memory overwritten. This is now possible since I unrolled the
- unions from chunk_loc.h. Thanks to Robert Nielsen for pointing
- out this oversite.
-
-Wed Feb 21 20:16:32 2001 Gray Watson <>
-
- * Added strings to identify if the library was compiled with
- LOCK_THREADS enabled.
-
-Thu Nov 30 19:01:10 2000 Gray Watson <>
-
- * Added heap checking when we shutdown if check-blank is enabled.
- This will verify that all of the freed memory was not overwritten.
-
-Mon Nov 27 19:01:10 2000 Gray Watson <>
-
- * Added a separate ALLOC_BLANK_CHAR and FREE_BLANK_CHAR to the
- settings.dist file. Now the default 0xc5 character has been
- replaced with 0xda for dmalloc-allocated memory and 0xdf for
- dmalloc-freed memory.
-
-Tue Nov 14 15:09:02 2000 Gray Watson <>
-
- * Releasing dmalloc version 4.8.1.
-
- * Added --enable-shlib to configure which enables the building of
- shared libraries.
-
- * Added autoconf handling of the shlibdir for installing of shared
- libraries.
-
-Mon Nov 13 10:47:21 2000 Gray Watson <>
-
- * Added improvements to the shared library creation in the Makefile.
-
- * Fixed the #ident "..."; semi-colon problem. Thanks to Jonathan.
-
-Fri Nov 10 10:27:23 2000 Gray Watson <>
-
- * Releasing dmalloc version 4.8.0.
-
-Thu Nov 9 19:58:56 2000 Gray Watson <>
-
- * Added OpenBSD port information. Hopefully this will be close to
- Free/Net/... BSD as well.
-
-Tue Nov 7 11:39:26 2000 Gray Watson <>
-
- * Renamed malloc.h to malloc_funcs.h to avoid system conflicts.
-
- * Made log-unknown the default and depreciated the token. Added a
- log-known token to _only_ report on known (file/line) memory.
-
- * Removed INSTALL.1 file because it was basically empty.
-
- * Added Troubleshooting section to the INSTALL manual.
-
-Tue Oct 10 19:03:14 2000 Gray Watson <>
-
- * Did a pre-release of 4.7.2 with the autoconfigure handling for
- VA Linux release. Thanks guys.
-
- * Reorged dmalloc.h.3. Ugh.
-
- * malloc_verify and dmalloc_verify now return
- [D]MALLOC_VERIFY_[NO]ERROR.
-
- * Just about every function now initializes the library. This was
- not the case before with some information routines.
-
- * dmalloc_debug now takes an unsigned-int flags and returns the
- old debug flag value. debug_current now returns an unsigned int
- flag value.
-
- * Added autoconfig handling of #ident. I really hate Unix
- sometimes for its blatant disregard for anything approaching a
- standard. Idiots.
-
-Wed Sep 13 14:24:46 2000 Gray Watson <>
-
- * Fixed a bug in chunk.c found by Ian Badcoe.
-
- * Improved the displaying of tokens my dmalloc utility.
-
-Tue Jul 25 11:57:49 2000 Gray Watson <>
-
- * Releasing dmalloc version 4.7.1.
-
- * Fixed problem with check-blank being specified but not
- free-blank or alloc-blank. I thought I fixed this before.
-
-Mon Jul 24 15:30:04 2000 Gray Watson <>
-
- * Releasing dmalloc version 4.7.0.
-
- * Added support for --disable-cxx and --enable-threads for turning
- on or off C++ and thread support.
-
-Fri Jul 21 17:00:25 2000 Gray Watson <>
-
- * Added autoconfiguration code to see if the return macros work
- for an architecture.
-
- * Renamed USE_RET_ADDRESS to USE_RETURN_MACROS in return.h.
-
- * Added threaded C++ library support to Makefile.
-
-Tue Jun 20 18:30:55 2000 Gray Watson <>
-
- * Fixed problems with -p and -m not setting the debug flags.
-
- * Added 'force-linear' token and depreciated the 'allow-nonlinear'
- token. Non-linear heaps really are the default these days (on AIX
- for example). Now, you can enable the force-linear if you want to
- ensure a linear heap.
-
-Wed May 17 11:29:55 2000 Gray Watson <>
-
- * Releasing dmalloc version 4.6.0.
-
- * Fixed an incompatibility with the dmalloc_t -r, sbrk, and the
- DEBUG_ALLOW_NONLINEAR flag.
-
- * Improved the implementation of the NEVER_REUSE flag. Found
- problems with the dmalloc_t -r random debug flag.
-
- * Added BUILD.txt instructions to the repository.
-
-Tue May 16 14:34:14 2000 Gray Watson <>
-
- * Added BLOCK_ROUND macros to heap.h.
-
- * Made initial attempt to protect blocks in chunk.c. Got pretty
- hairy way too fast so backed it out.
-
- * Added SET_POINTER macro and cleaned some code.
-
- * Completely reworked the internal initialization values for the
- environmental variables to fix problems pointed out by Carlton
- Teel. I was doing a (unsigned int)-1. Yuck.
-
- * Fixed a bug found by Mcvey where the 1st dblock allocation in a
- block would not have been found in non-freed memory lists. Yuck.
-
-Mon May 15 11:46:21 2000 Gray Watson <>
-
- * Moved to 'make cxx' and 'make installcxx' for building and
- installing the C++ version of the library.
-
- * Added autoconfiguration of the presence of a C++ compiler so it
- will attempt to build and install libdmallocxx.a if it can.
-
- * Removed DMALLOC_VERIFY_[NO]ERROR and replaced with
- DMALLOC_[NO]ERROR.
-
- * dmalloc_examine now returns DMALLOC_[NO]ERROR not [NO]ERROR.
-
- * Added initial mprotect configuration and stub function to the
- library.
-
-Mon May 8 08:19:45 2000 Gray Watson <>
-
- * Renamed dmalloc.cc to dmallocc.cc and added the building of
- libdmalloc++.a per Dimitri's comments.
-
- * Renamed rpm.spec to dmalloc.rpm per Dimitri's comments.
-
-Mon May 1 20:34:18 2000 Gray Watson <>
-
- * Fixed some more function headers.
-
-Tue Apr 18 15:41:30 2000 Gray Watson <>
-
- * Releasing dmalloc version 4.5.2.
-
- * Added DGUX notes from Takis Psarogiannakopoulos.
-
- * Fixed bug in chunk.c pointer checking. Thanks Ezra.
-
-Mon Apr 17 21:55:39 2000 Gray Watson <>
-
- * Cleaned up some of the compat.[ch] headers to better match
- reality.
-
-Thu Mar 30 10:05:01 2000 Gray Watson <>
-
- * Reorganized the dmalloc.texi documentation and moved to using
- makeinfo program.
-
- * Releasing dmalloc version 4.5.1.
-
- * Fixed a problem with compilation of dmalloc_lp.c. Thanks Chip.
-
-Wed Mar 29 17:40:43 2000 Gray Watson <>
-
- * Releasing dmalloc version 4.5.0.
-
-Fri Mar 24 16:21:39 2000 Gray Watson <>
-
- * Releasing dmalloc version 4.5.0 beta 1.
-
- * Added new dmalloc_mark() and dmalloc_log_changed() functions.
-
- * Added new BBLOCK_FREE_START and redid some of the block flag
- checking.
-
-Tue Mar 21 13:15:46 2000 Gray Watson <>
-
- * Releasing dmalloc version 4.4.0 beta 2.
-
- * Removed the stupid old Deansify.pl script.
-
- * Added rpm.spec file to the distribution.
-
- * Fixed problem with chunk checking of dblock structures.
-
-Mon Mar 20 18:19:06 2000 Gray Watson <>
-
- * Releasing dmalloc version 4.4.0 beta 1.
-
- * Removed usage of PTHREAD_MUTEX_INITIALIZER which was delaying
- the mutex-init call.
-
- * Added code to fix some recursive problems with open and atexit.
-
- * Basically encorporated Randell's changes [finally]. Thanks for
- your patience dude.
-
- * Removed the stupid chunk.c unions. Why did I ever do that? It
- made debugging and absolute bear.
-
- * www.dmalloc.com -> dmalloc.com.
-
-Mon Mar 6 12:05:01 2000 Gray Watson <>
-
- * Added better help messages to dmalloc.
-
-Thu Feb 17 09:04:19 2000 Gray Watson <>
-
- * Fixed Makefile.dep creation with _th.o special objects.
-
- * Fixed the outputting of gratuitous colons.
-
- * Added @uref texinfo tags and new texinfo.tex.
-
-Mon Nov 8 15:39:44 1999 Gray Watson <>
-
- * Releasing dmalloc version 4.3.0.
-
- * Fixed some problems with char * instead of void *.
-
-Mon Oct 18 12:09:30 1999 Gray Watson <>
-
- * Added info about log-unknown to the Getting Started section and
- more info about ident.
-
-Fri Oct 15 18:13:39 1999 Gray Watson <>
-
- * Added power pc return.h macros from Shawn.
-
-Thu Oct 14 10:08:58 1999 Gray Watson <>
-
- * Releasing dmalloc version 4.3.0 beta 3.
-
- * Darn. Missed malloc.h in the port file.
-
-Wed Oct 13 18:38:26 1999 Gray Watson <>
-
- * Releasing dmalloc version 4.3.0 beta 2.
-
- * Changed #ifdef USE_DMALLOC_LEAP -> #if USE_DMALLOC_LEAP. Doh.
-
-Mon Oct 11 12:37:13 1999 Gray Watson <>
-
- * Releasing dmalloc version 4.3.0 beta 1.
-
- * Fixed problems on Linux with the strdup macro.
-
-Wed Aug 25 08:33:39 1999 Gray Watson <>
-
- * Added copyright and url info for ident and what.
-
- * Added support for PTHREAD_MUTEX_INITIALIZER.
-
-Tue Jul 20 12:47:14 1999 Gray Watson <>
-
- * Added USE_DMALLOC_LEAP define in the settings.dist file with
- which you can enable the leap functionality which previously was
- the default.
-
-Thu Apr 15 10:21:55 1999 Gray Watson <>
-
- * Dmalloc now looks in the current directory for .dmallocrc before
- checking your $HOME directory.
-
- * Rewrote a significant piece of the dmalloc utility. Much better
- code with regards to processing configuration files.
-
-Fri Mar 26 17:57:54 1999 Gray Watson <>
-
- * Increased the filename size from 40 to 100 characters.
-
-Thu Mar 11 17:31:00 1999 Gray Watson <>
-
- * Releasing dmalloc version 4.2.0.
-
- * Completely reworked the qsort code.
-
-Wed Mar 10 11:18:13 1999 Gray Watson <>
-
- * Improved the autoconfig of abort and qsort safety.
-
- * Fixed hash problem on 64-bit alphas.
-
- * Fixed a number of missing prototypes and include problems.
-
- * Added QSORT_OKAY switch to configure for linux.
-
- * Fixed STDC ifdefs for C++. Thanks Eric.
-
-Tue Mar 9 14:26:11 1999 Gray Watson <>
-
- * Fixed some problems with threading and the LOG_THREAD_ID ifdef.
-
- * Improved the memory table output. Renamed the table files to be
- dmalloc_tab.[ch] to removed clash with libtable.a.
-
-Mon Mar 8 10:50:12 1999 Gray Watson <>
-
- * Releasing dmalloc version 4.2.0-beta.
-
- * Fixed long standing problem with the NEVER-REUSE token.
-
- * Added memory tracking function so the user can register a
- callback function to be run whenever a memory transaction occurs.
-
-Sun Mar 7 17:58:07 1999 Gray Watson <>
-
- * Added DUMP_UNFREED_SUMMARY_ONLY variable to the settings.dist
- file.
-
- * Added MEMORY_TABLE_SIZE and MEMORY_TABLE_LOG variables to the
- settings.dist file.
-
- * Fixed problem with valloc exposed by moving to random() from
- rand(). Grrr.
-
- * Added memory table code for grouping of allocated and non-freed
- memory. Looks great!
-
-Thu Mar 4 19:28:45 1999 Gray Watson <>
-
- * Removed a number of static variables for string buffers. Yuck.
-
- * Removed PERMISSION file and all references to commercial-ness.
-
- * Moved to internal sprintf code for snprintf, etc..
-
- * Added dmalloc_message to the exported list of functions. Had to
- add stdarg.h handling to dmalloc.h.
-
-Fri Dec 11 00:04:04 1998 Gray Watson <>
-
- * Releasing dmalloc version 4.1.2.
-
- * Fixed really bad bug which basically killed pthread support.
-
-Mon Nov 16 11:51:39 1998 Gray Watson <>
-
- * Releasing dmalloc version 4.1.1.
-
- * Fixed signal autoconfiguration. Bad dog.
-
- * Releasing dmalloc version 4.1.0.
-
-Thu Nov 12 10:08:58 1998 Gray Watson <>
-
- * Added HTML versions of the manuals to the releases.
-
- * Added FREED_POINTER_DELAY in settings.h which will hold a
- pointer from being reused for a certain amount of time.
-
- * Renamed allow-zero token to be allow-free-null.
-
- * Added LOG_TIME_NUMBER and LOG_CTIME_STRING to the settings.dist
- file for logging times in the logfile.
-
- * Disabled the log-thread-id macro. Use the LOG_THREAD_ID
- define in settings.h to control.
-
- * Disabled the log-stamp macro. Use the STORE_TIME define in
- settings.h to control.
-
-Tue Nov 10 12:43:00 1998 Gray Watson <>
-
- * Added Jens' cool gdb script and -g (--gdb) flag to dmalloc
- utility.
-
- * Added missing delete[] function to the C++ code. Thanks Jens.
-
-Mon Nov 9 11:48:29 1998 Gray Watson <>
-
- * Releasing dmalloc version 4.1.0 beta.
-
- * Moved some settings from chunk_loc.h into settings.dist.
-
- * Improved the handling of free(NULL) and malloc(0) settings.
-
- * Added initial memalign support with a error message if the
- alignment is less than block size which is not currently
- supported.
-
- * Renamed print-error token to print-messages.
-
-Wed Oct 28 10:17:13 1998 Gray Watson <>
-
- * Increased the default max memory size from 16mb to 64mb.
-
-Thu Oct 15 11:06:41 1998 Gray Watson <>
-
- * Released dmalloc version 4.0.3.
-
- * Moved to #ident for rcs-ids in GCC.
-
- * Found and fixed a bug when reallocing a previous valloced
- section. Not a good idea anyway since it will not preserve the
- block-aligned status (should it).
-
- * Released dmalloc version 4.0.2.
-
- * Fixed a problem in return.h and DMALLOC_UNKNOWN_FILE. Ugh.
- Thanks much to Mike Sacauskis for pointing this out.
-
-Thu Oct 8 11:07:25 1998 Gray Watson <>
-
- * Released dmalloc version 4.0.1.
-
- * Added startup messages acknowledging the thread status. Added
- error.o to the thread object list.
-
-Wed Oct 7 14:52:14 1998 Gray Watson <>
-
- * Fixed problem with thread compilation and chunk.c. Thanks much
- to Didier Verna for pointing out this problem.
-
- * Fixed possible race condition with synchronizing with external
- sbrk calls.
-
-Mon Oct 5 22:56:46 1998 Gray Watson <>
-
- * Migrated in new argv code.
-
-Sun Oct 4 22:56:46 1998 Gray Watson <>
-
- * Released dmalloc version 4.0.0.
-
- * Updated the manual a bit.
-
- * Made a small change to the solaris return.h code. Thanks
- Alexandre.
-
-Tue Sep 29 09:26:50 1998 Gray Watson <>
-
- * Releasing dmalloc version 4.0.0 beta2.
-
- * Aligned valloc to block alignment as it should have been with
- fence post checking installed.
-
- * Renamed some internal variables and macros better names.
-
-Mon Sep 28 17:55:24 1998 Gray Watson <>
-
- * Added better auto-configuration of valloc.
-
- * Improved the log-trans output messages.
-
- * Added the printf attribute to error.c's dmalloc_message. Fixed
- a number of casting problems.
-
-Fri Sep 18 13:37:23 1998 Gray Watson <>
-
- * Releasing dmalloc version 4.0.0 beta.
-
- * Added recalloc support into the library. Thanks to Nick
- Albright for suggesting it.
-
- * Cleaned up the calloc special handling and accounting.
- Simplified the local malloc functions in malloc.c.
-
- * Added valloc support to the library after it was determined that
- OSF thread libraries still use the function. memalign will be
- much harder to add.
-
-Thu Sep 17 08:42:14 1998 Gray Watson <>
-
- * Improved the pthread autoconfiguration and the code. Removed
- the gross macro code sections.
-
- * Lots of small code improvements.
-
- * Got rid of the _dmalloc_file and _dmalloc_line stuff which was
- _very_ unportable. Thanks Marty for pointed this out. Reduced
- the race conditions there and improved the handling of default
- values.
-
- * Added FTX return.h information. Thanks to Wim van Duuren.
-
-Wed Sep 16 16:28:49 1998 Gray Watson <>
-
- * Added direct strdup support to the library with the assocated
- leap functions.
-
-Tue Feb 10 21:12:40 1998 Gray Watson <>
-
- * Releasing version 3.3.1 to get rid of the -beta.
-
-Sun Dec 21 19:32:02 1997 Gray Watson <>
-
- * Shifted some flags to ints instead of longs.
-
- * Improved error string handling.
-
-Wed Dec 17 08:15:04 1997 Gray Watson <>
-
- * Removed allocation macros from the docs and the header. I was
- not using them anymore and I would think they would be confusing.
-
- * Added realloc(pnt, 0) works like free(pnt). Thanks Stefan!
-
-Mon Dec 8 04:34:14 1997 Gray Watson <>
-
- * Reworked the log_error_info routine's dumping of the fence post
- areas to properly dumps upper fence post bytes.
-
-Mon Dec 8 02:34:14 1997 Gray Watson <>
-
- * Releasing dmalloc version 3.3.0.
-
- * Fixed problems with pthread locking and various conditions.
- Added a warning if lock-on is set without allow-nonlinear.
-
-Sun Dec 7 21:44:17 1997 Gray Watson <>
-
- * Added THREAD_LOCK_INIT_VAL autoconfigure.
-
-Fri Dec 5 12:09:26 1997 Gray Watson <>
-
- * Performed some long overdue major code cleaning. Added new
- Lycos {}, int _b for bools, and other stuff.
-
-Wed Nov 5 11:25:09 1997 Gray Watson <>
-
- * Renamed argv.[ch] to be dmalloc_argv.[ch] to not clash with argv
- files.
-
-Sun Jul 20 00:40:53 1997 Gray Watson <>
-
- * Added return address handling for SGI. Thanks James.
-
-Mon Jul 7 03:12:28 1997 Gray Watson <>
-
- * Added better C++ overload functions. From whom off the Net did
- I get this from?
-
- * Added test for DMALLOC_SIZE unsigned-ness.
-
- * Added a FINI_DMALLOC setting to the settings.dist file to
- support the OSF __fini_ stuff.
-
- * Added pthread lock_on -o environmental settings. You will need
- to have LOCK_THREADS set to 1 in the settings.h file.
-
-Sat Mar 22 12:28:45 1997 Gray Watson <>
-
- * Added return-address tracking for gcc on alphas. Thanks
- Alexandre.
-
-Fri Mar 21 09:29:46 1997 Gray Watson <>
-
- * Released version 3.2.1.
-
- * Added to dmalloc the ability to recognize its internal tags.
-
- * Added better documentation of auto-dmalloc_shutdown.
-
- * Cleaned up some configuration stuff.
-
- * Fixed a number of signed/unsigned problems in chunk.
-
-Thu Mar 20 15:45:59 1997 Gray Watson <>
-
- * Removed autoconf rule in Makefile.all.
-
- * Cleaned up pthreads locking delay code.
-
-Fri Jan 17 14:25:12 1997 Gray Watson <>
-
- * Releasing version 3.2.0.
-
- * Added catch-signals debug token (about time, huh Marty?)
-
- * Revamped autoconf scripts to be more standard.
-
- * New signal handling.
-
-Thu Jan 16 15:22:06 1997 Gray Watson <>
-
- * Moved to memcpy and memcmp from the b routines.
-
- * Fixed the locking for pthread programs. Dumb errors.
-
- * Ran new fillproto on h-files. IMPORT -> extern.
-
-Thu Dec 28 20:39:00 1995 Gray Watson <>
-
- * Releasing version 3.1.3.
-
- * Added new argv versions to fix problems.
-
- * Don't allow silent dumps of test program.
-
-Tue Dec 19 19:11:19 1995 Gray Watson <>
-
- * Added registration subdirectory.
-
-Mon Nov 20 22:14:14 1995 Gray Watson <>
-
- * Removed some unresolved references in argv.c: strcasecmp, strdup.
-
- * Fixed some porting problems to Unixware. Unsigned chars.
-
-Mon Oct 21 00:23:51 1995 Gray Watson <>
-
- * Fixed bug where I called display_pnt instead of display_where.
-
-Tue Oct 10 18:43:09 1995 Gray Watson <>
-
- * Releasing version 3.1.2.
-
-Mon Sep 18 10:14:36 1995 Gray Watson <>
-
- * Finally tested fore myself the configure --srcdir option. Found
- lots of places with missing $(srcdir) entries.
-
-Wed Sep 6 13:33:59 1995 Gray Watson <>
-
- * Released version 3.1.2-gamma.
-
- * Added sbrk handling in the dmalloc_t test program.
-
- * Renumbered error values so inserting won't be a problem in the
- future. Added ERROR_EXTERNAL_HUGE.
-
- * Added new argv files.
-
- * Fixed up statistics to include external block handling.
-
- * Fixed up the external sbrk handling. I broke it with the 3.1.1
- version. This re-write is much cleaner. Made some changes to
- dblock admin handling and heap-check
-
- * Re-added THREAD_LOCK definitions to settings.dist. Where did
- they go?
-
-Tue Sep 5 12:38:48 1995 Gray Watson <>
-
- * Moved install.sh to install-sh and fixed some Makefile problems.
- Thanks Francois.
-
- * Simplified the heap code a lot. Fixed race conditions.
-
-Sun Sep 3 12:50:30 1995 Gray Watson <>
-
- * Releasing 3.1.2-beta.
-
- * Added configure handling of 32768 page sizes.
-
- * Removed stdlib inclusion in dmalloc.h.2 for size_t.
-
- * Added some undefs for malloc, etc. for Linux. Thanks Rick.
-
-Sat Sep 2 15:34:01 1995 Gray Watson <>
-
- * Releasing 3.1.2-alpha.
-
- * Added inital thread locking for debugging threaded programs.
-
- * New attempts to auto-configure DMALLOC_SIZE for size_t. I've
- tried this before. We'll have to see what it screws up.
-
- * Added settings.dist which is copied by configure. Thanks Marty.
-
-Fri Sep 1 15:53:50 1995 Gray Watson <>
-
- * Started better autoconfiguring of DMALLOC_SIZE variable.
-
-Wed Aug 30 14:05:39 1995 Gray Watson <>
-
- * Added dmalloc_aborting flag in case kill or abort recurses.
- Thanks Stephen.
-
-Tue Aug 29 17:43:54 1995 Gray Watson <>
-
- * Added new[] C++ function. Thanks Arno.
-
-Tue Aug 28 00:00:00 1995 Gray Watson <>
-
- * Changed DMALLOC_SIZE to 'unsigned long' instead of unsigned.
-
-Fri Aug 18 11:50:03 1995 Gray Watson <>
-
- * Releasing version 3.1.1.
-
- * Moved all non-linear heap checking to heap code and improved the
- code immensely (read it works now).
-
- * Fixed dumb bug in argv code.
-
- * Added handling of NONLINEAR heap by default.
-
-Mon Aug 14 10:57:26 1995 Gray Watson <>
-
- * Fixed up dmalloc_t to propogate errors better. Thanks Thorsten.
-
-Sun Aug 13 16:02:27 1995 Gray Watson <>
-
- * Renamed chunk_heap_check to chunk_check.
-
-Fri Jul 14 16:58:09 1995 Gray Watson <>
-
- * Releasing version 3.1.0. First commercial release.
-
- * Added academic references to permissions sections.
-
-Wed Jul 5 19:11:03 1995 Gray Watson <>
-
- * Released version 3.1.0-beta.
-
-Mon Jul 3 19:57:05 1995 Gray Watson <>
-
- * Encorporated new configed argv files from version 2.0.1.
-
-Wed Jun 28 19:48:47 1995 Gray Watson <>
-
- * Improved header file configurations immensely. Removed all
- casts and other dumb coding assumptions for 64 bit machines.
-
- * Fixed dumb sparc preprocesser error.
-
-Tue Jun 20 13:56:02 1995 Gray Watson <>
-
- * Added commercial license restrictions to library.
-
-Mon Jun 19 22:06:12 1995 Gray Watson <>
-
- * Changed USE_ABORT to rely on ABORT_OKAY auto-configed setting.
-
- * Fixed problem with fence handling and 64 bit longs.
-
- * Added lots of comments about internal chunk structures.
-
-Tue Jun 13 17:34:02 1995 Gray Watson <>
-
- * pulled manual settings out of conf.h to settings.h.
-
-Tue May 31 10:30:59 1995 Gray Watson ()
-
- * Finished version 3.0.7. Released later.
-
-Tue May 30 10:30:59 1995 Gray Watson ()
-
- * Fixed problem with conf.h references before included.
-
- * Fixed problems with exit() calls in configure. Thanks Rik.
-
-Mon May 15 20:13:10 1995 Gray Watson ()
-
- * Added error-dump token for dumping-core and continuing on errors.
-
- * Added Web pointers to online documentation.
-
- * Added abort() auto-configuration for KILL_PROCESS.
-
- * Minor fixes. Added an arg to dmalloc_die to be silent.
-
-Fri May 12 16:33:44 1995 Gray Watson ()
-
- * Released version 3.0.6-beta.
-
- * Fixed problem with NEVER_REUSE and realloc same block-size.
-
- * Fixed up logging of time. Lots of ifdefs.
-
- * Added a pointer overhead structure.
-
-Fri May 5 11:39:39 1995 Gray Watson ()
-
- * Renamed a number of chunk fields to remove the use of count.
-
- * Logged starting/ending time in logfile.
-
- * Added thread-id tracking with conf.h option.
-
- * Added pointer-count tracking with conf.h option.
-
- * Added interation-count tracking with conf.h option.
-
- * Added global/relative time tracking with conf.h option.
-
-Fri Mar 31 16:51:52 1995 Gray Watson ()
-
- * Better tag output from dmalloc -t.
-
- * New version of argv files.
-
- * Fixed problem with dmalloc -c and start-count.
-
- * Added some messages about upcoming errors in dmalloc_t.
-
-Thu Mar 23 10:34:33 1995 Gray Watson ()
-
- * Improved the manual a bit. Phased in some alpha changes.
-
- * Added some Next notes to the contrib directory. Need more.
-
-Fri Mar 10 13:29:49 1995 Gray Watson ()
-
- * Added allow-zero token for not minding malloc(0) and free(0L).
-
- * Made all chunk.c global counters longs.
-
-Fri Mar 3 12:37:17 1995 Gray Watson ()
-
- * Integrated into new CVS hierarchy. New copyrights.
-
-Mon Jan 2 18:51:19 1995 Gray Watson ()
-
- * Released version 3.0.5.
-
- * Changed my mail address and ftp location.
-
-Fri Dec 16 15:07:29 1994 Gray Watson ()
-
- * Fixed some old references to malloc in docs. Thanks Dave.
-
-Thu Dec 15 10:25:59 1994 Gray Watson ()
-
- * Released version 3.0.4.
-
-Sat Nov 12 18:05:34 1994 Gray Watson ()
-
- * Removed message arg to env-get routine due to various probs.
-
- * New STDC definitions of DMALLOC_PNT and DMALLOC_FREE_RET.
-
- * Removed all STRDUP and BDUP macros. Was anyone using them?
-
-Wed Nov 9 15:43:45 1994 Gray Watson ()
-
- * Upgraded to autoconf 2.1. New configure script.
-
-Tue Nov 8 18:54:04 1994 Gray Watson ()
-
- * Added dying message when malloc_die is called. Thanks Marty.
-
- * Reworked the manual a ton. Looks much better. Added
- Quick-Start + Installation sections.
-
- * Lots of changes to notes files.
-
-Thu Nov 3 17:25:29 1994 Gray Watson ()
-
- * Released version 3.0.3.
-
- * Added dmalloc.cc C++ file to distribution.
-
- * Default is now to build/install a libdmalloclp.a library.
-
-Wed Oct 26 21:13:11 1994 Gray Watson ()
-
- * Removed the log-error tag. Pretty worthless. If you had
- logpath set then it should log errors.
-
-Tue Oct 18 19:54:21 1994 Gray Watson ()
-
- * Fixed problem with new args clearing all old ones.
-
-Sat Oct 15 13:55:16 1994 Gray Watson ()
-
- * Added dmalloc.h.2 creation to config.status file. Thanks Dave.
-
- * Added a startup message with the debug flags used to logfile.
-
-Fri Oct 14 18:40:59 1994 Gray Watson ()
-
- * Fixed dumb errors with FUNC_CHECK code. Thanks Dave.
-
-Thu Oct 13 21:25:52 1994 Gray Watson ()
-
- * Added default tags: default,low,medium,high,all to dmalloc.
-
- * Renamed check-free to check-blank but left free for compat.
-
- * Made a number of changes from Dave MacKenzie. Reworking the
- manual fixed the Makefile, RC file, argv, etc...
-
-Wed Oct 12 13:00:48 1994 Gray Watson ()
-
- * Added long/short options to dmalloc and env routines.
-
- * Changed some dmalloc options. -T -> -D, -L -> -t. Yeach!
-
- * Added better error logging in chunk.
-
-Tue Oct 4 13:39:40 1994 Gray Watson ()
-
- * Added DG/UX code to return.h and atexit code and notes to the
- distribution. Thanks Joerg.
-
-Mon Sep 26 11:59:56 1994 Gray Watson ()
-
- * Releasing version 3.0.2.
-
- * Fixed stupid strtok error in dmallocrc file processing.
-
-Mon Sep 26 11:20:17 1994 Gray Watson ()
-
- * Fixed problems with env code and that sprintf returning (char *)
- on some archs. DUMB!
-
-Wed Sep 21 11:45:19 1994 Gray Watson ()
-
- * Library now dumps the proper fence-bottom bytes on first pointer
- error.
-
- * Fixed 2 casting problems on OSF. Thanks Dave.
-
-Tue Sep 20 13:58:08 1994 Gray Watson ()
-
- * Releasing version 3.0.1.
-
- * Combined all env variables into DMALLOC_OPTIONS. Lots of
- changes to dmalloc program.
-
-Fri Sep 16 14:50:26 1994 Gray Watson ()
-
- * Added short token strings and values to -T very-verbose output.
-
- * Added -n flag to dmalloc program for printing/not-doing actions.
-
-Tue Sep 13 11:36:10 1994 Gray Watson ()
-
- * Added mkinstalldirs to distribution. Thanks Francois.
-
-Mon Sep 12 13:12:38 1994 Gray Watson ()
-
- * Fixed zsh and [t]csh alias messages in documentation.
-
- * Added install.sh to distribution. Thanks Francois.
-
-Mon Sep 12 10:07:29 1994 Gray Watson ()
-
- * Renamed _dmalloc_error to dmalloc_error since it is used
- externally so often. Sorry folks.
-
- * Removed time() and getpid() from compat functions. Moved
- HAVE_... tests into the code that used them. Duhhhh.
-
- * Changed DMALLOC_DEBUG_DISABLE flag to DMALLOC_DISABLE.
-
- * Fixed some include file auto-include messages. Thanks Francois.
-
-Thu Sep 8 10:07:56 1994 Gray Watson ()
-
- * Releasing version 3.0.0.
-
- * Fixed a problem with some list checking via user feedback.
-
-Fri Sep 2 17:34:02 1994 Gray Watson ()
-
- * Fixed possible recursion problem. Thanks Marty.
-
-Mon Aug 29 11:08:36 1994 Gray Watson ()
-
- * Tons of name changes going from malloc_dbg -> dmalloc. Lots of
- files, internal/external routines, variables, etc.
-
-Sat Aug 27 19:33:16 1994 Gray Watson ()
-
- * Releasing 2.2.1 so I make the name shifts.
-
- * Fixed problem with IMPORT in malloc_dbg.3 via user feedback.
-
-Mon Aug 8 22:43:44 1994 Gray Watson ()
-
- * Releasing version 2.2.0.
-
-Mon Aug 8 22:29:11 1994 Gray Watson ()
-
- * Added no-special test option to malloc_t.
-
- * Fixed problem with merging adjacent free blocks if last/first
- block being freed.
-
-Wed Aug 3 14:28:20 1994 Gray Watson ()
-
- * Fixed xmalloc,xrealloc,etc. override functions.
-
- * Added xstrdup to the x leap function list.
-
-Mon Aug 1 23:03:50 1994 Gray Watson ()
-
- * Added $verbose checks in configure. Thanks Francois.
-
- * Added 'err' label to error printing. Thanks Francois.
-
-Fri Jul 22 11:48:26 1994 Gray Watson ()
-
- * Added ability to combine adjacent free blocks into one.
-
-Thu Jul 21 14:44:25 1994 Gray Watson ()
-
- * 0 or negative MALLOC_INTERVAL values act as if no interval value.
-
- * Made a 'malloc_dbg -i 0' undefine MALLOC_INTERVAL.
-
- * Fixed calloc return-address problem. Thanks Gregory.
-
- * Added KILL_PROCESS macro to configuration scripts. Replaces
- ERROR_SIGNAL.
-
-Thu Jul 10 00:00:00 1994 Gray Watson ()
-
- * Marty Leisner compiles library on MS-DOG!
-
-Sun May 22 18:37:31 1994 Gray Watson ()
-
- * Fixed some problems with malloc_errno set after call to error.
-
-Wed May 11 12:02:31 1994 Gray Watson ()
-
- * Released version 2.1.0.
-
- * Fixed problem with never-reuse going on/off and check-lists.
-
- * Added -r (random-debug) option to malloc_t which causes it to
- constantly change the dmalloc flags while testing.
-
- * Fixed VERY nasty bug in realloc with alloc-blank and no
- realloc-copy token.
-
- * Fixed problem with ANSI-C configure on AIX systems.
-
-Fri Apr 8 13:51:39 1994 Gray Watson ()
-
- * Fixed some race conditions with sbrk failure.
-
-Thu Apr 7 17:13:31 1994 Gray Watson ()
-
- * Added some better checking for out-of-range arguments.
-
- * Changed heap-error to 0L from -1.
-
- * Added -p max-pointers argument to malloc_t.
-
-Wed Apr 6 23:02:07 1994 Gray Watson ()
-
- * Added 'log-nonfree-space' token for logging unfreed memory
- space.
-
-Wed Mar 30 01:03:56 1994 Gray Watson ()
-
- * Added iteration count label to all logfile output.
-
-Fri Mar 25 01:18:55 1994 Gray Watson ()
-
- * Fixed small recursive problem messing up malloc #2 info.
-
-Mon Mar 21 09:58:21 1994 Gray Watson ()
-
- * Added xmalloc,xrealloc,etc. override functions.
-
-Sun Mar 20 14:48:25 1994 Gray Watson ()
-
- * Added better mechanisms for const definition.
-
-Sun Mar 20 11:57:34 1994 Gray Watson ()
-
- * Renamed token 'log-perror' and 'print-perror' to '...-error'.
-
-Wed Mar 2 22:49:18 1994 Gray Watson ()
-
- * Fixed some spelling and other misc problems.
-
-Sun Feb 27 17:53:35 1994 Gray Watson ()
-
- * New argv files. Fixed Makefile.all.in problem.
-
- * Released version 2.0.1.
-
-Sun Feb 20 00:39:37 1994 Gray Watson ()
-
- * Cleaned up a number of configure/compat functions.
-
-Fri Feb 18 02:32:53 1994 Gray Watson ()
-
- * Fixed tons of __STDC__ defines. Finally I hope.
-
- * Added more commands to malloc_t to log information, etc.
-
- * Released version 2.0.0.
-
- * Last minute fixes from Sparc and MIPS boxes.
-
-Thu Feb 17 17:47:05 1994 Gray Watson ()
-
- * Lots of changes to add argv files in place of argv subdir.
-
- * added initial support for external block locating. this is
- going to be a toughy to solve. there is a catch-22 here.
-
-Sat Jan 22 01:34:55 1994 Gray Watson ()
-
- * moved BLOCK_SIZE into malloc_log because its used everywhere.
-
-Fri Jan 21 23:45:26 1994 Gray Watson ()
-
- * added missing checks for ADMIN_FREE in heap_check
-
-Wed Jan 19 20:43:05 1994 Gray Watson ()
-
- * Added a new texinfo.tex macro file.
-
- * Renamed CHECK_FREE to CHECK_BLANK internally.
-
- * Added 'allow-nonlinear' token to remove special checks.
-
-Mon Dec 20 14:14:08 1993 Gray Watson ()
-
- * Added a -m max-amount flag to malloc_t.
-
- * Renamed dbg_tokens.h -> debug_tok.h and dbg_values.h -> debug_val.h
-
-Mon Dec 20 02:24:02 1993 Gray Watson ()
-
- * Added -V option to malloc_dbg and desc field for debug-token list.
-
-Sun Dec 19 23:35:53 1993 Gray Watson ()
-
- * moved the NULLs in malloc_dbg.h to 0L.
-
- * added a debugging section to the manual and moved some stuff
- around.
-
-Fri Dec 17 15:02:29 1993 Gray Watson ()
-
- * fixed some compilation errors with non-STDC systems re
- Charles Campbell.
-
-Mon Dec 6 01:18:29 1993 Gray Watson ()
-
- * new fence read/write code. much cleaner. new FENCE_TOP define.
-
-Tue Nov 30 05:35:39 1993 Gray Watson ()
-
- * added special tests to malloc_t. cleaned up and tested
- alloc(0).
-
-Mon Nov 29 21:39:54 1993 Gray Watson ()
-
- * turned num_bits into a macro and condensed log_heap_map. added
- MAX_SLOTS to chunk.
-
-Tue Nov 23 02:39:44 1993 Gray Watson ()
-
- * fixed heap_check error with free blocks.
-
- * Added light and heavy makefile targets for automatic testing.
-
- * added -s flag to malloc_t and cleaned up the output.
-
- * added realloc test code to malloc_t and immediately had to fix a
- pretty nasty realloc bug with the new code.
-
- * phased in the version 1.3.5 branch changes into the 2.0.0
- version. looks like it was reasonably painless.
-
-Mon Nov 22 22:21:56 1993 Gray Watson ()
-
- * Integrated tons of new heap code with per/block allocations (not
- base 2) and better free list management with block splitting.
-
- * Releasing version 1.3.5.
-
- * Added more automatic and comprehensive malloc_t testing
- facilities with argv options.
-
- * removed library from linking with malloc_dbg. good idea dave.
-
- * integrated some fixes and remove pre-main shit.
-
-Mon Nov 15 00:39:51 1993 Gray Watson ()
-
- * Added -T option to malloc_dbg: list-tokens for listing of debug
- tokens.
-
- * added ERROR_SIGNAL configure entry. defaults to SIGABRT.
- (NOTE: later removed).
-
-Sun Nov 14 23:08:03 1993 Gray Watson ()
-
- * Added 'never-reuse' token to never reuse free'd memory.
-
-Mon Nov 8 05:44:58 1993 Gray Watson ()
-
- * added ra_info to the contrib directory. Big wow.
-
-Wed Nov 3 00:56:19 1993 Gray Watson ()
-
- * Added check for pre-main calls to malloc. HACK!
-
- * Added on_exit and atexit support to auto-call malloc_shutdown.
- Thanks much to Manfred, Dave, Scott, and Rich.
-
- * Added -m (minus) option to malloc_dbg. Why didn't I think of
- this before?
-
-Tue Nov 2 16:45:32 1993 Gray Watson ()
-
- * Fixed problem with getenv processing.
-
-Wed Oct 20 19:30:34 1993 Gray Watson ()
-
- * Renamed malloc_debug to malloc_flags.
-
- * Added all malloc utility functions to malloc_lp.c. Now
- programs can call malloc_shutdown (for instance) without fear.
- See malloc_lp.h.
-
-Sat Oct 16 19:18:53 1993 Gray Watson ()
-
- * removed debug token log-ra, log-unknown should be enough.
-
-Thu Oct 14 19:48:42 1993 Gray Watson ()
-
- * malloc_heap_map() -> malloc_log_heap_map() for consistency.
-
-Wed Oct 13 17:58:55 1993 Gray Watson ()
-
- * Added malloc_log_unfreed() to dump non-free memory to
- logfile. Good for comparing heaps to see differences.
-
- * Added -p flag to malloc_dbg to allow adding of tokens to
- debug value.
-
- * added DEBUG_LOG_STAMP to add timestamps to log entries.
-
- * Added malloc_log_stats() to dump stats to log file.
-
- * Re-added cfree() call. No reason not to have it.
-
-Sun Sep 26 14:36:54 1993 Gray Watson ()
-
- * For new version 2.0.0b. Major changes. Lots of procedures
- moved around. Rewrote a large part of get_bblocks and removed
- get_bblock_adm.
-
- * Releasing version 1.3.4.
-
- * Added -std1 configuration changes and bcopy fixes.
-
- * Fixed up the messages to provide more information and to just
- reflect reality. Some real dumb errors found.
-
- * Added malloc_debug_current() and #ifdef STDC instead of
- #if. Thanks Scott.
-
-Wed Sep 22 00:43:54 1993 Gray Watson ()
-
- * Removed log-bad-pnt. What a dumb token! Unnecessary!
-
-Mon Sep 20 20:36:23 1993 Gray Watson ()
-
- * Releasing version 1.3.3.
-
- * Added ALLOW_FREE_NULL defines because of some systems allowing
- free(0). Yeach! Thanks Dave.
-
-Fri Sep 10 17:10:45 1993 Gray Watson ()
-
- * Fixed debug value changes in mid-stream. Repaired configuration
- error with memcpy/bcopy and memcmp/bcmp. Thanks Marc.
-
-Tue Sep 7 00:49:50 1993 Gray Watson ()
-
- * Renamed all error codes to ERROR_*. Added ERROR_IS_FREE and
- changed some of the already-free errors to this. Reworded some
- error messages and added free's file/line into to log_bad_pnt.
-
-Mon Aug 30 17:23:47 1993 Gray Watson ()
-
- * Added prototypes for _malloc_strcpy, etc. functions to
- malloc_dbg.h per Scott's comments.
-
-Thu Aug 26 19:06:45 1993 Gray Watson ()
-
- * Released version 1.3.2. Uploaded to the ftp site.
-
- * Removed MALLOC_TRACE and malloc_dbg -t. Replaced by
- MALLOC_ADDRESS:0 functionality and logging of a message every time
- malloc_address is seen.
-
- * Fixed some dumb const problems. Have to now preprocess
- malloc_dbg.h from start const.h end. Yeach!
-
- * Added MALLOC_LOGFILE feature where %d in the string will be
- replaced with the pid of the process. Had to add getpid to
- configure and compat.
-
- * Fixed some problems with compat.h defines.
-
-Tue Aug 24 00:35:49 1993 Gray Watson ()
-
- * Releasing version 1.3.1.
-
- * Added log-ra token to log specific information about non-freed
- memory with only return-address information (NOTE: later removed).
-
- * Added the beginnings of return-address handling. Thanks Dave.
- Need to resolve some XXX sections in chunk and get more
- architecture/compiler hacks in return.h. Along the way had to
- change the malloc_examine() arguments to add ret_attr.
-
- * Added -L or --list to malloc_dbg to list all the rc-file tags.
-
- * Fixed some problems in chunk.c. Thanks Dave. Renamed
- malloc_str.[ch] to be arg_check.[ch].
-
-Tue Aug 17 16:22:20 1993 Gray Watson ()
-
- * Releasing version 1.3.0.
-
- * Fixed some ansi compiler problems via patch from Manfred
- Hauswirth.
-
-Thu Aug 12 18:11:01 1993 Gray Watson ()
-
- * Added MALLOC_TRACE variable and malloc_dbg -t functionality for
- tracing an address and logging messages about it. NOTE: this
- was later removed -- replaced by MALLOC_ADDRESS:0.
-
-Tue Aug 10 16:43:07 1993 Gray Watson ()
-
- * Made some minor fixes. Thanks Marc.
-
-Mon Jul 26 05:50:27 1993 Gray Watson ()
-
- * Added some C++ from Peter Miller to the manual.
-
-Fri Jul 23 01:36:09 1993 Gray Watson ()
-
- * Removed LGPL copyright and put in its place fully free
- software notices.
-
-Thu Jul 22 17:35:23 1993 Gray Watson ()
-
- * _malloc_perror renamed to _malloc_error and made some other
- minor changes.
-
-Tue Jul 20 01:52:02 1993 Gray Watson ()
-
- * Added smallest_block runtime calculations.
-
-Mon Jul 19 12:20:58 1993 Gray Watson ()
-
- * Made malloc_address exported per Dave's comments so it
- can be setable by debugger at runtime.
-
- * Added Dave's idea of auto-sensing of shell by malloc_dbg.
- Also added -C option to malloc_dbg to force cshell output.
-
- * Removed the dblock checking tokens CHECK_DBLOCK and
- CHECK_DB_FENCE for a couple different reasons. I never liked them
- anyway! I also renumbered CHECK_FREE and CHECK_FUNCS in the
- process.
-
- * Fixed a number of int/long problems since Dave is running
- malloc on a 64 bit alpha.
-
- * Made a number of changes to the configure scripts and conf.h per
- Dave's comments. Added BASIC_BLOCK and ALLOCATION_ALIGNMENT
- to the auto-config stuff.
-
-Fri Jul 16 00:01:31 1993 Gray Watson ()
-
- * Changed malloc_dbg per new ARGV_MAYBE. Made some various
- changes from ints to longs per some useful comments from Dave
- Hill.
-
-Tue Jul 13 01:53:32 1993 Gray Watson ()
-
- * Version 1.2.6 released.
-
- * Posting to bsdi. Last minute porting changes.
-
-Mon Jul 12 02:03:25 1993 Gray Watson ()
-
- * Finished new catch-null token.
-
-Tue Jul 6 16:04:17 1993 Gray Watson ()
-
- * Added 'catch-null' token for quitting as soon as we get a sbrk
- failure (i.e. the swap is full or something) as opposed to
- returning NULL.
-
-Sat Jun 19 14:49:42 1993 Gray Watson ()
-
- * Minor changes to configuration and notes files.
-
-Tue Jun 15 10:29:13 1993 Gray Watson ()
-
- * Released version 1.2.5.
-
- * Made some last minute changes to the manual.
-
-Wed Jun 9 15:12:21 1993 Gray Watson ()
-
- * Fixed small malloc_dbg token bug from Peter Miller.
-
-Thu Jun 3 16:01:14 1993 Gray Watson ()
-
- * Added index to manual, removed shar files in place of Makefile
- variables.
-
-Mon May 24 12:58:06 1993 Gray Watson ()
-
- * Added -r and -k options for auto-unsetting of variables or
- keeping of variables with malloc_dbg when setting a tag.
-
- * Added const checking to configure and reordered some include
- files to put conf.h on top.
-
-Tue May 18 20:07:41 1993 Gray Watson ()
-
- * Added log-bad-space token and added expand_buf into chunk.c.
-
- * Create log_bad_pnt in chunk. Probably broke stuff.
- Translated some flag to BIT_FLAG format.
-
- * Updated README and started ftp site thanks to Doug Balog.
-
-Thu May 13 00:56:39 1993 Gray Watson ()
-
- * Released version 1.2.4.
-
- * Pretty stable now for a while. Trying to get access to a ftp
- for distribution ease.
-
-Thu May 6 11:26:03 1993 Gray Watson ()
-
- * Added new fix-patch script for myself. Fixed malloc_t by
- removing LOCAL/EXPORT, etc.
-
-Fri Apr 30 15:26:12 1993 Gray Watson ()
-
- * Removed some heap checks in malloc.c from Bali Jatinder's
- comments and fixed some of the error strings.
-
- * Moved around some defines and changes include ordering.
-
- * Added -v option to malloc_dbg to provide verbose output
- especially for dumping currently set debug tokens from
- MALLOC_DEBUG variable.
-
-Mon Apr 19 16:04:17 1993 Gray Watson ()
-
- * Released version 1.2.3.
-
- * Made some changes to a lot of comments, notes files, and ttd
- file.
-
-Thu Apr 15 17:44:41 1993 Gray Watson ()
-
- * Renamed malloc.h to malloc_dbg.h and libmalloc.a to
- libmalloc_dbg.a. Added heap-extension checking and verification
- to make sure no-one extends the heap using sbrk behind out back.
- Fixed calloc to have the number of elements be a size_t to (WHY??
- It's not a size!!). Fixed malloc_t free problems.
-
-Wed Apr 14 18:11:00 1993 Gray Watson ()
-
- * Released version 1.2.2.
-
- * Added some more point checking tests to malloc_str. Added
- MALLOC_SIZE to some more places. Completely ifdef'ed compat.h.
- If cannot open logfile, now it complains and continues. Removed
- stdarg from malloc_dbg.
-
-Fri Apr 9 01:50:17 1993 Gray Watson ()
-
- * Released version 1.2.1.
-
- * Made various other changes. Backed out some printf changes.
- Added SIZE_T defines and fixed up STDC defines.
-
-Thu Apr 8 17:41:59 1993 Gray Watson ()
-
- * Changed to void * internally from char * and put STDC defines in
- malloc.h for ANSI folks. Why did the ANSI idiots drop the return
- value from free? Dumb!
-
- * Made a number of changes per suggestions from the net. Added
- some size_t defines for AIX junk (that's right Scott junk). Cut
- down on the continuation strings, fixed some README and mallocrc
- goofs, etc. Thanks to all.
-
-Tue Apr 6 00:46:45 1993 Gray Watson ()
-
- * Released version 1.2.0 to comp.sources.unix.
-
- * Upgraded to version 1.2.0. Ready for 2nd release to
- comp.sources.unix. Lots of work on the manual.
-
-Mon Apr 5 18:28:05 1993 Gray Watson ()
-
- * Finished adding token "check-funcs" to check the arguments of
- some common string functions to see whether they are in the heap.
- if so it tries to verify that the pointers are good.
-
-Sun Apr 4 21:24:45 1993 Gray Watson ()
-
- * Added token "log-unknown" to dump non-free unknown pointers as
- well as known ones. Also cleaned up the displaying of the
- pointers.
-
- * comp.sources.unix is almost ready to post so lots of last minute
- cleanups in the manual, etc.
-
- * Started integration of function argument checking.
-
-Tue Mar 30 19:36:27 1993 Gray Watson ()
-
- * Changed malloc.h defines so malloc routines are handled as well
- as the ALLOC macros.
-
- * malloc_dbg program now reports on the token NAME and values.
-
- * Added initial string files for string support in the future.
-
- * A number of minor changes: fixed gcc compilation problems per
- Scott's help, combined malloc_lp.h into malloc.h, cleaned most .h
- and .c files.
-
-Fri Mar 26 04:00:14 1993 Gray Watson ()
-
- * Fixed post 1.1.6 problem with chunk.c. Boy do I need some
- automated testing tools. Discovered the illusive localtime
- fence-post error. Had a hard time tracking it down. Maybe due to
- the fact that the checks were not being made on dblock fence posts
- before?
-
- * Released version 1.1.6
-
- * Found some problems with malloc debug codes. Use of DB_FENCE
- and CHECK_LISTS and some others were improper. A MALLOC_DEBUG
- value of 0x403000 would crash all malloc programs. :-)
-
- * Added some better comments to all files and cleaned up most
- files too.
-
-Fri Mar 12 18:35:02 1993 Gray Watson ()
-
- * Released version 1.1.5.
-
-Sat Feb 13 17:25:43 1993 Gray Watson ()
-
- * Finished add a number of const operators to improve coding per
- scott's recommendations.
-
-Sat Jan 30 12:33:43 1993 Gray Watson ()
-
- * Released version 1.1.4
-
- * Took out the check_vars call inside of malloc_strerror since
- _malloc_perror calls malloc_strerror which would go quickly
- recursive. Thanks scott.
-
-Tue Jan 5 00:00:00 1993 Gray Watson ()
-
- * Posted version 1.1.3 shar files to comp.sources.unix.
-
-Sat Jan 2 00:16:58 1993 Gray Watson ()
-
- * Made last minute changes to solve some gcc/ansi errors and
- to the manual to get things ready for the post.
-
-Sun Dec 27 20:28:19 1992 Gray Watson ()
-
- * Fixed problem with some external functions in malloc.c not
- resetting the in_alloc flag. Also removed some testing of unsigned
- variables < 0 in chunk.c per gcc 2.3.3 warnings.
-
- * Released version 1.1.3.
-
-Mon Dec 21 15:31:50 1992 Gray Watson ()
-
- * Created the series of shar files in preparation to posting to
- comp.unix.sources. Looking good.
-
-Thu Dec 17 18:33:38 1992 Gray Watson ()
-
- * Renamed a number of files to comply with the Sys5 12 character
- restrictions (14 - 2 for RCS/CVS/SCCS). Yeach. malloc_debug ->
- malloc_dbg.
-
-Sat Nov 14 15:59:53 1992 Gray Watson ()
-
- * Added all external functions to configure and conf.h even though
- the library assumes that some functions will be resolved. Also
- upgraded the version number to 1.01gamma (oooooh).
-
- * Added print-perror debug token for logging messages to STDERR as
- well as log-files. Removed stdio from the malloc library to make
- sure it does not go recursive (alloc for stderr) at a bad time.
-
-Wed Nov 11 18:19:49 1992 Gray Watson ()
-
- * Moved the heap_check calls from chunk.c over to malloc so we can
- be guaranteed that it gets called only once per user call.
- chunk's routines often cross-call each other meaning that
- heap-check was being run 5 times in realloc. YEACH!!
-
-Tue Nov 10 17:55:53 1992 Gray Watson ()
-
- * Added two new debug-tokens: log-blocks and heap-check-map. Also
- made sure that heap_check was being called from everywhere.
- Updated the manual and corresponding files.
-
- * Added library functions that may not be defined. Updated the
- conf.h.in and configure.in files to improve confiurability.
- Upgraded the manual which still needs a lot of work (sigh).
-
-Mon Nov 9 19:21:25 1992 Gray Watson ()
-
- * Added configure, configure.in, conf.h.in, and Makefile.in to try
- and conform with autoconf specs. What a bear. The documentation
- for autoconf needs a whole bunch more examples, etc. Sigh.
- Removed all the MEMORY and STRING defines, etc.
-
-Thu Nov 5 22:13:18 1992 Gray Watson ()
-
- * Released version 1.01b. Sending it off to some folks.
-
- * Lots and lots of changes. Translated all programs into non-ansi
- C dependence and then went back again when I found some problems
- with my macros. :-) Took out all (and I mean all) Antaire
- dependencies and defines.
-
-Thu Oct 22 00:47:18 1992 Gray Watson ()
-
- * Ran through most of the debug-flag functionality testing and
- tweaking. Found some bugs on dblock handling and some messed up
- logic with the way the LOG flags were working.
-
- * malloc_debug is looking good. It now outputs C or Bourne shell
- code and seems to work in both environments. What do sh folks use
- in the place of c-shell aliasing? I guess use bash. :-)
-
-Wed Oct 21 03:27:35 1992 Gray Watson ()
-
- * Major changes. I sort of went overboard tonight. I integrated
- the new malloc_debug program which sets all the debug variables
- for you. I also added a .mallocrc which you can define with tags
- exactly the functionality you want to happen. No more levels!!
-
- * Did some renaming of files, cleaned up some other things,
- had to rework a number of items to get new debug flags working.
-
-Tue Oct 20 18:06:36 1992 Gray Watson ()
-
- * Removed useful.h requirements and integrated necessary
- definitions into malloc.h.
-
- * Transferred malloc.txt documentation into malloc.texinfo. Boy
- is it nifty!! And damn easy!!!
-
- * Major changes to improve general machine independence. Added
- malloc_mach.h. Moved alloc.[ch] to malloc.[ch] for sanity
- reasons.
-
-Tue Oct 13 16:14:17 1992 Gray Watson ()
-
- * Made various cosmetic changes. Fixed realloc inbound pointer
- checking per MALLOC_ADDRESS. Fixed problem with MALLOC_ADDRESS
- initialization to NULL causing free to "find" NULL pointers. :-)
-
- * Separated the PERROR debug level and the KILL_SELF level. Now
- (by default) all memory errors are logged at level 1 and above and
- malloc kills itself at level 2 and above.
-
-Mon Sep 28 23:24:36 1992 Gray Watson ()
-
- * Added MALLOC_ADDRESS support for free. MALLOC_ADDRESS counts
- now also apply to frees also.
-
-Mon Sep 21 20:39:38 1992 Gray Watson ()
-
- * Fixed some size problems with bounds checking enabled.
-
- * Made free be able to report who freed a pointer. I don't know
- why this wasn't caught before. free wasn't even using its
- file/line arguments.
-
-Thu Sep 3 03:23:39 1992 Gray Watson ()
-
- * Added ability to realloc a NULL pointer with an ifdef to
- disable. Useful in realloc loops where the first time you don't
- have to alloc it.
-
-Fri Aug 14 15:54:03 1992 Gray Watson ()
-
- * Added a bunch of new environmental variables features:
- MALLOC_ADDRESS now can have a :# argument. MALLOC_START now has
- two formats, the old number and new file:line. Looks nice!
-
- * Made a pass through chunk.c and fixed a number of problems where
- debug output pnt/size did not match user-supplied information.
-
- * Moved most of the debug variables into alloc.c from chunk.c and
- added a standardized check_debug_vars() checking routine.
-
-Tue Jul 21 16:06:13 1992 Gray Watson ()
-
- * Fixed malloc count statistics. Removed duplicate malloc_count
- variable from a number of places.
-
-Mon Mar 23 10:49:25 1992 Gray Watson ()
-
- * Released version 0.04
-
- * New env variable features.
-
-Thu Mar 12 19:28:34 1992 Gray Watson ()
-
- * Fixed a large problem with chunk.c not reporting the correct
- memory address when listing unfreed memory. This was discovered
- when MALLOC_ADDRESS was not working correctly.
-
- * Started ChangeLog.
-
--------------------------------------------------------------------------------
-$Id: ChangeLog,v 1.345 2007/05/14 17:23:42 gray Exp $
--------------------------------------------------------------------------------
diff --git a/dmalloc-5.5.2/.svn/text-base/INSTALL.svn-base b/dmalloc-5.5.2/.svn/text-base/INSTALL.svn-base
deleted file mode 100644
index a4199e2..0000000
--- a/dmalloc-5.5.2/.svn/text-base/INSTALL.svn-base
+++ /dev/null
@@ -1,3377 +0,0 @@
--------------------------------------------------------------------------------
-
-2.1 How to Install the Library
-==============================
-
-To configure, compile, and install the library, follow these steps
-carefully.
-
- 1. Make sure you have downloaded the latest version of the library
- available from the home page at URL `http://dmalloc.com/'.
-
- 2. The release files have a `.tgz' file extension which means that
- they are a tar'd gzip'd directory of files. You will need to
- ungzip and then untar the release file into your source work
- directory. You may have to rename the file to `.tar.gz' to get
- some old zip programs to handle the file correctly.
-
- 3. You may want to edit or at least review the settings in
- `settings.dist' to tune specific features of the library. The
- `configure' script will copy this file to `settings.h' which is
- where you should be adding per-architecture settings.
-
- 4. Type `sh ./configure' to configure the library. You may want to
- first examine the `config.help' file for some information about
- configure. You may want to use the `--disable-cxx' option if you
- do not want the Makefile to build the C++ version of dmalloc. You
- may want to use the `--enable-threads' option to build the
- threaded version of dmalloc. You may want to use the
- `--enable-shlib' option to build the shared versions of the
- dmalloc libraries. `sh ./configure --help' lists the available
- options to configure. Configure should generate the `Makefile'
- and configuration files automatically.
-
- 5. You may want to examine the `Makefile' and `conf.h' files created
- by configure to make sure it did its job correctly.
-
- 6. You might want to tune the settings in `settings.h' file to tune
- the library to the local architecture. This file contains relevant
- settings if you are using pthreads or another thread library.
- *Note Using With Threads::. The `configure' script created this
- file from the `settings.dist' file. Any permanent changes to these
- settings should made to the `settings.dist' file. You then can run
- `config.status' to re-create the `settings.h' file.
-
- 7. The `DMALLOC_SIZE' variable gets auto-configured in `dmalloc.h.2'
- but it may not generate correct settings for all systems. You may
- have to alter the definitions in this file to get things to stop
- complaining when you go to compile about the size arguments to
- malloc routines. Comments on this please.
-
- 8. Typing `make' should be enough to build `libdmalloc.a', and
- `dmalloc' program. If it does not work, please see if there are
- any notes in the contrib directory about your system-type. If not
- and you figure your problem out, please send me some notes so
- future users can profit from your experiences.
-
- _NOTE_: You may experience some errors compiling some of the
- `return.h' assembly macros which attempt to determine the callers
- address for logging purposes. *Note Portability::. You may want
- to first try disabling any compiler optimization flags. If this
- doesn't work then you may need to disable the `USE_RETURN_MACROS'
- variable in the `settings.h' file.
-
- _NOTE_: The code is dependent on an ANSI-C compiler. If the
- configure script gives the `WARNING' that you do not have an ANSI-C
- compiler, you may still be able to add some sort of option to your
- compiler to make it ANSI. If there such is an option, please send
- it to the author so it can be added to the configure script.
-
- 9. If you use threads and did not add the `--enable-threads' argument
- to configure, typing `make threads' should be enough to build
- `libdmallocth.a' which is the threaded version of the library.
- This may or may not work depending on the configuration scripts
- ability to detect your local thread functionality. Feel free to
- send me mail with improvements.
-
- See the section of the manual on threads for more information about
- the operation of the library with your threaded program. *Note
- Using With Threads::.
-
- 10. If you have a C++ compiler installed, the library should have
- automatically built `libdmallocxx.a' which is the C++ version of
- the library. If it was not done automatically, you can build it by
- typing `make cxx'. You should link this library into your C++
- programs instead of `libdmalloc.a'. See the `dmallocc.cc' C++
- file which contains basic code to overload the `new', `new[]',
- `delete', and `delete[]' C++ operators. My apologies on the
- minimal C++ support. I am still living in a mostly C world. Any
- help improving this interface without sacrificing portability
- would be appreciated.
-
- 11. Typing `make light' should build and run the `dmalloc_t' test
- program through a set of light trials. By default this will
- execute `dmalloc_t' 5 times - each time will execute 10,000 malloc
- operations in a very random manner. Anal folks can type `make
- heavy' to up the ante. Use `dmalloc_t --usage' for the list of all
- `dmalloc_t' options.
-
- 12. Typing `make install' should install the `libdmalloc.a' library in
- `/usr/local/lib', the `dmalloc.h' include file in
- `/usr/local/include', and the `dmalloc' utility in
- `/usr/local/bin'. You may also want to type `make installth' to
- install the thread library into place and/or `make installcc' to
- install the C++ library into place.
-
- You may have specified a `--prefix=PATH' option to configure in
- which case `/usr/local' will have been replaced with `PATH'.
-
-
- See the "Getting Started" section to get up and running with the
-library. *Note Getting Started::.
-
-
--------------------------------------------------------------------------------
-
-2.2 Getting Started with the Library
-====================================
-
-This section should give you a quick idea on how to get going.
-Basically, you need to do the following things to make use of the
-library:
-
- 1. Make sure you have downloaded the latest version of the library
- available from the home page at URL `http://dmalloc.com/'.
-
- 2. Follow the installation instructions on how to configure, make,
- and install the library (i.e. type: `make install'). *Note
- Installation::.
-
- 3. You need to make sure that the library configuration and build
- process above was able to locate one of the `on_exit' function,
- `atexit' function, or had compiler destructor support. If one of
- these functions or support is available then the dmalloc library
- should be able to automatically shut itself down when the program
- exits. This causes the memory statistics and unfreed information
- to be dumped to the log file. However, if your system has none of
- the above, then you will need to call `dmalloc_shutdown' yourself
- before your program exits.
-
- 4. To get the dmalloc utility to work you need to add an alias for
- dmalloc to your shell's runtime configuration file if supported.
- The idea is to have the shell capture the dmalloc program's output
- and adjust the environment.
-
- After you add the alias to the shell config file you need to log
- out and log back in to have it take effect, or you can execute the
- appropriate command below on the command line directly. After you
- setup the alias, if you enter `dmalloc runtime' and see any output
- with DMALLOC_OPTIONS in it then the alias did not take effect.
-
- Bash, ksh, and zsh (`http://www.zsh.org/') users should add the
- following to their `.bashrc', `.profile', or `.zshrc' file
- respectively (notice the `-b' option for bourne shell output):
-
- function dmalloc { eval `command dmalloc -b $*`; }
-
- If your shell does not support the `command' function then try:
-
- function dmalloc { eval `\dmalloc -b $*`; }
- or
- function dmalloc { eval `/usr/local/bin/dmalloc -b $*`; }
-
- If you are still using csh or tcsh, you should add the following to
- your `.cshrc' file (notice the `-C' option for c-shell output):
-
- alias dmalloc 'eval `\dmalloc -C \!*`'
-
- If you are using rc shell, you should add the following to your
- `.rcrc' file (notice the `-R' option for rc-shell output):
-
- fn dmalloc {eval `{/usr/local/bin/dmalloc $*}}
-
- 5. Although not necessary, you may want to include `dmalloc.h' in
- your C files and recompile. This will allow the library to report
- the file/line numbers of calls that generate problems. *Note
- Allocation Macros::. It should be inserted at the _bottom_ of
- your include files as to not conflict with wother includes. You
- may want to ifdef it as well and compile with `cc -DDMALLOC ...':
-
- /* other includes above ^^^ */
-
- #ifdef DMALLOC
- #include "dmalloc.h"
- #endif
-
- 6. Another optional task is to compile all of your source with the
- `dmalloc.h' with the `DMALLOC_FUNC_CHECK' compilation flag. This
- willallow the library to check all of the arguments of a number of
- common string and utility routines. *Note Argument Checking::.
-
- cc -DDMALLOC -DDMALLOC_FUNC_CHECK file.c
-
- 7. Link the dmalloc library into your program. The dmalloc library
- should probably be placed at or near the end of the library list.
-
- 8. Enable the debugging features by typing `dmalloc -l logfile -i 100
- low' (for example). You should not see any messages printed by
- the dmalloc utility (see NOTE below). This will:
-
- * Set the malloc logfile name to `logfile' (`-l logfile'). For
- programs which change directories, you may want to specify the
- full path to your logfile.
-
- * Have the library check itself every 100 iterations (`-i 100').
- This controls how fast your program will run. Larger numbers
- check the heap less and so it will run faster. Lower numbers
- will be more likely to catch memory problems.
-
- * Enable a number of debug features (`low'). You can also try
- `runtime' for minimal checking or `medium' or `high' for more
- extensive heap verification.
-
- * By default, the low, medium, and high values enable the
- `error-abort' token which will cause the library to abort and
- usually dump core immediately upon seeing an error. *Note
- Dumping Core::. You can disable this feature by entering
- `dmalloc -m error-abort' (-m for minus) to remove the
- `error-abort' token and your program will just log errors and
- continue.
-
-
- `dmalloc --usage' will provide verbose usage info for the dmalloc
- program. *Note Dmalloc Program::.
-
- You may also want to install the `dmallocrc' file in your home
- directory as `.dmallocrc'. This allows you to add your own
- combination of debug tokens. *Note RC File::.
-
- _NOTE_: The output from the dmalloc utility should be captured by
- your shell. If you see a bunch of stuff which includes the string
- `DMALLOC_OPTIONS' then the alias you should have created above is
- not working and he environmental variables are not being set. Make
- sure you've logged out and back in to have the alias take effect.
-
- 9. Run your program, examine the logfile that should have been
- created by `dmalloc_shutdown', and use its information to help
- debug your program.
-
-
-
-File: dmalloc.info, Node: Allocation Basics, Next: Features, Prev: Getting Started, Up: Overview
-
-2.3 Basic Description of Terms and Functions
-============================================
-
-* Menu:
-
-* Basic Definitions:: General memory terms and concepts.
-* Malloc Functions:: Functionality supported by all malloc libs.
-
-
-File: dmalloc.info, Node: Basic Definitions, Next: Malloc Functions, Prev: Allocation Basics, Up: Allocation Basics
-
-2.3.1 General Memory Terms and Concepts
----------------------------------------
-
-Any program can be divided into 2 logical parts: text and data. Text is
-the actual program code in machine-readable format and data is the
-information that the text operates on when it is executing. The data,
-in turn, can be divided into 3 logical parts according to where it is
-stored: "static", "stack", and "heap".
-
- Static data is the information whose storage space is compiled into
-the program.
-
- /* global variables are allocated as static data */
- int numbers[10];
-
- main()
- {
- ...
- }
-
- Stack data is data allocated at runtime to hold information used
-inside of functions. This data is managed by the system in the space
-called stack space.
-
- void foo()
- {
- /* this local variable is stored on the stack */
- float total;
- ...
- }
-
- main()
- {
- foo();
- }
-
- Heap data is also allocated at runtime and provides a programmer with
-dynamic memory capabilities.
-
- main()
- {
- /* the address is stored on the stack */
- char * string;
- ...
-
- /*
- * Allocate a string of 10 bytes on the heap. Store the
- * address in string which is on the stack.
- */
- string = (char *)malloc(10);
- ...
-
- /* de-allocate the heap memory now that we're done with it */
- (void)free(string);
- ...
- }
-
- It is the heap data that is managed by this library.
-
- Although the above is an example of how to use the malloc and free
-commands, it is not a good example of why using the heap for runtime
-storage is useful.
-
- Consider this: You write a program that reads a file into memory,
-processes it, and displays results. You would like to handle files with
-arbitrary size (from 10 bytes to 1.2 megabytes and more). One problem,
-however, is that the entire file must be in memory at one time to do the
-calculations. You don't want to have to allocate 1.2 megabytes when you
-might only be reading in a 10 byte file because it is wasteful of system
-resources. Also, you are worried that your program might have to handle
-files of more than 1.2 megabytes.
-
- A solution: first check out the file's size and then, using the
-heap-allocation routines, get enough storage to read the entire file
-into memory. The program will only be using the system resources
-necessary for the job and you will be guaranteed that your program can
-handle any sized file.
-
-
-File: dmalloc.info, Node: Malloc Functions, Prev: Basic Definitions, Up: Allocation Basics
-
-2.3.2 Functionality Supported by All Malloc Libraries
------------------------------------------------------
-
-All malloc libraries support 4 basic memory allocation commands. These
-include "malloc", "calloc", "realloc", and "free". For more
-information about their capabilities, check your system's manual pages
-- in unix, do a `man 3 malloc'.
-
- -- Function: void *malloc ( unsigned int SIZE )
- Usage: `pnt = (type *)malloc(size)'
-
- The malloc routine is the basic memory allocation routine. It
- allocates an area of `size' bytes. It will return a pointer to
- the space requested.
-
-
- -- Function: void *calloc ( unsigned int NUMBER, unsigned intSIZE )
- Usage: `pnt = (type *)calloc(number, size)'
-
- The calloc routine allocates a certain `number' of items, each of
- `size' bytes, and returns a pointer to the space. It is
- appropriate to pass in a `sizeof(type)' value as the size argument.
-
- Also, calloc nulls the space that it returns, assuring that the
- memory is all zeros.
-
-
- -- Function: void *realloc ( void *OLD_PNT, unsigned int NEW_SIZE )
- Usage: `new_pnt = (type *)realloc(old_pnt, new_size)'
-
- The realloc function expands or shrinks the memory allocation in
- `old_pnt' to `new_size' number of bytes. Realloc copies as much
- of the information from `old_pnt' as it can into the `new_pnt'
- space it returns, up to `new_size' bytes. If there is a problem
- allocating this memory, 0L will be returned.
-
- If the `old_pnt' is 0L then realloc will do the equivalent of a
- `malloc(new_size)'. If `new_size' is 0 and `old_pnt' is not 0L,
- then it will do the equivalent of `free(old_pnt)' and will return
- 0L.
-
-
- -- Function: void free ( void *PNT )
- Usage: `free(pnt)'
-
- The free routine releases allocation in `pnt' which was returned by
- malloc, calloc, or realloc back to the heap. This allows other
- parts of the program to re-use memory that is not needed anymore.
- It guarantees that the process does not grow too big and swallow a
- large portion of the system resources.
-
-
- _WARNING_: there is a quite common myth that all of the space that
-is returned by malloc libraries has already been cleared. _Only_ the
-`calloc' routine will zero the memory space it returns.
-
-
-File: dmalloc.info, Node: Features, Next: How It Works, Prev: Allocation Basics, Up: Overview
-
-2.4 General Features of the Library
-===================================
-
-The debugging features that are available in this debug malloc library
-can be divided into a couple basic classifications:
-
-file and line number information
- One of the nice things about a good debugger is its ability to
- provide the file and line number of an offending piece of code.
- This library attempts to give this functionality with the help of
- "cpp", the C preprocessor. *Note Allocation Macros::.
-
-return-address information
- To debug calls to the library from external sources (i.e. those
- files that could not use the allocation macros), some facilities
- have been provided to supply the caller's address. This address,
- with the help of a debugger, can help you locate the source of a
- problem. *Note Return Address::.
-
-fence-post (i.e. bounds) checking
- "Fence-post" memory is the area immediately above or below memory
- allocations. It is all too easy to write code that accesses above
- or below an allocation - especially when dealing with arrays or
- strings. The library can write special values in the areas around
- every allocation so it will notice when these areas have been
- overwritten. *Note Fence-Post Overruns::.
-
- _NOTE_: The library cannot notice when the program _reads_ from
- these areas, only when it writes values. Also, fence-post checking
- will increase the amount of memory the program allocates.
-
-heap-constancy verification
- The administration of the library is reasonably complex. If any
- of the heap-maintenance information is corrupted, the program will
- either crash or give unpredictable results.
-
- By enabling heap-consistency checking, the library will run
- through its administrative structures to make sure all is in
- order. This will mean that problems will be caught faster and
- diagnosed better.
-
- The drawback of this is, of course, that the library often takes
- quite a long time to do this. It is suitable to enable this only
- during development and debugging sessions.
-
- _NOTE_: the heap checking routines cannot guarantee that the tests
- will not cause a segmentation-fault if the heap administration
- structures are properly (or improperly if you will) overwritten.
- In other words, the tests will verify that everything is okay but
- may not inform the user of problems in a graceful manner.
-
-logging statistics
- One of the reasons why the debug malloc library was initially
- developed was to track programs' memory usage - specifically to
- locate "memory leaks" which are places where allocated memory is
- never getting freed. *Note Memory Leaks::.
-
- The library has a number of logging capabilities that can track
- un-freed memory pointers as well as runtime memory usage, memory
- transactions, administrative actions, and final statistics.
-
-examining freed memory
- Another common problem happens when a program frees a memory
- pointer but goes on to use it again by mistake. This can lead to
- mysterious crashes and unexplained problems.
-
- To combat this, the library can write special values into a block
- of memory after it has been freed. This serves two purposes: it
- will make sure that the program will get garbage data if it trying
- to access the area again, and it will allow the library to verify
- the area later for signs of overwriting.
-
- If any of the above debugging features detect an error, the library
-will try to recover. If logging is enabled then an error will be
-logged with as much information as possible.
-
- The error messages that the library displays are designed to give the
-most information for developers. If the error message is not
-understood, then it is most likely just trying to indicate that a part
-of the heap has been corrupted.
-
- The library can be configured to quit immediately when an error is
-detected and to dump a core file or memory-image. This can be examined
-with a debugger to determine the source of the problem. The library
-can either stop after dumping core or continue running. *Note Dumping
-Core::.
-
- _NOTE_: do not be surprised if the library catches problems with
-your system's routines. It took me hours to finally come to the
-conclusion that the localtime call, included in SunOS release 4.1,
-overwrites one of its fence-post markers.
-
-
-File: dmalloc.info, Node: How It Works, Prev: Features, Up: Overview
-
-2.5 How the Library Checks Your Program
-=======================================
-
-This is one of the newer sections of the library implying that it is
-incomplete. If you have any questions or issues that you'd like to see
-handled here, please let me know.
-
- The dmalloc library replaces the heap library calls normally found in
-your system libraries with its own versions. When you make a call to
-malloc (for example), you are calling dmalloc's version of the memory
-allocation function. When you allocate memory with these functions, the
-dmalloc library keeps track of a number of pieces of debugging
-information about your pointer including: where it was allocated,
-exactly how much memory was requested, when the call was made, etc..
-This information can then be verified when the pointer is freed or
-reallocated and the details can be logged on any errors.
-
- Whenever you reallocate or free a memory address, the dmalloc library
-always performs a number of checks on the pointer to make sure that it
-is valid and has not been corrupted. You can configure the library to
-perform additional checks such as detected fence-post writing. The
-library can also be configured to overwrite memory with non-zeros (only
-if calloc is not called) when it is allocated and erase the memory when
-the pointers are freed.
-
- In addition to per-pointer checks, you can configure the library to
-perform complete heap checks. These complete checks verify all
-internal heap structures and include walking all of the known allocated
-pointers to verify each one in turn. You need this level of checking
-to find random pointers in your program which got corrupted but that
-won't be freed for a while. To turn on these checks, you will need to
-enable the `check-heap' debug token. *Note Debug Tokens::. By default
-this will cause the heap to be fully checked each and every time
-dmalloc is called whether it is a malloc, free, realloc, or another
-dmalloc overloaded function.
-
- Performing a full heap check can take a good bit of CPU and it may be
-that you will want to run it sporadically. This can be accomplished in
-a couple different ways including the '-i' interval argument to the
-dmalloc utility. *Note Dmalloc Program::. This will cause the check to
-be run every N-th time. For instance, 'dmalloc -i 3' will cause the
-heap to be checked before every 3rd call to a memory function. Values
-of 100 or even 1000 for high memory usage programs are more useful than
-smaller ones.
-
- You can also cause the program to start doing detailed heap checking
-after a certain point. For instance, with 'dmalloc -s 1000' option, you
-can tell the dmalloc library to enable the heap checks after the 1000th
-memory call. Examine the dmalloc log file produced and use the
-iteration count if you have `LOG_ITERATION_COUNT' enabled in your
-`settings.h' file.
-
- The start option can also have the format `file:line'. For
-instance, if it is set to `dmalloc_t.c:126', dmalloc will start
-checking the heap after it sees a dmalloc call from the `dmalloc_t.c'
-file, line number 126. If you use `dmalloc_t.c:0', with a 0 line
-number, then dmalloc will start checking the heap after it sees a call
-from anywhere in the `dmalloc_t.c' file.
-
-
-File: dmalloc.info, Node: Programming, Next: Dmalloc Program, Prev: Overview, Up: Top
-
-3 How to Program with the Library
-*********************************
-
-* Menu:
-
-* Allocation Macros:: Macros providing file and line information.
-* Return Address:: Getting caller address information.
-* Argument Checking:: Checking of function arguments.
-* Dumping Core:: Generating a core file on errors for debugging.
-* Extensions:: Additional non-standard routines.
-* Error Codes:: Description of the internal error numbers.
-* Disabling the Library:: How to disable the library.
-* Using With C++:: Using the library with C++.
-* Using With a Debugger:: Using a debugger with the library.
-* Using With Threads:: Using the library with a thread package.
-* Using With Cygwin:: Using the library with Cygwin environment.
-* Debugging A Server:: Debugging memory in a server or cgi-bin process.
-* Logfile Details:: Explanation of the Logfile Output.
-* Other Hints:: Various other hints that may help.
-
-
-File: dmalloc.info, Node: Allocation Macros, Next: Return Address, Prev: Programming, Up: Programming
-
-3.1 Macros Providing File and Line Information
-==============================================
-
-By including `dmalloc.h' in your C files, your calls to malloc, calloc,
-realloc, recalloc, memalign, valloc, strdup, and free are replaced with
-calls to _dmalloc_malloc, _dmalloc_realloc, and _dmalloc_free with
-various flags. Additionally the library replaces calls to xmalloc,
-xcalloc, xrealloc, xrecalloc, xmemalign, xvalloc, xstrdup, and xfree
-with associated calls.
-
- These macros use the c-preprocessor `__FILE__' and `__LINE__' macros
-which get replaced at compilation time with the current file and
-line-number of the source code in question. The routines use this
-information to produce verbose reports on memory problems.
-
- not freed: '0x38410' (22 bytes) from 'dmalloc_t.c:92'
-
- This line from a log file shows that memory was not freed from file
-`dmalloc_t.c' line 92. *Note Memory Leaks::.
-
- You may notice some non standard memory allocation functions in the
-above list. Recalloc is a routine like realloc that reallocates
-previously allocated memory to a new size. If the new memory size is
-larger than the old, recalloc initializes the new space to all zeros.
-This may or may not be supported natively by your operating system.
-Memalign is like malloc but should insure that the returned pointer is
-aligned to a certain number of specified bytes. Currently, the memalign
-function is not supported by the library. It defaults to returning
-possibly non-aligned memory for alignment values less than a block-size.
-Valloc is like malloc but insures that the returned pointer will be
-aligned to a page boundary. This may or may not be supported natively
-by your operating system but is fully supported by the library. Strdup
-is a string duplicating routine which takes in a null terminated string
-pointer and returns an allocated copy of the string that will need to be
-passed to free later to deallocate.
-
- The X versions of the standard memory functions (xmalloc, xfree,
-etc.) will print out an error message to standard error and will stop
-if the library is unable to allocate any additional memory. It is
-useful to use these routines instead of checking everywhere in your
-program for allocation routines returning NULL pointers.
-
- _WARNING_: If you are including the `dmalloc.h' file in your
-sources, it is recommended that it be at the end of your include file
-list because dmalloc uses macros and may try to change declarations of
-the malloc functions if they come after it.
-
-
-File: dmalloc.info, Node: Return Address, Next: Argument Checking, Prev: Allocation Macros, Up: Programming
-
-3.2 Getting Caller Address Information
-======================================
-
-Even though the allocation macros can provide file/line information for
-some of your code, there are still modules which either you can't
-include `dmalloc.h' (such as library routines) or you just don't want
-to. You can still get information about the routines that call dmalloc
-function from the return-address information. To accomplish this, you
-must be using this library on one of the supported
-architecture/compilers. *Note Portability::.
-
- The library attempts to use some assembly hacks to get the
-return-address or the address of the line that called the dmalloc
-function. If you have unfreed memory that does not have associated file
-and line information, you might see the following non-freed memory
-messages.
-
- not freed: '0x38410' (22 bytes) from 'ra=0xdd2c'
- not freed: '0x38600' (10232 bytes) from 'ra=0x10234d'
- not freed: '0x38220' (137 bytes) from 'ra=0x82cc'
-
- With the help of a debugger, these return-addresses (or ra) can then
-be identified. I've provided a `ra_info.pl' perl script in the
-`contrib/' directory with the dmalloc sources which seems to work well
-with gdb. You can also use manual methods for gdb to find the
-return-address location. *Note Translate Return Addresses::.
-
-
-File: dmalloc.info, Node: Argument Checking, Next: Dumping Core, Prev: Return Address, Up: Programming
-
-3.3 Checking of Function Arguments
-==================================
-
-One potential problem with the library and its multitude of checks and
-diagnoses is that they only get performed when a dmalloc function is
-called. One solution this is to include `dmalloc.h' and compile your
-source code with the `DMALLOC_FUNC_CHECK' flag defined and enable the
-`check-funcs' token. *Note Debug Tokens::.
-
- cc -DDMALLOC -DDMALLOC_FUNC_CHECK file.c
-
- _NOTE_: Once you have compiled your source with DMALLOC_FUNC_CHECK
-enabled, you will have to recompile with it off to disconnect the
-library. *Note Disabling the Library::.
-
- _WARNING_: You should be sure to have `dmalloc.h' included at the
-end of your include file list because dmalloc uses macros and may try
-to change declarations of the checked functions if they come after it.
-
- When this is defined dmalloc will override a number of functions and
-will insert a routine which knows how to check its own arguments and
-then call the real function. Dmalloc can check such functions as
-`bcopy', `index', `strcat', and `strcasecmp'. For the full list see
-the end of `dmalloc.h'.
-
- When you call `strlen', for instance, dmalloc will make sure the
-string argument's fence-post areas have not been overwritten, its file
-and line number locations are good, etc. With `bcopy', dmalloc will
-make sure that the destination string has enough space to store the
-number of bytes specified.
-
- For all of the arguments checked, if the pointer is not in the heap
-then it is ignored since dmalloc does not know anything about it.
-
-
-File: dmalloc.info, Node: Dumping Core, Next: Extensions, Prev: Argument Checking, Up: Programming
-
-3.4 Generating a Core File on Errors
-====================================
-
-If the `error-abort' debug token has been enabled, when the library
-detects any problems with the heap memory, it will immediately attempt
-to dump a core file. *Note Debug Tokens::. Core files are a complete
-copy of the program and it's state and can be used by a debugger to see
-specifically what is going on when the error occurred. *Note Using
-With a Debugger::. By default, the low, medium, and high arguments to
-the library utility enable the `error-abort' token. You can disable
-this feature by entering `dmalloc -m error-abort' (-m for minus) to
-remove the `error-abort' token and your program will just log errors
-and continue. You can also use the `error-dump' token which tries to
-dump core when it sees an error but still continue running. *Note
-Debug Tokens::.
-
- When a program dumps core, the system writes the program and all of
-its memory to a file on disk usually named `core'. If your program is
-called `foo' then your system may dump core as `foo.core'. If you are
-not getting a `core' file, make sure that your program has not changed
-to a new directory meaning that it may have written the core file in a
-different location. Also insure that your program has write privileges
-over the directory that it is in otherwise it will not be able to dump
-a core file. Core dumps are often security problems since they contain
-all program memory so systems often block their being produced. You
-will want to check your user and system's core dump size ulimit
-settings.
-
- The library by default uses the `abort' function to dump core which
-may or may not work depending on your operating system. If the
-following program does not dump core then this may be the problem. See
-`KILL_PROCESS' definition in `settings.dist'.
-
- main()
- {
- abort();
- }
-
- If `abort' does work then you may want to try the following setting
-in `settings.dist'. This code tries to generate a segmentation fault
-by dereferencing a `NULL' pointer.
-
- #define KILL_PROCESS { int *_int_p = 0L; *_int_p = 1; }
-
-
-File: dmalloc.info, Node: Extensions, Next: Error Codes, Prev: Dumping Core, Up: Programming
-
-3.5 Additional Non-standard Routines
-====================================
-
-The library has a number of variables that are not a standard part of
-most malloc libraries:
-
- -- Variable: int dmalloc_errno
- This variable stores the internal dmalloc library error number
- like errno does for the system calls. It can be passed to
- `dmalloc_strerror()' (see below) to get a string version of the
- error. It will have a value of zero if the library has not
- detected any problems.
-
-
- -- Variable: char* dmalloc_logpath
- This variable can be used to set the dmalloc log filename. The env
- variable `DMALLOC_LOGFILE' overrides this variable.
-
-
- Additionally the library provides a number of non-standard malloc
-routines:
-
- -- Function: void dmalloc_shutdown ( void )
- This function shuts the library down and logs the final statistics
- and information especially the non-freed memory pointers. The
- library has code to support auto-shutdown if your system has the
- `on_exit()' call, `atexit()' call, or compiler destructor support
- (see `conf.h'). If you do not have these, then `dmalloc_shutdown'
- should be called right before `exit()' or as the last function in
- `main()'.
-
- main()
- {
- ...
- dmalloc_shutdown();
- exit(0);
- }
-
- -- Function: int dmalloc_verify ( char * PNT )
- This function verifies individual memory pointers that are suspect
- of memory problems. To check the entire heap pass in a NULL or 0
- pointer. The routine returns DMALLOC_VERIFY_ERROR or
- DMALLOC_VERIFY_NOERROR.
-
- _NOTE_: `dmalloc_verify()' can only check the heap with the
- functions that have been enabled. For example, if fence-post
- checking is not enabled, `dmalloc_verify()' cannot check the
- fence-post areas in the heap.
-
- -- Function: unsigned-int dmalloc_debug ( const unsigned int FLAGS )
- This routine sets the debug functionality flags and returns the
- previous flag value. It is helpful in server or cgi-bin programs
- where environmental variables cannot be used. *Note Debugging A
- Server::. For instance, if debugging should never be enabled for a
- program, a call to `dmalloc_debug(0)' as the first call in
- `main()' will disable all the memory debugging from that point on.
-
- _NOTE_: you cannot add or remove certain flags such as signal
- handlers since they are setup at initialization time only.
-
- _NOTE_: you can also use `dmalloc_debug_setup' below.
-
-
- -- Function: unsigned-int dmalloc_debug_current ( void )
- This routine returns the current debug functionality value value.
- This allows you to save a copy of the debug dmalloc settings to be
- changed and then restored later.
-
-
- -- Function: void dmalloc_debug_setup ( const char * OPTIONS_STR )
- This routine sets the global debugging functionality as an option
- string. Normally this would be passed in in the DMALLOC_OPTIONS
- environmental variable. This is here to override the env or for
- circumstances where modifying the environment is not possible or
- does not apply such as servers or cgi-bin programs. *Note
- Debugging A Server::.
-
- Some examples:
-
- /*
- * debug tokens high, threaded lock-on at 20,
- * log to dmalloc.%p (pid)
- */
- dmalloc_debug_setup("debug=0x4f46d03,lockon=20,log=dmalloc.%p");
-
- /*
- * turn on some debug tokens directly and log to the
- * file 'logfile'
- */
- dmalloc_debug_setup(
- "log-stats,log-non-free,check-fence,log=logfile");
-
-
- -- Function: int dmalloc_examine ( const DMALLOC_PNT PNT, DMALLOC_SIZE
- * USER_SIZE_P, DMALLOC_SIZE * TOTAL_SIZE_P, char ** FILE_P,
- int * LINE_P, DMALLOC_PNT * RET_ADDR_P, unsigned long *
- USER_MARK_P, unsigned long * SEEN_P )
- This function returns the size of a pointer's allocation as well
- as the total size given including administrative overhead, file
- and line or the return-address from where it was allocated, the
- last pointer when the pointer was "used", and the number of times
- the pointer has been "seen". It will return DMALLOC_NOERROR or
- DMALLOC_ERROR depending on whether pnt is good or not.
-
- _NOTE_: This function is _certainly_ not provided by most if not
- all other malloc libraries.
-
-
- -- Function: void dmalloc_track ( const dmalloc_track_t TRACK_FUNC )
- Register an allocation tracking function which will be called each
- time an allocation occurs. Pass in NULL to disable. To take a
- look at what information is provided, see the dmalloc_track_t
- function typedef in dmalloc.h.
-
-
- -- Function: unsigned-long dmalloc_mark ( void )
- Return to the caller the current "mark" which can be used later to
- log the pointers which have changed since this mark with the
- `dmalloc_log_changed' function. Multiple marks can be saved and
- used.
-
- This is very useful when using the library with a server which does
- not exit. You can then save a mark before a transaction or event
- happens and then check to see what has changed using the
- `dmalloc_log_changed' function below. *Note Debugging A Server::.
-
- If you `LOG_ITERATION' enabled in your `settings.h' file then the
- entries in the log file will be prepended with the number of memory
- transactions that the library has handled so far. You can also
- enable `LOG_PNT_ITERATION' in `settings.h' to store the memory
- transaction number with each pointer.
-
-
- -- Function: unsigned-long dmalloc_memory_allocated ( void )
- Return to the caller the total number of bytes that have been
- allocated by the library. This is not the current in use but the
- total number of bytes returned by allocation functions.
-
-
- -- Function: unsigned-int dmalloc_page_size ( void )
- Return to the caller the memory page-size being used by the
- library. This should be the same value as the one returned by the
- `getpagesize()' function, if available.
-
-
- -- Function: unsigned-long dmalloc_count_changed ( const unsigned long
- MARK, const int NOT_FREED_B, const int FREE_B )
- Count the pointers that have changed since the mark which was
- returned by `dmalloc_mark'. If `not_freed_b' is set to non-0 then
- count the pointers that have not been freed. If `free_b' is set
- to non-0 then count the pointers that have been freed.
-
- This can be used in conjunction with the `dmalloc_mark()' function
- to help servers which never exit ensure that transactions or
- events are not leaking memory. *Note Debugging A Server::.
-
- unsigned long mark = dmalloc_mark() ;
- ...
- assert(dmalloc_count_changed(mark, 1, 0) == 0) ;
-
-
- -- Function: void dmalloc_log_stats ( void )
- This routine outputs the current dmalloc statistics to the log
- file.
-
- -- Function: void dmalloc_log_unfreed ( void )
- This function logs the unfreed-memory information to the log file.
- This is also useful to log the currently allocated points to the
- log file to be compared against another dump later on.
-
-
- -- Function: void dmalloc_log_changed ( const unsigned long MARK,
- const int NOT_FREED_B, const int FREED_B, const int DETAILS_B
- )
- Log the pointers that have changed since the mark which was
- returned by `dmalloc_mark'. If `not_freed_b' is set to non-0 then
- log the pointers that have not been freed. If `free_b' is set to
- non-0 then log the pointers that have been freed. If `details_b'
- set to non-0 then log the individual pointers that have changed
- otherwise just log the summaries.
-
- This can be used in conjunction with the `dmalloc_mark()' function
- to help servers which never exit find transactions or events which
- are leaking memory. *Note Debugging A Server::.
-
-
- -- Function: void dmalloc_vmessage ( const char * FORMAT, va_list ARGS
- )
- Write a message into the dmalloc logfile using vprintf-like
- arguments.
-
-
- -- Function: void dmalloc_message ( const char * FORMAT, ... )
- Write a message into the dmalloc logfile using printf-like
- arguments.
-
-
- -- Function: void dmalloc_get_stats ( DMALLOC_PNT * HEAP_LOW_P,
- DMALLOC_PNT * HEAP_HIGH_P, unsigned long * TOTAL_SPACE_P,
- unsigned long * USER_SPACE_P, unsigned long *
- CURRENT_ALLOCATED_P, unsigned long * CURRENT_PNT_NP, unsigned
- long * MAX_ALLOCATED_P, unsigned long * MAX_PNT_NP, unsigned
- long * MAX_ONE_P)
- This function return a number of statistics about the current heap.
- The pointers `heap_low_p' and `heap_high_p' will be set to the low
- and high spots in the heap. `total_space_p' will be set to the
- total space in the heap including user space, administrative
- space, and overhead. `user_space_p' will be set to the space
- given to the user process (allocated and free space).
- `current_allocated_p' will be set to the current allocated space
- given to the user process. `current_pnt_np' will be set to the
- current number of pointers allocated by the user process.
- `max_allocated_p' will be set to the maximum allocated space given
- to the user process. `max_pnt_np' will be set to the maximum
- number of pointers allocated by the user process. `max_on_p' will
- be set to the maximum space allocated with one call by the user
- process.
-
-
- -- Function: const-char* dmalloc_strerror ( const int ERROR_NUMBER )
- This function returns the string representation of the error value
- in `error_number' (which probably should be dmalloc_errno). This
- allows the logging of more verbose memory error messages.
-
- You can also display the string representation of an error value
- by a call to the `dmalloc' program with a `-e #' option. *Note
- Dmalloc Program::.
-
-
-
-File: dmalloc.info, Node: Error Codes, Next: Disabling the Library, Prev: Extensions, Up: Programming
-
-3.6 Description of the Internal Error Codes
-===========================================
-
-The following error codes are defined in `error_val.h'. They are used
-by the library to indicate a detected problem. They can be caused by
-the user (`ERROR_TOO_BIG') or can indicate an internal library problem
-(`ERROR_SLOT_CORRUPT'). The `dmalloc' utility can give you the string
-version of the error with the `-e' argument:
-
- $ dmalloc -e 60
- dmalloc: dmalloc_errno value '60' =
- 'pointer is not on block boundary'
-
- Here are the error codes set by the library. They are non
-contiguous on purpose because I add and delete codes all of the time
-and there are sections for various error-code types.
-
-`1 (ERROR_NONE) no error'
- No error. It is good coding practice to set the no-error code to
- be non-0 value because it forces you to set it explicitly.
-
-`2 (INVALID_ERROR)'
- Invalid error number. If the library outputs this error then your
- dmalloc utility may be out of date with the library you linked
- against. This will be returned with all error codes not listed
- here.
-
-`10 (ERROR_BAD_SETUP) initialization and setup failed'
- Bad setup value. This is currently unused but it is intended to
- report on invalid setup configuration information.
-
-`11 (ERROR_IN_TWICE) malloc library has gone recursive'
- Library went recursive. This usually indicates that you are not
- using the threaded version of the library. Or if you are then you
- are not using the `-o' "lock-on" option. *Note Using With
- Threads::.
-
-`13 (ERROR_LOCK_NOT_CONFIG) thread locking has not been configured'
- Thread locking has not been configured. This indicates that you
- attempted to use the `-o' "lock-on" option without linking with
- the thread version of the library. You should probably be using
- `-ldmallocth' _not_ `-ldmalloc' when you are linking. Or you
- should include `.../lib/libdmallocth.a' on your compilation line.
-
-`20 (ERROR_IS_NULL) pointer is null'
- Pointer is null. The program passed a NULL (0L) pointer to `free'
- and you have the `error-free-null' token enabled.
-
-`21 (ERROR_NOT_IN_HEAP) pointer is not pointing to heap data space'
- Pointer is not pointing to heap data space. This means that the
- program passed an out-of-bounds pointer to `free' or `realloc'.
- This could be someone trying to work with a wild pointer or trying
- to free a pointer from a different source than `malloc'.
-
-`22 (ERROR_NOT_FOUND) cannot locate pointer in heap'
- Cannot locate pointer in heap. The user passed in a pointer which
- the heap did not know about. Either this pointer was allocated by
- some other mechanism (like `mmap' or `sbrk' directly) or it is a
- random invalid pointer.
-
- In some rare circumstances, sometimes seen with shared libraries,
- there can be two separate copies of the dmalloc library in a
- program. Each one does not know about the pointers allocated by
- the other.
-
-`23 (ERROR_IS_FOUND) found pointer the user was looking for'
- This indicates that the pointer specified in the address part of
- the environmental variable was discovered by the library. *Note
- Environment Variable::. This error is useful so you can put a
- breakpoint in a debugger to find where a particular address was
- allocated. *Note Using With a Debugger::.
-
-`24 (ERROR_BAD_FILE) possibly bad .c filename pointer'
- A possibly invalid filename was discovered in the dmalloc
- administrative sections. This could indicate some corruption of
- the internal tables. It also could mean that you have a source
- file whose name is longer than 100 characters. See
- `MAX_FILE_LENGTH' in the `settings.dist' file.
-
-`25 (ERROR_BAD_LINE) possibly bad .c file line-number'
- A line-number was out-of-bounds in the dmalloc administrative
- sections. This could indicate some corruption of the internal
- tables. It also could mean that you have a source file containing
- more than `30000' lines of code. See `MAX_LINE_NUMBER' in the
- `settings.dist' file.
-
-`26 (ERROR_UNDER_FENCE) failed UNDER picket-fence magic-number check'
- This indicates that a pointer had its lower bound picket-fence
- magic number overwritten. If the `check-fence' token is enabled,
- the library writes magic values above and below allocations to
- protect against overflow. Most likely this is because a pointer
- below it went past its allocate and wrote into the next pointer's
- space.
-
-`27 (ERROR_OVER_FENCE) failed OVER picket-fence magic-number check'
- This indicates that a pointer had its upper bound picket-fence
- magic space overwritten. If the `check-fence' token is enabled,
- the library writes magic values above and below allocations to
- protect against overflow. Most likely this is because an array or
- string allocation wrote past the end of the allocation.
-
- Check for improper usage of `strcat', `sprintf', `strcpy', and any
- other functions which work with strings and do not protect
- themselves by tracking the size of the string. These functions
- should _always_ be replaced with: `strncat', `snprintf',
- `strncpy', and others.
-
-`28 (ERROR_WOULD_OVERWRITE) use of pointer would exceed allocation'
- This error is generated by the function pointer checking code
- usually enabled with the `check-funcs' token. Dmalloc overloads a
- number of string and memory copying functions and verifies that
- the buffers (if allocated in the heap) would not be overwritten by
- the function.
-
-`30 (ERROR_NOT_START_BLOCK) pointer is not to start of memory block'
- This indicates that the user passed in a pointer to be freed or
- reallocated that was not at the start of the allocation. You
- would get this error, for example, if you allocate and get pointer
- `X' but then try to free `X+1'.
-
-`40 (ERROR_BAD_SIZE) invalid allocation size'
- This error indicates that a size value in the internal structures
- of the library were corrupted. This could be a random pointer
- problem, pointer overflow, or some other corruption.
-
-`41 (ERROR_TOO_BIG) largest maximum allocation size exceeded'
- An allocation asked for memory larger than the configured maximum.
- This is a user configured setting. See `LARGEST_ALLOCATION' in
- the `settings.dist' file. It is used to protect against wild
- allocation sizes. If you have super large allocation sizes then
- you should tune the `LARGEST_ALLOCATION' value appropriately.
-
-`43 (ERROR_ALLOC_FAILED) could not grow heap by allocating memory'
- The library could not allocate more heap space and the program has
- run out of memory. This could indicate that you've overflowed
- some system imposed limit. On many operation systems, the
- `ulimit' call can tune system defaults. The library uses a lot
- more memory compared to the system malloc library because it
- stores a lot more information about the allocated pointers.
-
- _NOTE_: This also may be due to an inability of your operating
- system to use the `mmap' system call to allocate memory. You may
- need to force the `USE_MMAP' setting to be 0. Please use the
- forums at URL `http://dmalloc.com/' to report issues with this.
-
-`45 (ERROR_OVER_LIMIT) over user specified allocation limit'
- The library has allocated more memory than was specified in the
- memory-limit environmental variable. *Note Environment Variable::.
-
-`60 (ERROR_NOT_ON_BLOCK) pointer is not on block boundary'
- The user tried to free or realloc a pointer that was not pointing
- to a block boundary. You would get this error, for example, if
- you allocate and get pointer `X' but then try to free `X+1'.
-
-`61 (ERROR_ALREADY_FREE) tried to free previously freed pointer'
- The user tried to free a pointer than has already been freed.
- This is a very common mistake and can lead to serious problems.
- It can be because a destructor is being called twice for some
- reason. Although tracking down the specific source is highly
- recommended, it is good to set pointers to NULL (0L) after you
- free them as a rule.
-
-`67 (ERROR_FREE_OVERWRITTEN) free space has been overwritten'
- If either the `free-blank' or `check-blank' tokens are enabled
- then the library will overwrite memory when it is freed with the
- "dmalloc-free" byte (hex 0xdf, octal 0337, decimal 223). If the
- program writes into this space, then the library will detect the
- write and trigger this error. This could indicate that the
- program is using a pointer after it has been freed.
-
-`70 (ERROR_ADMIN_LIST) bad admin structure list'
- An internal corruption in the library's administrative structures
- has been detected. This could be a random pointer problem, pointer
- overflow, or some other corruption.
-
-`72 (ERROR_ADDRESS_LIST) internal address list corruption'
- An internal corruption in the library's administrative structures
- has been detected. This could be a random pointer problem, pointer
- overflow, or some other corruption.
-
-`73 (ERROR_SLOT_CORRUPT) internal memory slot corruption'
- An internal corruption in the library's administrative structures
- has been detected. This could be a random pointer problem, pointer
- overflow, or some other corruption.
-
-
-
-File: dmalloc.info, Node: Disabling the Library, Next: Using With C++, Prev: Error Codes, Up: Programming
-
-3.7 How to Disable the library
-==============================
-
-If you would like to disable the library's detailed checking features
-during a particularly allocation intensive section of code, you can do
-something like the following:
-
- unsigned int dmalloc_flags;
- ...
- /* turn off all debug flags and save a copy of old value */
- dmalloc_flags = dmalloc_debug(0);
-
- /* section of a lot of allocations */
- ...
- /* end of section */
-
- /* restore the dmalloc flag setting */
- dmalloc_debug(dmalloc_flags);
-
- When you are finished with the development and debugging sessions,
-you may want to disable the dmalloc library and put in its place either
-the system's memory-allocation routines, gnu-malloc, or maybe your own.
-Attempts have been made to make this a reasonably painless process. The
-ease of the extraction depends heavily on how many of the library's
-features your made use of during your coding.
-
- Reasonable suggestions are welcome as to how to improve this process
-while maintaining the effectiveness of the debugging.
-
- * If you want to _totally_ disable the dmalloc library then you will
- need to recompile all the C files that include `dmalloc.h' while
- defining `DMALLOC_DISABLE'. This will cause the dmalloc macros to
- not be applied. *Note Allocation Macros::.
-
- cc -g -DDMALLOC_DISABLE file.c
-
- An alternative is to surround the `dmalloc.h' inclusion or any
- direct dmalloc references with an `#ifdef DMALLOC' and then just
- remove the -DDMALLOC.
-
- #ifdef DMALLOC
- #include "dmalloc.h"
- #endif
-
- main()
- {
- ...
-
- #ifdef DMALLOC
- dmalloc_verify(0L);
- #endif
- return 0;
- }
-
- // to get dmalloc information
- $ cc -DDMALLOC main.c
-
- // without dmalloc information
- $ cc main.c
-
- * If you compiled any of your source modules with
- `DMALLOC_FUNC_CHECK' defined then you must first recompile all
- those modules without the flag enabled.
-
- If you have disabled dmalloc with the `DMALLOC_DISABLED' flag or
- never included `dmalloc.h' in any of your C files, then you will
- not need to recompile your sources when you need to disable the
- library.
-
- If you get unresolved references like `_dmalloc_malloc' or
- `_dmalloc_bcopy' then something was not disabled as it should have
- been.
-
-
-File: dmalloc.info, Node: Using With C++, Next: Using With a Debugger, Prev: Disabling the Library, Up: Programming
-
-3.8 Using the Library with C++
-==============================
-
-For those people using the C++ language, the library tries to configure
-and build `libdmallocxx.a' library. This library should be linked into
-your C++ programs instead of `libdmalloc.a'.
-
- Dmalloc is not as good with C++ as C because the dynamic memory
-routines in C++ are `new()' and `delete()' as opposed to `malloc()' and
-`free()'. Since new and delete are usually not used as functions but
-rather as `x = new type', there is no easy way for dmalloc to pass in
-file and line information unfortunately. The `libdmallocxx.a' library
-provides the file `dmallocc.cc' which effectively redirects `new' to
-the more familiar `malloc' and `delete' to the more familiar `free'.
-
- _NOTE_: The author is not a C++ hacker so feedback in the form of
-other hints and ideas for C++ users would be much appreciated.
-
-
-File: dmalloc.info, Node: Using With a Debugger, Next: Using With Threads, Prev: Using With C++, Up: Programming
-
-3.9 Using Dmalloc With a Debugger
-=================================
-
-Here are a number of possible scenarios for using the dmalloc library to
-track down problems with your program.
-
- You should first enable a logfile filename and turn on a set of debug
-features. You can use `dmalloc -l logfile low' to accomplish this. If
-you are interested in having the error messages printed to your
-terminal as well, enable the `print-messages' token by typing `dmalloc
--p print-messages' afterwards. *Note Dmalloc Program::.
-
- Now you can enter your debugger (I use the _excellent_ GNU debugger
-gdb), and put a break-point in `dmalloc_error()' which is the internal
-error routine for the library. When your program is run, it will stop
-there if a memory problem is detected.
-
- If you are using GDB, I would recommend adding the contents of
-`dmalloc.gdb' in the `contrib' subdirectory to your `.gdbinit' file in
-your home directory. This enables the `dmalloc' command which will
-prompt you for the arguments to the dmalloc command and will set a
-break point in `dmalloc_error()' automatically.
-
- If you are using shared libraries, you may want to execute the
-following commands initially to load in dmalloc and other library
-symbols:
-
- (gdb) sharedlibrary
- (gdb) add-shared-symbol-files
-
-* Menu:
-
-* General Errors:: Diagnosing general problems with a debugger.
-* Memory Leaks:: Tracking down non-freed memory.
-* Fence-Post Overruns:: Diagnosing fence-post overwritten memory.
-* Translate Return Addresses:: Convert ra return-addresses into a location.
-
-
-File: dmalloc.info, Node: General Errors, Next: Memory Leaks, Prev: Using With a Debugger, Up: Using With a Debugger
-
-3.9.1 Diagnosing General Problems with a Debugger
--------------------------------------------------
-
-If your program stops at the `dmalloc_error()' routine then one of a
-number of problems could be happening. Incorrect arguments could have
-been passed to a malloc call: asking for negative number of bytes,
-trying to realloc a non-heap pointer, etc.. There also could be a
-problem with the system's allocations: you've run out of memory, some
-other function in your program is using the heap allocation functions
-`mmap' or `sbrk', etc.. However, it is most likely that some code that
-has been executed was naughty.
-
- To get more information about the problem, first print via the
-debugger the dmalloc_errno variable to get the library's internal error
-code. You can suspend your debugger and run `dmalloc -e
-value-returned-from-print' to get an English translation of the error.
-A number of the error messages are designed to indicate specific
-problems with the library administrative structures and may not be
-user-friendly.
-
- If the problem was due to the arguments or system allocations then
-the source of the problem has been found. However, if some code did
-something wrong, you may have some more work to do to locate the actual
-problem. The `check-heap' token should be enabled and the interval
-setting disabled or set to a low value so that the library can find the
-problem as close as possible to its source. The code that was execute
-right before the library halted, can then be examined closely for
-irregularities. *Note Debug Tokens::, *Note Dmalloc Program::.
-
- You may also want to put calls to `dmalloc_verify(0)' in your code
-before the section which generated the error. This should locate the
-problem faster by checking the library's structures at that point.
-*Note Extensions::.
-
-
-File: dmalloc.info, Node: Memory Leaks, Next: Fence-Post Overruns, Prev: General Errors, Up: Using With a Debugger
-
-3.9.2 Tracking Down Non-Freed Memory
-------------------------------------
-
-So you've run your program, examined the log-file and discovered (to
-your horror) some un-freed memory. Memory leaks can become large
-problems since even the smallest and most insignificant leak can starve
-the program given the right circumstances.
-
- not freed: '0x45008' (12 bytes) from 'ra=0x1f8f4'
- not freed: '0x45028' (12 bytes) from 'unknown'
- not freed: '0x45048' (10 bytes) from 'argv.c:1077'
- known memory not freed: 1 pointer, 10 bytes
- unknown memory not freed: 2 pointers, 24 bytes
-
- Above you will see a sample of some non-freed memory messages from
-the logfile. In the first line the `0x45008' is the pointer that was
-not freed, the `12 bytes' is the size of the unfreed block, and the
-`ra=0x1f8f4' or return-address shows where the allocation originated
-from. *Note Translate Return Addresses::.
-
- The systems which cannot provide return-address information show
-`unknown' instead, as in the 2nd line in the sample above.
-
- The `argv.c:1077' information from the 3rd line shows the file and
-line number which allocated the memory which was not freed. This
-information comes from the calls from C files which included
-`dmalloc.h'. *Note Allocation Macros::.
-
- At the bottom of the sample it totals the memory for you and breaks
-it down to known memory (those calls which supplied the file/line
-information) and unknown (the rest).
-
- Often, you may allocate memory in via `strdup()' or another routine,
-so the logfile listing where in the `strdup' routine the memory was
-allocated does not help locate the true source of the memory leak - the
-routine that called `strdup'. Without a mechanism to trace the calling
-stack, there is no way for the library to see who the caller of the
-caller (so to speak) was.
-
- However, there is a way to track down unfreed memory in this
-circumstance. You need to compile the library with `STORE_SEEN_COUNT'
-defined in `conf.h'. The library will then record how many times a
-pointer has been allocated or freed. It will display the unfreed
-memory as:
-
- not freed: '0x45008|s3' (12 bytes) from 'ra=0x1f8f4'
-
- The `STORE_SEEN_COUNT' option adds a `|s#' qualifier to the address.
-This means that the address in question was seen `#' many times. In
-the above example, the address `0x45008' was seen `3' times. The last
-time it was allocated, it was not freed.
-
- How can a pointer be "seen" 3 times? Let say you `strdup' a string
-of 12 characters and get address `0x45008' - this is #1 time the
-pointer is seen. You then free the pointer (seen #2) but later
-`strdup' another 12 character string and it gets the `0x45008' address
-from the free list (seen #3).
-
- So to find out who is allocating this particular 12 bytes the 3rd
-time, try `dmalloc -a 0x45008:3'. The library will stop the program the
-third time it sees the `0x45008' address. You then enter a debugger
-and put a break point at `dmalloc_error'. Run the program and when the
-breakpoint is reached you can examine the stack frame to determine who
-called `strdup' to allocate the pointer.
-
- To not bother with the `STORE_SEEN_COUNT' feature, you can also run
-your program with the `never-reuse' token enabled. This token will
-cause the library to never reuse memory that has been freed. Unique
-addresses are always generated. This should be used with caution since
-it may cause your program to run out of memory.
-
-
-File: dmalloc.info, Node: Fence-Post Overruns, Next: Translate Return Addresses, Prev: Memory Leaks, Up: Using With a Debugger
-
-3.9.3 Diagnosing Fence-Post Overwritten Memory
-----------------------------------------------
-
-For a definition of fence-posts please see the "Features" section.
-*Note Features::.
-
- To detect fence-post overruns, you need to enable the `check-fence'
-token. *Note Debug Tokens::. This pads your allocations with some
-extra bytes at the front and the end and watches the space to make sure
-that they don't get overwritten. _NOTE:_ The library cannot detect if
-this space gets read, only written.
-
- If you have encountered a fence-post memory error, the logfile
-should be able to tell you the offending address.
-
- free: failed UNDER picket-fence magic-number checking:
- pointer '0x1d008' from 'dmalloc_t.c:427'
- Dump of proper fence-bottom bytes: '\e\253\300\300\e\253\300\300'
- Dump of '0x1d008'-8: '\e\253\300\300WOW!\003\001pforger\023\001\123'
-
- The above sample shows that the pointer `0x1d008' has had its lower
-fence-post area overwritten. This means that the code wrote below the
-bottom of the address or above the address right below this one. In the
-sample, the string that did it was `WOW!'.
-
- The library first shows you what the proper fence-post information
-should look like, and then shows what the pointer's bad information was.
-If it cannot print the character, it will display the value as `\ddd'
-where ddd are three octal digits.
-
- By enabling the `check-heap' debugging token and assigning the
-interval setting to a low number, you should be able to locate
-approximately when this problem happened. *Note Debug Tokens::, *Note
-Dmalloc Program::.
-
-
-File: dmalloc.info, Node: Translate Return Addresses, Prev: Fence-Post Overruns, Up: Using With a Debugger
-
-3.9.4 Translating Return Addresses into Code Locations
-------------------------------------------------------
-
-The following gdb commands help you translate the return-addresses (ra=)
-entries in the logfile into locations in your code. I've provided a
-`ra_info.pl' perl script in the `contrib/' directory with the dmalloc
-sources which seems to work well with gdb. But, if you need to do it
-manually, here are the commands in gdb to use.
-
- # you may need to add the following commands to load in shared libraries
- (gdb) sharedlibrary
- (gdb) add-shared-symbol-files
-
- (gdb) x 0x10234d
- 0x10234d <_findbuf+132>: 0x7fffceb7
-
- (gdb) info line *(0x82cc)
- Line 1092 of argv.c starts at pc 0x7540 and ends at 0x7550.
-
- In the above example, gdb was used to find that the two non-freed
-memory pointers were allocated in `_findbuf()' and in file argv.c line
-1092 respectively. The `x address' (for examine) can always be used on
-the return-addresses but the `info line *(address)' will only work if
-that file was compiled using the `-g' option and has not been stripped.
-This limitation may not be true in later versions of gdb.
-
-
-File: dmalloc.info, Node: Using With Threads, Next: Using With Cygwin, Prev: Using With a Debugger, Up: Programming
-
-3.10 Using the Library with a Thread Package
-============================================
-
-Threads are special operating system facilities which allow your
-programs to have multiple threads of execution (hence the name). In
-effect your program can be doing a number of things "at the same time".
-This allows you to take full advantage of modern operating system
-scheduling and multi-processor hardware. If I've already lost you or
-if any of the terminology below does not make sense, see manuals about
-POSIX threads (pthreads) before going any further. O'Reilly publishes
-a pretty good pthreads manual for example.
-
- To use dmalloc with your threaded program, you will first need to
-make sure that you are linking with `libdmallocth.a' which is the
-threaded version of the library. The support for threads in dmalloc
-should be adequate for most if not all testing scenarios. It provides
-support for mutex locking itself to protect against race conditions that
-result in multiple simultaneous execution. One of the major problems is
-that most thread libraries uses malloc themselves. Since all of
-dmalloc's initialization happens when a call to malloc is made, we may
-be attempting to initialize or lock the mutex while the thread library
-is booting up. A very bad thing since thread libraries don't expect to
-recurse.
-
- The solution to this problem is to have the library not initialize or
-lock its mutex variable until after a certain number of allocation calls
-have been completed. If the library does not wait before initializing
-the locks, the thread library will probably core dump. If it waits too
-long then it can't protect itself from multiple execution and it will
-abort or other bad things might happen. You adjust the number of times
-to wait at runtime with the `lock-on' option to the dmalloc program
-(for example `dmalloc -o 20'). *Note Dmalloc Program::. Times values
-between 5 and 30 are probably good although operating systems will vary
-significantly. You know its too low if your program immediately core
-dumps and too high if the dmalloc library says its gone recursive
-although with low values, you might get either problem.
-
- An additional complexity is when we are initializing the lock before
-mutex locking around the library. As mentioned, the initialization
-itself may generate a malloc call causing the library to go recursive
-and the pthread library to possibly core dump. With the THREAD_INIT_LOCK
-setting defined in `settings.h', you can tune how many times before we
-start locking to try and initialize the mutex lock. It defaults to 2
-which seems to work for me. If people need to have this runtime
-configurable or would like to present an alternative default, please let
-me know.
-
- So to use dmalloc with a threaded program, follow the following steps
-carefully.
-
- 1. Follow the installation instructions on how to configure, make,
- and install the library but make sure to add the
- `--enable-threads' argument to configure. *Note Installation::.
-
- 2. Typing `make' should be enough to build the threaded versions of
- the libraries including `libdmallocth.a'.
-
- 3. Link the dmalloc threaded library into your program. The dmalloc
- library should probably be placed at or near the end of the library
- list.
-
- 4. Enable the debugging options that you need by typing `dmalloc -l
- logfile -i 100 low' (for example). `dmalloc --usage' will provide
- verbose usage info for the dmalloc program. *Note Dmalloc
- Program::.
-
- 5. Enable the "lock-on" option (for example `dmalloc -o 20'). As
- explained above, you may have to try different values before
- getting it right. Values between 5 and 30 are probably good.
-
- 6. If you get a dmalloc error #13 `thread locking has not been
- configured' then you have not compiled you program with the
- threaded version of dmalloc or there was a problem building it.
-
- 7. If everything works, you should be able to run your program, have
- it not immediately crash, and the dmalloc library should not
- complain about recursion.
-
-
- If you have any specific questions or would like addition information
-posted in this section, please let me know. Experienced thread
-programmers only please.
-
-
-File: dmalloc.info, Node: Using With Cygwin, Next: Debugging A Server, Prev: Using With Threads, Up: Programming
-
-3.11 Using the library with Cygwin environment.
-===============================================
-
-The Cygwin environment is a Linux-like environment for Windows. It
-provides Linux look and feel as well as a programming environment. See
-URL `http://www.cygwin.com/' for more details.
-
- Cygwin uses the `GetEnvironmentVariableA' function to read in
-environmental variables instead of `getenv'. This functions are used
-to get the value of the `DMALLOC_OPTIONS' variable which sets the
-debugging options. *Note Environment Variable::.
-
- As of right now, dmalloc is not detecting the
-`GetEnvironmentVariableA' function correctly so you may need to tune
-the `conf.h' file to get it to work. See the sections on
-`HAVE_GETENVIRONMENTVARIABLEA' and `GETENV_SAVE' settings. Feedback is
-welcome here.
-
- If you still have problems reading in the environmental variables,
-you can work around this issue. You can add some code into the `main'
-function in your program to initialize the dmalloc flags yourself.
-Here is a code sample:
-
- main(int argc, char **argv)
- {
- #ifdef DMALLOC
- /*
- * Get environ variable DMALLOC_OPTIONS and pass the settings string
- * on to dmalloc_debug_setup to setup the dmalloc debugging flags.
- */
- dmalloc_debug_setup(getenv("DMALLOC_OPTIONS"));
- #endif
-
- /* rest of code in main starts here */
- ...
- }
-
- The `#ifdef' is just a good idea. I means that when debugging with
-dmalloc you need to compile your code with `-DDMALLOC'. When you are
-done debugging you can remove the flag and the call to
-`dmalloc_debug_setup' will be removed.
-
- Please let me know if there is a better way to do this.
-
-
-File: dmalloc.info, Node: Debugging A Server, Next: Logfile Details, Prev: Using With Cygwin, Up: Programming
-
-3.12 Debugging Memory in a Server or Cgi-Bin Process
-====================================================
-
-There are some specified challenges when trying to debug allocations in
-processes which do not startup, run, and then shutdown. Server
-processes (often called daemons) are those that are started (often at
-system boot time) and run perpetually. Other processes which are
-difficult to debug are CGI programs which are spawned by web servers or
-when you want to start debugging inside of a child process.
-
- 1. Build your server or cgi-bin program with the dmalloc library like
- any other program. *Note Getting Started::.
-
- 2. Add code into your program to enable the library flags to perform
- the memory checks that you require. Since these programs often do
- not run from the command line, you cannot use the dmalloc utility
- program and modify the process environment. *Note Dmalloc
- Program::. The library provides a couple of functions to set the
- debugging flags when a program is running.
-
- 3. To set the memory debugging flags, use the `dmalloc_debug_setup'
- function which takes a string in the same format of the
- `DMALLOC_OPTIONS' environmental variable. *Note Environment
- Variable::. Use the dmalloc utility with the `-n' no-changes
- argument to see the appropriate settings for the `DMALLOC_OPTIONS'
- environmental variable.
-
- > dmalloc -n -l logfile high
- Outputed:
- DMALLOC_OPTIONS=debug=0x4f4ed03,log=logfile
- export DMALLOC_OPTIONS
-
- So if you want to turn on `high' debugging and log to the file
- `logfile' then you would copy the above `DMALLOC_OPTIONS' value
- into a call to `dmalloc_debug_setup'. Notice that I have
- surrounded the dmalloc code with an `#ifdef DMALLOC' so you'll
- have to compile using the `-DDMALLOC' flag.
-
- main()
- {
- #ifdef DMALLOC
- /* set the 'high' flags */
- dmalloc_debug_setup("debug=0x4f47d03,log=logfile");
- #endif
- ...
- }
-
- _Please note_ that the `dmalloc_debug_setup' function does not
- know about `high', `low', or other debug tokens but needs the
- actual flag values.
-
- 4. For earlier versions of the library (before 5.0.0) without
- `dmalloc_debug_setup', the `dmalloc_debug' function is available
- to set the flags directly, but it cannot adjust the logfile name
- and the other environment settings. You can use the dmalloc
- utility program to see what the numerical equivalent of the `high'
- token.
-
- > dmalloc -n high
- Outputed:
- DMALLOC_OPTIONS=debug=0x4f4ed03
- export DMALLOC_OPTIONS
-
- You can then take the `0x4f4ed03' hexadecimal number and call
- `dmalloc_debug' with that number.
-
- main()
- {
- #ifdef DMALLOC
- /* set the 'high' flags */
- dmalloc_debug(0x4f4ed03);
- #endif
- ...
- }
-
- 5. Even with the settings enabled, you may have problems getting the
- logfile to be written if your program is running as `nobody' or
- another user without permissions for security reasons. This is
- especially true for cgi-bin programs. In this case you should
- specify a full path to your malloc logfile in a world writable
- directory (ex.
- `dmalloc_debug_setup("debug=0x4f47d03,log=/var/tmp/malloc");').
- Watch for programs which change into other directories and which
- may cause logfiles specified as relative or local paths to be
- dropped in other locations. You may always want to use a full
- path logfile.
-
- 6. Once you have your settings enabled and your log is being
- generated, you may now want to check out how your process is doing
- in terms of unfreed memory. Since it is not shutting down, the
- automatic unfreed log entries are not being dropped to the
- logfile. By using the `dmalloc_mark' and `dmalloc_log_changed'
- functions, you can set a mark point at a certain place inside of
- your program, and then later see whether there are any unfreed
- pointers since the mark.
-
- main()
- {
- #ifdef DMALLOC
- /* set the 'high' flags */
- dmalloc_debug_setup("debug=0x4f47d03,log=logfile");
- #endif
-
- while (1) {
- /* accept a connection from a client */
- accept_connection();
-
- while (1) {
- #ifdef DMALLOC
- unsigned long mark;
- /* get the current dmalloc position */
- mark = dmalloc_mark() ;
- #endif
- /* process the connection */
- if (process_connection() != PROCESS_OK) {
- break;
- }
- #ifdef DMALLOC
- /*
- * log unfreed pointers that have been added to
- * the heap since mark
- */
- dmalloc_log_changed(mark,
- 1 /* log unfreed pointers */,
- 0 /* do not log freed pointers */,
- 1 /* log each pnt otherwise summary */);
- #endif
- }
- /* close the connection with the client */
- close_connection();
- }
- ...
- }
-
- Usually you would set the mark after the initializations and before
- each transaction is processed. Then for each transaction you can
- use `dmalloc_log_changed' to show the unfreed memory. *Note
- Extensions::.
-
- 7. You can also use the `dmalloc_log_stats' function to dump general
- information about the heap. Also, remember that you can use the
- `dmalloc_message' and `dmalloc_vmessage' routines to annotate the
- dmalloc logfile with details to help you debug memory problems.
- *Note Extensions::.
-
-
-
-File: dmalloc.info, Node: Logfile Details, Next: Other Hints, Prev: Debugging A Server, Up: Programming
-
-3.13 Explanation of the Logfile Output
-======================================
-
-Most of time you will be using the logfile output from library as the
-sole information source for diagnosing problems in and getting
-statistics for your program.
-
- 1098918225: 3: Dmalloc version 'Version 5.5.2'
- 1098918225: 3: flags = 0x4f4e503, logfile '/tmp/dmalloc.log'
- 1098918225: 3: interval = 500, addr = 0, seen # = 0, limit = 0
- 1098918225: 3: starting time = 1098918225
- 1098918225: 3: process pid = 32406
- 1098918226: 4: WARNING: tried to free(0) from foo.c:708'
- 1098918228: 20: *** free: at 'unknown' pnt '0xed310080|s2': \
- size 12, alloced at 'bar.c:102'
- 1098918230: 50: ERROR: heap_check: free space was overwritten (err 67)
- 1098918230: 50: error details: checking free pointer
- 1098918230: 50: pointer '0x291c5' from 'unknown' prev access 'foo.c:787'
-
- Here is a short example of some logfile information. Each of the
-lines are prefixed by the time (in epoch seconds since 1/1/1970) and
-the iteration or call count which is the number of times the library
-has been called from malloc, free, verify, etc.. In the above example,
-the first 5 log entries where written at epoch 1098918225 or `Wed Oct
-27 19:03:45 2004 EST' and they were generated by the 3rd call to the
-library. See the `settings.dist' file entries to tune what elements
-appear on each line: LOG_TIME_NUMBER, LOG_ITERATION, LOG_PID, etc..
-You can convert the epoch seconds to a date from the command line with
-the following perl code: `perl -e 'print localtime($ARGV[0])."\n";'
-epoch-seconds-number'
-
- The first 5 lines of the sample logfile contain header information
-for all logfiles. They show the version number and URL for the library
-as well as all of the settings that the library is currently using.
-These settings are tuned using the dmalloc utility program. *Note
-Dmalloc Program::. The 5th line of is the process-id that generated
-the logfile.
-
- The 6th line in the above example is what causes the logfile to be
-opened and the header to be written. It is a warning that tells you
-that you tried to free a 0L pointer at a certain location. You can
-disable these warnings by setting `ALLOW_FREE_NULL_MESSAGE' to 0 in
-`settings.dist'.
-
- Line 7 is an example of a transaction log that you get when you
-enable the `log-trans' debug token. *Note Debug Tokens::. This line
-shows that a call to free was made from an unknown location. It is
-unknown because the file in question did not include `dmalloc.h' to get
-file/line-number information. The call to free was freeing the pointer
-address `0xed310080' which we have "seen" 2 times (s2). We saw the
-pointer when it was allocated and then we are seeing it again when it
-was freed. Because the library is reusing pointers (reclaiming freed
-memory) the seen count helps to track how many times a pointer was
-used. The last part of the line shows that the pointer to be freed was
-allocated by `bar.c' line 102.
-
- Lines 8-10 is the next problem that the library caught and this one
-is an error. It happened 5 seconds from the start of the log
-(1098918230) and at the 50th call into the library. It shows that an
-allocation that had been freed then was overwritten. This may imply
-that someone tried to use memory after it was freed or that there was a
-loose pointer reference. The last two lines give more details about
-when the error was discovered, the address of the offending pointer,
-and when the pointer was previous accessed, in this case freed. To
-discover where this problem is happening, you can use a debugger.
-*Note Using With a Debugger::.
-
-
-File: dmalloc.info, Node: Other Hints, Prev: Logfile Details, Up: Programming
-
-3.14 Various Other Hints That May Help
-======================================
-
-One of the problems that is often seen is that a program crashes in the
-`libc' memory code and you suspect a heap memory problem but both
-dmalloc and maybe valgrind don't show any problems. One of the big
-problems with debugging is that it is very difficult to do it without
-effecting how the program is run. Sometimes errors are due to subtle
-race conditions that are only seen when the program is running at full
-speed - not slowed down by debugging code.
-
- This is especially true with threaded code which is often heavily
-affected when used with dmalloc and valgrind. Older versions of
-valgrid (maybe current) forced all threads into a single virtual system
-by design, which often masks reentrance bugs.
-
- One way to work through these issues is to run with the library with
-very few debugging flags enabled. Many memory problems are fence-post
-areas so start with dmalloc checking just the fence post and error
-logging enabled:
-
- dmalloc -d 0 -l dmalloc.log -p log-stats -p log-non-free -p check-fence -p check-funcs
-
- This enabled a small number of checks and should cause your program
-to run at close to full speed. The library has never been optimized for
-speed so some performance penalties will be felt.
-
-
-File: dmalloc.info, Node: Dmalloc Program, Next: Source Code, Prev: Programming, Up: Top
-
-4 Dmalloc Utility Program
-*************************
-
-The dmalloc program is designed to assist in the setting of the
-environment variable `DMALLOC_OPTIONS'. *Note Environment Variable::.
-It is designed to print the shell commands necessary to make the
-appropriate changes to the environment. Unfortunately, it cannot make
-the changes on its own so the output from dmalloc should be sent
-through the `eval' shell command which will do the commands.
-
-* Menu:
-
-* Shell Alias:: Using a shell alias with the utility.
-* Utility Usage:: How to use the dmalloc program.
-* Environment Variable:: Environment variable name and features.
-* Debug Tokens:: Description of the debugging tokens.
-* RC File:: Format of the runtime configuration file.
-
-
-File: dmalloc.info, Node: Shell Alias, Next: Utility Usage, Prev: Dmalloc Program, Up: Dmalloc Program
-
-4.1 Using a Shell Alias with the Utility
-========================================
-
-The dmalloc program is designed to assist in the setting of the
-environment variable `DMALLOC_OPTIONS'. *Note Environment Variable::.
-It is designed to print the shell commands necessary to make the
-appropriate changes to the environment. Unfortunately, it cannot make
-the changes on its own so the output from dmalloc should be sent
-through the `eval' shell command which will do the commands.
-
- With shells that have aliasing or macro capabilities: csh, bash, ksh,
-tcsh, zsh, etc., setting up an alias to dmalloc to do the eval call is
-recommended. Bash, ksh, and zsh users should add the following to their
-`.bashrc', `.profile', or `.zshrc' file respectively (notice the `-b'
-option for bourne shell output):
-
- function dmalloc { eval `command dmalloc -b $*`; }
-
- If your shell does not support the `command' function then try:
-
- function dmalloc { eval `\dmalloc -b $*`; }
- or
- function dmalloc { eval `/usr/local/bin/dmalloc -b $*`; }
-
- If you are _still_ using csh or tcsh, you should add the following
-to your `.cshrc' file (notice the `-C' option for c-shell output):
-
- alias dmalloc 'eval `\dmalloc -C \!*`'
-
- This allows the user to execute the dmalloc command as `dmalloc
-arguments'.
-
- Users of versions of the Bourne shell (usually known as /bin/sh) that
-don't have command functions will need to send the output to a temporary
-file and the read it back in with the "." command:
-
- $ dmalloc -b arguments ... > /tmp/out
- $ . /tmp/out
-
- By the way, if you are looking for a shell, I heartily recommend
-trying out zsh. It is a bourne shell written from scratch with much
-the same features as tcsh without the csh crap.
-
- _NOTE_: After you add the alias to the file you need to log out and
-log back in to have it take effect, or you can execute the above
-appropriate command on the command line. If you enter `dmalloc
-runtime' and see any output with DMALLOC_OPTIONS in it then the alias
-did not work.
-
-
-File: dmalloc.info, Node: Utility Usage, Next: Environment Variable, Prev: Shell Alias, Up: Dmalloc Program
-
-4.2 How to Use the Dmalloc Program
-==================================
-
-The most basic usage for the program is `dmalloc [-bC] tag'. The `-b'
-or `-C' (either but not both flags used at a time) are for generating
-Bourne or C shell type commands respectively. dmalloc will try and use
-the `SHELL' environment variable to determine whether bourne or C shell
-commands should be generated but you may want to explicitly specify the
-correct flag.
-
- The `tag' argument to dmalloc should match a line from the user's
-runtime configuration file or should be one of the built-in tags.
-*Note RC File::. If no tag is specified and no other option-commands
-used, dmalloc will display the current settings of the environment
-variable. It is useful to specify one of the verbose options when doing
-this.
-
- To find out the usage for the debug malloc program try `dmalloc
---usage-long'. The standardized usage message that will be displayed is
-one of the many features of the argv library included with this package.
-
- It is available on the web at URL `http://256.com/sources/argv/'.
-See the documentation there for more information.
-
- Here is a detailed list of the flags that can passed to dmalloc:
-
-`-a address'
- Set the `addr' part of the `DMALLOC_OPTIONS' variable to address
- (or alternatively address:number).
-
-`-b'
- Output Bourne shell type commands. Usually handled automagically.
-
-`-C'
- Output C shell type commands. Usually handled automagically.
-
-`-c'
- Clear/unset all of the settings not specified with other
- arguments. You can do this automatically when you set to a new
- tag with the `-r' option.
-
- _NOTE_: clear will never unset the `debug' setting. Use `-d 0' or
- a tag to `none' to achieve this.
-
-`-d bitmask'
- Set the `debug' part of the `DMALLOC_OPTIONS' env variable to the
- bitmask value which should be in hex. This is overridden (and
- unnecessary) if a tag is specified.
-
-`-D'
- List all of the debug-tokens. Useful for finding a token to be
- used with the `-p' or `-m' options. Use with `-v' or `-V' verbose
- options.
-
-`-e errno'
- Print the dmalloc error string that corresponds to the error number
- errno.
-
-`-f filename'
- Use this configuration file instead of the RC file
- `$HOME/.dmallocrc'.
-
-`-g'
- Output gdb type commands for using inside of the gdb debugger.
-
-`-h (or --help)'
- Output a help message for the utility.
-
-`-i number'
- Set the checking interval to number. If the `check-heap' token is
- enabled, this causes the library to only check the heap every Nth
- time which can _significantly_ increase the running speed of your
- program. If a problem is found, however, this limits your ability
- to determine when the problem occurred. Try values of 50 or 100
- initially.
-
-`-k'
- Do not reset all of the settings when a tag is specified. This
- specifically overrides the `-r' option and is provided here to
- override `-r' if it has been added to the dmalloc alias.
-
-`-l filename'
- Write the debugging output and other log-file information to the
- filename. Filename can include some of the following patterns
- which get expanded into strings:
-
- `%h'
- Gets expanded into the hostname if the `gethostname()'
- function is available.
-
- `%i'
- Gets expanded into the thread-id if the library has been
- configure to be used with threads. *Note Using With
- Threads::. See the end of the `settings.dist' file for
- settings which return the thread-id and convert it into a
- string.
-
- `%p'
- Gets expanded into the process-id if the `getpid()' function
- is available.
-
- `%t'
- Gets expanded into the time value in seconds if the `time()'
- function is available.
-
- `%u'
- Gets expanded into the user-id number if the `getuid()'
- function is available.
-
-
- Some examples:
-
- # logfile produced with pid extension:
- # logfile.8412 or logfile.31451
- dmalloc -l logfile.%p
-
- # hostname and time extensions:
- # dmalloc-box1.foo.com-1055213240
- dmalloc -l dmalloc-%h-%t
-
- # if threads enabled, have thread-id extension: log.thread32
- dmalloc -l log.thread%i
-
-`-L'
- Write the debug-value into the environment not in hex but by
- individual debug-tokens in long form.
-
-`-m token(s)'
- Remove (minus) the debug capabilities of token(s) from the current
- debug setting or from the selected tag (or `-d' value). Multiple
- `-m' options can be specified.
-
-`-M limit'
- Set the memory allocation limit which will abort the program if the
- total memory allocations exceed this number of bytes. The limit
- can be a number with a k, m, or g at the end to indicate kilobyte,
- megabyte, and gigabyte respectively. Ex: 100k, 200m, 1g. If the
- limit is exceeded, this will generate an `ERROR_OVER_LIMIT' error.
- *Note Error Codes::.
-
-`-n'
- Without changing the environment, output the commands resulting
- from the supplied options.
-
-`-o times'
- Set the "lock-on" period which dictates to the threaded version of
- the library to not initialize or lock the mutex lock around the
- library until after a certain number of allocation calls have been
- made. Some number between 2 and 30 is probably good. See the
- "Using With Threads" section for more information about the
- operation of the library with threads. *Note Using With Threads::.
-
-`-p token(s)'
- Add (plus) the debug capabilities of token(s) to the current debug
- setting or to the selected tag (or `-d' value). Multiple `-p'
- options can be specified.
-
-`-r'
- Remove (unset) all settings when using a tag. This is useful when
- you are returning to a standard development tag and want the
- logfile, address, and interval settings to be cleared
- automatically. If you want this behavior by default, this can be
- put into the dmalloc alias.
-
-`-R'
- Output rc shell type commands. This is not for the runtime
- configuration file but for the rc shell program.
-
-`-s file:line'
- Set the `start' part of the `DMALLOC_OPTIONS' env variable to a
- file-name and line-number location in the source where the library
- should begin more extensive heap checking. The file and line
- numbers for heap transactions must be working for this option to
- be obeyed. This is used if you are trying to locate a problem and
- you want the extensive checking to not happen initially because
- it's too slow.
-
-`-S number'
- Set the `start' part of the `DMALLOC_OPTIONS' env variable to an
- dmalloc mark number. The library will begin more extensive heap
- checking after this number of memory transactions. If you
- `LOG_ITERATION' enabled in your `settings.h' file then the entries
- in the log file will be prepended with the number of memory
- transactions that the library has handled so far. This number can
- be used to delay the start of the fine grained heap checking which
- can be very slow.
-
-`--start-size size'
- Set the `start' part of the `DMALLOC_OPTIONS' env variable to a
- number of bytes. The library will begin more extensive heap
- checking after this amount of memory has been allocated by the
- library. This allows you to start the slow and detailed checking
- of the library later in the program execution. You can use
- patterns like 250m, 1g, or 102k to mean 250 megabytes, 1 gigabyte,
- and 102 kilobytes respectively.
-
-`-t'
- List all of the tags in the rc-file. Use with `-v' or `-V'
- verbose options.
-
-`-u (or --usage)'
- Output the usage information for the utility.
-
-`-v'
- Give verbose output. Especially useful when dumping current
- settings or listing all of the tags.
-
-`-V'
- Give very verbose output for outputting even more details about
- settings.
-
-`--version'
- Output the version string for the utility. _Please note_ that the
- version of the library that is installed or has been linked into
- your application may be different from the utility version.
-
-
- If no arguments are specified, dmalloc dumps out the current settings
-that you have for the environment variable. For example:
-
- Debug-Flags '0x40005c7' (runtime)
- Address 0x1f008, count = 3
- Interval 100
- Logpath 'malloc'
- Start-File not-set
-
- With a -v option and no arguments, dmalloc dumps out the current
-settings in a verbose manner. For example:
-
- Debug-Flags '0x40005c7' (runtime)
- log-stats, log-non-free, log-bad-space, check-fence, catch-null
- Address 0x1f008, count = 10
- Interval 100
- Logpath 'malloc'
- Start-File not-set
-
- Here are some examples of dmalloc usage:
-
- # start tough debugging, check the heap every 100 times,
- # send the log information to file 'logfile'
- dmalloc high -i 100 -l logfile
-
- # find out what error code 20 is (from the logfile)
- dmalloc -e 20
-
- # cause the library to halt itself when it sees the address 0x34238
- # for the 6th time.
- dmalloc -a 0x34238:6
-
- # send the log information to file 'logfile' with the time in seconds
- # as an extension.
- dmalloc -l logfile.%t
-
- # return to the normal 'runtime' settings and clear out all
- # other settings
- dmalloc -c runtime
-
- # enable basic 'low' settings plus (-p) the logging of
- # transactions (log-trans) to file 'logfile'
- dmalloc low -p log-trans -l logfile
-
- # print out the current settings with Very-verbose output
- dmalloc -V
-
- # list the available debug malloc tokens with Very-verbose output
- dmalloc -DV
-
- # list the available tags from the rc file with verbose output
- dmalloc -tv
-
-
-File: dmalloc.info, Node: Environment Variable, Next: Debug Tokens, Prev: Utility Usage, Up: Dmalloc Program
-
-4.3 Environment Variable Name and Features
-==========================================
-
-An "environment variable" is a variable that is part of the user's
-working environment and is shared by all the programs. The
-`DMALLOC_OPTIONS' variable is used by the dmalloc library to enable or
-disable the memory debugging features, at runtime. _NOTE:_ you can
-also use the `dmalloc_debug_setup' function to set the option string.
-It can be set either by hand or with the help of the dmalloc program.
-*Note Dmalloc Program::.
-
- To set it by hand, Bourne shell (sh, bash, ksh, or zsh) users should
-use:
-
- DMALLOC_OPTIONS=value
- export DMALLOC_OPTIONS
-
- C shell (csh or tcsh) users need to invoke:
-
- setenv DMALLOC_OPTIONS value
-
- The value in the above examples is a comma separated list of tokens
-each having a corresponding value. The tokens are described below:
-
-`debug'
- This should be set to a value in hexadecimal which corresponds to
- the functionality token values added together. *Note Debug
- Tokens::. For instance, if the user wanted to enable the logging
- of memory transactions (value `0x008') and wanted to check
- fence-post memory (value `0x400') then `debug' should be set to
- `0x408' (`0x008' + `0x400').
-
- _NOTE_: You don't have to worry about remembering all the hex
- values of the tokens because the dmalloc program automates the
- setting of this variable especially.
-
- _NOTE_: You can also specify the debug tokens directly, separated
- by commas. *Note Debug Tokens::. If `debug' and the tokens are
- both used, the token values will be added to the debug value.
-
-`lockon'
- Set this to a number which is the "lock-on" period. This dictates
- to the threaded version of the library to not initialize or lock
- the mutex lock around the library until after a certain number of
- allocation calls have been made. See the "Using With Threads"
- section for more information about the operation of the library
- with threads. *Note Using With Threads::.
-
-`log'
- Set this to a filename so that if `debug' has logging enabled, the
- library can log transactions, administration information, and/or
- errors to the file so memory problems and usage can be tracked.
-
- To get different logfiles for different processes, you can assign
- `log' to a string with `%d' in it (for instance `logfile.%d').
- This will be replaced with the pid of the running process (for
- instance `logfile.2451').
-
- _WARNING_: it is easy to core dump any program with dmalloc, if
- you send in a format with arguments other than the one `%d'.
-
-`addr'
- When this is set to a hex address (taken from the dmalloc log-file
- for instance) dmalloc will abort when it finds itself either
- allocating or freeing that address.
-
- The address can also have an `:number' argument. For instance, if
- it was set it to `0x3e45:10', the library will kill itself the 10th
- time it sees address `0x3e45'. By setting the number argument to
- 0, the program will never stop when it sees the address. This is
- useful for logging all activity on the address and makes it easier
- to track down specific addresses not being freed.
-
- This works well in conjunction with the `STORE_SEEN_COUNT' option.
- *Note Memory Leaks::.
-
- _NOTE_: dmalloc will also log all activity on this address along
- with a count.
-
-`inter'
- By setting this to a number X, dmalloc will only check the heap
- every X times. This means a number of debugging features can be
- enabled while still running the program within a finite amount of
- time.
-
- A setting of `100' works well with reasonably memory intensive
- programs. This of course means that the library will not catch
- errors exactly when they happen but possibly 100 library calls
- later.
-
-`start'
- Set this to a number X and dmalloc will begin checking the heap
- after X times. This means the intensive debugging can be started
- after a certain point in a program.
-
- `start' also has the format `file:line'. For instance, if it is
- set to `dmalloc_t.c:126' dmalloc will start checking the heap
- after it sees a dmalloc call from the `dmalloc_t.c' file, line
- number 126. If you use `dmalloc_t.c:0', with a 0 line number, then
- dmalloc will start checking the heap after it sees a call from
- anywhere in the `dmalloc_t.c' file.
-
- This allows the intensive debugging to be started after a certain
- routine or file has been reached in the program.
-
- Some examples are:
-
- # turn on transaction and stats logging and set
- # 'logfile' as the log-file
- setenv DMALLOC_OPTIONS log-trans,log-stats,log=logfile
-
- # enable debug flags 0x1f as well as heap-checking and
- # set the interval to be 100
- setenv DMALLOC_OPTIONS debug=0x1f,check-heap,inter=100
-
- # enable 'logfile' as the log-file, watch for
- # address '0x1234', and start checking when we see
- # file.c line 123
- setenv DMALLOC_OPTIONS log=logfile,addr=0x1234,start=file.c:123
-
-
-File: dmalloc.info, Node: Debug Tokens, Next: RC File, Prev: Environment Variable, Up: Dmalloc Program
-
-4.4 Description of the Debugging Tokens
-=======================================
-
-The below tokens and their corresponding descriptions are for the
-setting of the debug library setting in the environment variable.
-*Note Environment Variable::. They should be specified in the user's
-`.dmallocrc' file. *Note RC File::.
-
- Each token, when specified, enables a specific debugging feature.
-For instance, if you have the `log-stats' token enabled, the library
-will log general statistics to the logfile.
-
- To get this information on the fly, use `dmalloc -DV'. This will
-print out the Debug tokens in Very-verbose mode. *Note Dmalloc
-Program::.
-
-`none'
- No debugging functionality
-
-`log-stats'
- Log general statistics when dmalloc_shutdown or dmalloc_log_stats
- is called.
-
-`log-non-free'
- Log non-freed memory pointers when dmalloc_shutdown or
- dmalloc_log_unfreed is called.
-
-`log-known'
- Log only known memory pointers that have not been freed. Pointers
- which do not have file/line or return-address information will not
- be logged.
-
-`log-trans'
- Log general memory transactions (quite verbose).
-
-`log-admin'
- Log administrative information (quite verbose).
-
-`log-bad-space'
- Log actual bytes in and around bad pointers.
-
-`log-nonfree-space'
- Log actual bytes in non-freed pointers.
-
-`log-elapsed-time'
- Log elapsed-time for allocated pointers (see `conf.h').
-
-`log-current-time'
- Log current-time for allocated pointers (see `conf.h').
-
-`check-fence'
- Check fence-post memory areas.
-
-`check-heap'
- Verify heap administrative structure.
-
-`check-blank'
- Check to see if space that was blanked when a pointer was
- allocated or when it was freed has been overwritten. If this is
- enabled then it will enable `free-blank' and `alloc-blank'
- automatically.
-
-`check-funcs'
- Check the arguments of some functions (mostly string operations)
- looking for bad pointers.
-
-`check-shutdown'
- Check all of the pointers in the heap when the program exits.
-
-`catch-signals'
- Shutdown the library automatically on SIGHUP, SIGINT, or SIGTERM.
- This will cause the library to dump its statistics (if requested)
- when you press control-c on the program (for example).
-
-`realloc-copy'
- Always copy data to a new pointer when realloc.
-
-`free-blank'
- Write special "dmalloc-free" byte (hexadecimal `0xdf', octal
- `0337', decimal `223') into space when it is freed. You can set
- this to be something else in the `settings.dist' file. This
- ensures that your program is not using memory after it has been
- freed. You can check to see if areas have been improperly
- overwritten with the `check-blank' token. If the free space has
- been overwritten, then `ERROR_FREE_OVERWRITTEN' is triggered.
- *Note Error Codes::.
-
-`error-abort'
- Abort the program (and dump core) on errors. See `error-dump'
- below. *Note Dumping Core::.
-
-`alloc-blank'
- Write special "dmalloc-alloc" byte (hexadecimal `0xda', octal
- `0332', decimal `218') into space when it is allocated. You can
- set this to be something else in the `settings.dist' file. If you
- are not using `calloc' this will overwrite the user space with the
- special bytes ensuring that your program is initializing its
- dynamic memory appropriately. Also, if you ask for 35 bytes and
- the library has to give you a block of 64 because of rounding
- issues, it will overwrite the extra memory with the special byte.
- You can then check to see if the extra areas have been improperly
- overwritten by enabling the `check-blank' token.
-
-`print-messages'
- Log any errors and messages to the screen via standard-error.
-
-`catch-null'
- Abort the program immediately if the library fails to get more heap
- space from the heap allocation routine `mmap' or `sbrk'.
-
-`never-reuse'
- Have the heap never use space that has been used before and freed.
- *Note Memory Leaks::. _WARNING_: This should be used with caution
- since you may run out of heap space.
-
-`error-dump'
- Dump core on error and then continue. Later core dumps overwrite
- earlier ones if the program encounters more than one error. See
- `error-abort' above. *Note Dumping Core::.
-
- _NOTE_: This will only work if your system supports the `fork'
- system call and the configuration utility was able to fork without
- going recursive.
-
-`error-free-null'
- By default the library will not generate an error when a program
- tries to free a NULL pointer. By enabling this token, you can
- change this behavior so an error is reported. See also the
- ALLOW_FREE_NULL and ALLOW_FREE_NULL_MESSAGE settings in the
- `settings.h' file to change the default behavior.
-
-
-
-File: dmalloc.info, Node: RC File, Prev: Debug Tokens, Up: Dmalloc Program
-
-4.5 Format of the Runtime Configuration File
-============================================
-
-By using a "RC File" (or runtime configuration file) you can alias tags
-to combinations of debug tokens. *Note Debug Tokens::.
-
- _NOTE_: For beginning users, the dmalloc program has a couple of
-tags built into it so it is not necessary for you to setup a RC file:
-
-`runtime'
- Enables basic runtime tests including fence-post checking, null
- handling, and logging of any errors.
-
-`low'
- Runtime settings plus minimal checking of heap structures and
- overwriting of allocated and freed space.
-
-`medium'
- Low settings plus checking of all heap structures on each memory
- call, always relocates block on realloc, and aborts on errors.
- You may want to use `-i' option to the dmalloc utility. *Note
- Dmalloc Program::.
-
-`high'
- Medium settings plus checking of overwritten freed and allocated
- memory and checking of arguments to a number of common functions.
- You may want to use `-i' option to the dmalloc utility. *Note
- Dmalloc Program::.
-
-
- For expert users, a sample `dmallocrc' file has been provided but
-you are encouraged to roll your own combinations. The name of default
-rc-file is `$HOME/.dmallocrc'. The `$HOME' environment variable should
-be set by the system to point to your home-directory.
-
- The file should contain lines in the general form of:
-
- tag token1, token2, ...
-
- `tag' is to be matched with the tag argument passed to the dmalloc
-program, while `token1, token2, ...' are debug capability tokens.
-*Note Dmalloc Program::, *Note Debug Tokens::.
-
- A line can be finished with a `\' meaning it continues onto the next
-line. Lines beginning with `#' are treated as comments and are ignored
-along with empty lines.
-
- Here is an example of a `.dmallocrc' file:
-
- #
- # Dmalloc runtime configuration file for the debug malloc library
- #
-
- # no debugging
- none none
-
- # basic debugging
- debug1 log-stats, log-non-free, check-fence
-
- # more logging and some heap checking
- debug2 log-stats, log-non-free, log-trans, \
- check-fence, check-heap, error-abort
-
- # good utilities
- debug3 log-stats, log-non-free, log-trans, \
- log-admin, check-fence, check-heap, realloc-copy, \
- free-blank, error-abort
-
- ...
-
- For example, with the above file installed, you can type `dmalloc
-debug1' after setting up your shell alias. *Note Dmalloc Program::.
-This enables the logging of statistics, the logging of non-freed memory,
-and the checking of fence-post memory areas.
-
- Enter `dmalloc none' to disable all memory debugging features.
-
-
-File: dmalloc.info, Node: Source Code, Next: Troubleshooting, Prev: Dmalloc Program, Up: Top
-
-5 Information on the Source Code
-********************************
-
-* Menu:
-
-* Definitions:: Definition of terms and other information.
-* Compatibility:: General compatibility concerns.
-* Portability:: Issues important for porting the library.
-
-
-File: dmalloc.info, Node: Definitions, Next: Compatibility, Prev: Source Code, Up: Source Code
-
-5.1 Definition of Terms and other Information
-=============================================
-
-Here are a couple definitions and other information for those interested
-in "picking the brain" of the library. The code is a little ugly here
-and there and it conforms to the Gray-Watson handbook of coding
-standards only.
-
-"bblock"
- basic block containing 2 ^ BASIC_BLOCK bytes of info
-
-"bblock_adm"
- administration for a set of basic blocks
-
-"dblock"
- divided block containing some base 2 number of blocks smaller than
- a basic block.
-
-"dblock_adm"
- administration for a set of divided blocks
-
-"chunk"
- some anonymous amount of memory
-
- For more information about administration structures, see the code
-and comments from `chunk_loc.h'.
-
-
-File: dmalloc.info, Node: Compatibility, Next: Portability, Prev: Definitions, Up: Source Code
-
-5.2 General Compatibility Concerns
-==================================
-
- * Realloc() backwards compatibility with being able to realloc from
- the last freed block is _not_ supported. The author is interested
- to know who is using this (cough, cough) feature and for what
- reason.
-
- * Realloc() of a NULL pointer is supported in which case the library
- will just make a call to malloc(). This can be disabled with the
- help of the `ALLOW_REALLOC_NULL' manual compilation option in the
- `settings.h' file to adjust the library's default behavior.
-
- * Some systems allow free(0) to not be an error for some reason.
- Since 0 is not a valid address returned by the malloc call, it is
- debatable that this should be allowed. See `settings.h' for the
- `ALLOW_FREE_NULL' manual compilation option to adjust the
- library's default behavior.
-
- * Aside from possibly being slower than the system's memory
- allocation functions, the library should be fully compatible with
- the standard memory routines. If this is _not_ the case, please
- bring this to my attention.
-
-
-File: dmalloc.info, Node: Portability, Prev: Compatibility, Up: Source Code
-
-5.3 Issues Important for Porting the Library
-============================================
-
-General portability issues center around:
-
- * mmap, sbrk, or compatible function usages. The library does
- support a preallocated memory chunk heap. See the
- `INTERNAL_MEMORY_SPACE' define in the `settings.dist' file.
-
- * The locating of the caller's address from the dmalloc functions.
- This is useful in locating problems from dmalloc functions called
- from C files which did not include `dmalloc.h': C library calls for
- instance.
-
- See `return.h' for the available architecture/compiler
- combinations. You may want to examine the assembly code from gcc
- (GNUs superior c-compiler) version 2+ being run on the following
- code. It should give you a good start on building a hack for your
- box.
-
- static char * x;
-
- a()
- {
- x = __builtin_return_address(0);
- }
-
- main()
- {
- a();
- }
-
-
-
--------------------------------------------------------------------------------
-
-6 Some Solutions to Common Problems
-***********************************
-
-This section provides some answers to some common problems and
-questions. Please send me mail with any additions to this list -
-either problems you are still having or tips that you would like to
-pass on.
-
- When diagnosing a problem, if possible, always make sure you are
-running the most up to date version of Dmalloc available from the home
-page at URL `http://dmalloc.com/'. Problems are often fixed and a new
-release can be published before people encounter them.
-
-`Why does my program run so slow?'
- This library has never been (and maybe never will be) optimized for
- space nor speed. Some of its features make it unable to use some
- of the organizational methods of other more efficient heap
- libraries.
-
- If you have the `check-heap' token enabled, your program might run
- slow or seem to hang. This is because by default, the library
- will run a full check of the heap with every memory allocation or
- free. You can have the library check itself less frequently by
- using the `-i' option to the dmalloc utility. *Note Dmalloc
- Program::. If you are using the `high' token and you need your
- program to run faster, try the `medium' or `low' tokens which
- don't check as many heap features and so run faster although they
- will not catch as many problems. *Note RC File::.
-
-`Why was a log-file not produced after I ran my program?'
- This could be caused by a number of different problems.
-
- 1. Are you sure you followed all of the items in the "Getting
- Started" section? Please review them if there is any doubt.
- *Note Getting Started::.
-
- 2. Use the `env' or `printenv' commands to make sure that the
- `DMALLOC_OPTIONS' variable is set in your exported
- environment. *Note Environment Variable::.
-
- 3. Make sure that your program has been compiled correctly with
- the dmalloc library. The `ident' program should show chunk.c
- and other dmalloc files compiled into your program. You can
- also do `strings -a your-program | grep chunk.c' and look for
- something like `$Id: chunk.c,v 1.152 1999/08/25 12:37:01 gray
- Exp $' with different versions and date information. If this
- doesn't show up then chances are dmalloc was not linked into
- your program.
-
- 4. If your program changes its working directory, it may write
- the dmalloc log-file somewhere else in the filesystem. You
- will need to check both where the program was started and to
- where it might change directory.
-
- 5. The logfile is only produced when `dmalloc_shutdown()' is
- called. By default it will be called when `exit()' gets
- called. If you are running your program and press
- `Control-C' under Unix the program will stop immediately and
- `dmalloc_shutdown()' will not get called. You can either
- setup a signal handler for `SIGINTR' and call exit yourself,
- or you can enable the `catch-signals' token. *Note Debug
- Tokens::.
-
- 6. If your program is segfaulting or otherwise crashing when it
- exits, the `exit()' routine may not being called. You will
- have to resolve these issues so the dmalloc library can
- gracefully exit and write its log file.
-
- 7. You may want to call `dmalloc_log_stats()' and
- `dmalloc_log_unfreed()' (or `dmalloc_log_changed()') directly
- to have the library write its log file. Some system modules
- may not have shutdown if you call this before `exit()' so
- extra unfreed memory may be reported.
-
-
-`I don't see any information about my non-freed (leaked) memory?'
- The library will not (by default) report on "unknown" non-freed
- memory. Unknown means memory that does not have associated file
- and line information.
-
- This will be necessary if you are _not_ including `dmalloc.h' in
- all of your C files or if you are interested in tracking leaks in
- system functions.
-
-`Dmalloc is returning the error "malloc library has gone recursive"'
- This most likely indicates that you are using the Dmalloc library
- within a threaded application and two threads are trying to use
- the dmalloc library at once. Please see the section of the manual
- about threads for more information about properly configuring the
- library. *Note Using With Threads::.
-
- If you are not using threads, then your program could have caught a
- signal while within Dmalloc, which then in turn called a memory
- allocation routine. It is unwise to allocate memory on the heap
- in most signal handlers. Lastly, some functions called by the
- library may call memory routines that it does not anticipate. If
- you think this the case, please report the problem and include a
- stack trace, operating system version/type, and the version of
- Dmalloc you are using.
-
-
-
-File: dmalloc.info, Node: Index of Concepts, Prev: Troubleshooting, Up: Top
-
-Index of Concepts
-*****************
-
- [index ]
-* Menu:
-
-* %h: Utility Usage. (line 89)
-* %i: Utility Usage. (line 93)
-* %p: Utility Usage. (line 100)
-* %t: Utility Usage. (line 104)
-* %u: Utility Usage. (line 108)
-* -disable-cxx: Installation. (line 23)
-* -enable-shlib: Installation. (line 23)
-* -enable-threads: Installation. (line 23)
-* .dmallocrc file: RC File. (line 6)
-* 0332 character: Debug Tokens. (line 94)
-* 0337 character: Debug Tokens. (line 80)
-* 0xda character: Debug Tokens. (line 94)
-* 0xdf character: Debug Tokens. (line 80)
-* 1, error code: Error Codes. (line 20)
-* 10, error code: Error Codes. (line 30)
-* 11, error code: Error Codes. (line 34)
-* 13, error code: Error Codes. (line 40)
-* 2, error code: Error Codes. (line 24)
-* 20, error code: Error Codes. (line 47)
-* 21, error code: Error Codes. (line 51)
-* 218 character: Debug Tokens. (line 94)
-* 22, error code: Error Codes. (line 57)
-* 223 character: Debug Tokens. (line 80)
-* 23, error code: Error Codes. (line 68)
-* 24, error code: Error Codes. (line 75)
-* 25, error code: Error Codes. (line 82)
-* 26, error code: Error Codes. (line 89)
-* 27, error code: Error Codes. (line 97)
-* 28, error code: Error Codes. (line 110)
-* 30, error code: Error Codes. (line 117)
-* 332 character: Debug Tokens. (line 94)
-* 337 character: Debug Tokens. (line 80)
-* 40, error code: Error Codes. (line 123)
-* 41, error code: Error Codes. (line 128)
-* 43, error code: Error Codes. (line 135)
-* 45, error code: Error Codes. (line 148)
-* 60, error code: Error Codes. (line 152)
-* 61, error code: Error Codes. (line 157)
-* 67, error code: Error Codes. (line 165)
-* 70, error code: Error Codes. (line 173)
-* 72, error code: Error Codes. (line 178)
-* 73, error code: Error Codes. (line 183)
-* abort: Dumping Core. (line 31)
-* address list error: Error Codes. (line 178)
-* address locating: Environment Variable.
- (line 65)
-* address setting: Environment Variable.
- (line 65)
-* admin list error: Error Codes. (line 173)
-* alias, shell <1>: Getting Started. (line 27)
-* alias, shell: Shell Alias. (line 13)
-* alloc failed error: Error Codes. (line 135)
-* alloc-blank: Debug Tokens. (line 94)
-* allocation basics: Allocation Basics. (line 6)
-* allocation macros: Allocation Macros. (line 6)
-* Allocation of zeros: Malloc Functions. (line 20)
-* ALLOW_FREE_NULL: Debug Tokens. (line 127)
-* ALLOW_FREE_NULL settings.h option: Compatibility. (line 16)
-* ALLOW_FREE_NULL_MESSAGE <1>: Logfile Details. (line 41)
-* ALLOW_FREE_NULL_MESSAGE: Debug Tokens. (line 127)
-* ALLOW_REALLOC_NULL settings.h option: Compatibility. (line 11)
-* already free error: Error Codes. (line 157)
-* ANSI-C compiler: Installation. (line 64)
-* argument checking: Argument Checking. (line 6)
-* assembly hacks: Return Address. (line 14)
-* atexit: Getting Started. (line 17)
-* atexit function: Extensions. (line 26)
-* author: Top. (line 8)
-* automatic shutdown: Getting Started. (line 17)
-* bad admin structure list: Error Codes. (line 173)
-* bad file error: Error Codes. (line 75)
-* bad line error: Error Codes. (line 82)
-* bad setup error: Error Codes. (line 30)
-* bad size error: Error Codes. (line 123)
-* bash shell <1>: Getting Started. (line 27)
-* bash shell: Shell Alias. (line 13)
-* bash usage: Environment Variable.
- (line 14)
-* basic allocation information: Allocation Basics. (line 6)
-* basic definitions: Basic Definitions. (line 6)
-* beginning: Getting Started. (line 6)
-* blank space: Debug Tokens. (line 80)
-* blanking memory: Debug Tokens. (line 94)
-* bounds checking: Features. (line 23)
-* Bourne shell usage: Environment Variable.
- (line 14)
-* building the library: Installation. (line 6)
-* C shell usage: Environment Variable.
- (line 20)
-* c++ usage: Using With C++. (line 6)
-* caller address translation: Translate Return Addresses.
- (line 12)
-* caller's address: Return Address. (line 6)
-* calloc: Malloc Functions. (line 20)
-* cannot locate pointer in heap: Error Codes. (line 57)
-* catch-null: Debug Tokens. (line 109)
-* catch-signals: Debug Tokens. (line 72)
-* cgi-bin process debugging: Debugging A Server. (line 6)
-* cgi-bin usage of dmalloc: Debugging A Server. (line 6)
-* changed memory log: Extensions. (line 174)
-* check-blank <1>: Error Codes. (line 165)
-* check-blank: Debug Tokens. (line 59)
-* check-fence: Debug Tokens. (line 53)
-* check-funcs: Debug Tokens. (line 65)
-* check-heap <1>: Debug Tokens. (line 56)
-* check-heap <2>: Troubleshooting. (line 17)
-* check-heap: How It Works. (line 28)
-* check-shutdown: Debug Tokens. (line 69)
-* checking arguments: Argument Checking. (line 6)
-* checking bounds: Features. (line 23)
-* checkpoint memory usage: Extensions. (line 174)
-* child process debugging: Debugging A Server. (line 6)
-* clearing memory: Debug Tokens. (line 94)
-* comma separated tokens in env variable: Environment Variable.
- (line 39)
-* common problems: Troubleshooting. (line 6)
-* compatibility: Compatibility. (line 6)
-* compiling the library: Installation. (line 6)
-* conf.h file: Installation. (line 23)
-* configuration file: RC File. (line 6)
-* configure script: Installation. (line 23)
-* configuring the library: Installation. (line 6)
-* constancy verification: Features. (line 35)
-* copying: Copying. (line 6)
-* core dump <1>: Dumping Core. (line 6)
-* core dump <2>: Debug Tokens. (line 90)
-* core dump <3>: Features. (line 84)
-* core dump: Debug Tokens. (line 118)
-* core dump, none: Dumping Core. (line 19)
-* core file: Dumping Core. (line 19)
-* could not grow heap by allocating memory: Error Codes. (line 135)
-* count changed: Extensions. (line 148)
-* count number of bytes changed since mark: Extensions. (line 148)
-* cpp: Features. (line 10)
-* csh shell <1>: Shell Alias. (line 27)
-* csh shell: Getting Started. (line 50)
-* csh usage: Environment Variable.
- (line 20)
-* current debug value: Extensions. (line 66)
-* cygwin: Using With Cygwin. (line 6)
-* da character: Debug Tokens. (line 94)
-* daemon process debugging: Debugging A Server. (line 6)
-* debug setting: Environment Variable.
- (line 28)
-* debug tokens: Debug Tokens. (line 6)
-* debugger: Dumping Core. (line 6)
-* debugger usage with dmalloc: Using With a Debugger.
- (line 6)
-* debugging cgi-bin processes: Debugging A Server. (line 6)
-* debugging child processes: Debugging A Server. (line 6)
-* debugging daemon processes: Debugging A Server. (line 6)
-* debugging server processes: Debugging A Server. (line 6)
-* decimal 218 character: Debug Tokens. (line 94)
-* decimal 223 character: Debug Tokens. (line 80)
-* delay heap checking: Utility Usage. (line 180)
-* destructor: Getting Started. (line 17)
-* df character: Debug Tokens. (line 80)
-* diagnosing errors: General Errors. (line 6)
-* disabling library checking: Disabling the Library.
- (line 6)
-* disabling the library: Disabling the Library.
- (line 6)
-* dmalloc program: Dmalloc Program. (line 6)
-* dmalloc utility: Dmalloc Program. (line 6)
-* dmalloc.h file: Allocation Macros. (line 6)
-* dmalloc_debug: Disabling the Library.
- (line 6)
-* dmalloc_debug function: Extensions. (line 52)
-* dmalloc_debug_current function: Extensions. (line 66)
-* dmalloc_debug_setup: Extensions. (line 72)
-* dmalloc_debug_setup function: Debugging A Server. (line 23)
-* dmalloc_debug_setup usage: Using With Cygwin. (line 26)
-* dmalloc_errno number: Extensions. (line 9)
-* dmalloc_error() routine: Using With a Debugger.
- (line 15)
-* dmalloc_examine function: Extensions. (line 96)
-* DMALLOC_FUNC_CHECK: Getting Started. (line 73)
-* DMALLOC_FUNC_CHECK flag: Argument Checking. (line 6)
-* dmalloc_get_stats function: Extensions. (line 200)
-* dmalloc_log_changed function: Extensions. (line 174)
-* dmalloc_log_stats function: Extensions. (line 164)
-* dmalloc_log_unfreed function: Extensions. (line 168)
-* dmalloc_logpath variable: Extensions. (line 17)
-* dmalloc_mark function: Extensions. (line 118)
-* dmalloc_memory_allocated function: Extensions. (line 136)
-* dmalloc_message function: Extensions. (line 195)
-* DMALLOC_OPTIONS <1>: Troubleshooting. (line 39)
-* DMALLOC_OPTIONS: Environment Variable.
- (line 6)
-* dmalloc_shutdown function: Extensions. (line 25)
-* DMALLOC_SIZE option: Installation. (line 45)
-* dmalloc_strerror function: Extensions. (line 222)
-* dmalloc_t test program: Installation. (line 92)
-* dmalloc_track function: Extensions. (line 111)
-* dmalloc_verify function: Extensions. (line 41)
-* dmalloc_verify() routine: General Errors. (line 32)
-* dmalloc_vmessage function: Extensions. (line 189)
-* dmallocc.cc: Using With C++. (line 10)
-* dmallocc.cc file: Using With C++. (line 6)
-* dmallocrc file: RC File. (line 6)
-* dump core <1>: Dumping Core. (line 6)
-* dump core <2>: Features. (line 84)
-* dump core: Debug Tokens. (line 118)
-* env: Troubleshooting. (line 39)
-* environment variable: Environment Variable.
- (line 6)
-* errno value is not valid: Error Codes. (line 24)
-* error code 10: Error Codes. (line 30)
-* error code 11: Error Codes. (line 34)
-* error code 13: Error Codes. (line 40)
-* error code 20: Error Codes. (line 47)
-* error code 21: Error Codes. (line 51)
-* error code 22: Error Codes. (line 57)
-* error code 23: Error Codes. (line 68)
-* error code 24: Error Codes. (line 75)
-* error code 25: Error Codes. (line 82)
-* error code 26: Error Codes. (line 89)
-* error code 27: Error Codes. (line 97)
-* error code 28: Error Codes. (line 110)
-* error code 30: Error Codes. (line 117)
-* error code 40: Error Codes. (line 123)
-* error code 41: Error Codes. (line 128)
-* error code 43: Error Codes. (line 135)
-* error code 45: Error Codes. (line 148)
-* error code 60: Error Codes. (line 152)
-* error code 61: Error Codes. (line 157)
-* error code 67: Error Codes. (line 165)
-* error code 70: Error Codes. (line 173)
-* error code 72: Error Codes. (line 178)
-* error code 73: Error Codes. (line 183)
-* error code, 1: Error Codes. (line 20)
-* error code, 2: Error Codes. (line 24)
-* error codes: Error Codes. (line 6)
-* error message: Extensions. (line 222)
-* error number: Extensions. (line 9)
-* error-abort <1>: Debug Tokens. (line 90)
-* error-abort: Dumping Core. (line 6)
-* error-dump <1>: Debug Tokens. (line 118)
-* error-dump: Dumping Core. (line 6)
-* error-free-null: Debug Tokens. (line 127)
-* error-free-null token: Error Codes. (line 47)
-* ERROR_ADDRESS_LIST: Error Codes. (line 178)
-* ERROR_ADMIN_LIST: Error Codes. (line 173)
-* ERROR_ALLOC_FAILED: Error Codes. (line 135)
-* ERROR_ALREADY_FREE: Error Codes. (line 157)
-* ERROR_BAD_FILE: Error Codes. (line 75)
-* ERROR_BAD_LINE: Error Codes. (line 82)
-* ERROR_BAD_SETUP: Error Codes. (line 30)
-* ERROR_BAD_SIZE: Error Codes. (line 123)
-* ERROR_FREE_OVERWRITTEN <1>: Debug Tokens. (line 80)
-* ERROR_FREE_OVERWRITTEN: Error Codes. (line 165)
-* ERROR_IN_TWICE: Error Codes. (line 34)
-* ERROR_IS_FOUND: Error Codes. (line 68)
-* ERROR_IS_NULL: Error Codes. (line 47)
-* ERROR_LOCK_NOT_CONFIG: Error Codes. (line 40)
-* ERROR_NONE: Error Codes. (line 20)
-* ERROR_NOT_FOUND: Error Codes. (line 57)
-* ERROR_NOT_IN_HEAP: Error Codes. (line 51)
-* ERROR_NOT_ON_BLOCK: Error Codes. (line 152)
-* ERROR_NOT_START_BLOCK: Error Codes. (line 117)
-* ERROR_OVER_FENCE: Error Codes. (line 97)
-* ERROR_OVER_LIMIT <1>: Utility Usage. (line 135)
-* ERROR_OVER_LIMIT: Error Codes. (line 148)
-* ERROR_SLOT_CORRUPT: Error Codes. (line 183)
-* ERROR_TOO_BIG: Error Codes. (line 128)
-* ERROR_UNDER_FENCE: Error Codes. (line 89)
-* ERROR_WOULD_OVERWRITE: Error Codes. (line 110)
-* examine a pointer: Extensions. (line 96)
-* extensions: Extensions. (line 6)
-* failed over picket-fence magic-number check: Error Codes. (line 97)
-* failed under picket-fence magic-number check: Error Codes. (line 89)
-* faq: Troubleshooting. (line 6)
-* features: Features. (line 6)
-* fence-post checking: Features. (line 23)
-* fence-post errors: Fence-Post Overruns. (line 6)
-* file/line numbers: Features. (line 10)
-* found pointer the user was looking for: Error Codes. (line 68)
-* free: Malloc Functions. (line 46)
-* free null token: Error Codes. (line 47)
-* free overwritten error: Error Codes. (line 165)
-* free space has been overwritten: Error Codes. (line 165)
-* free-blank <1>: Debug Tokens. (line 80)
-* free-blank: Error Codes. (line 165)
-* freed memory: Features. (line 65)
-* gcc: Portability. (line 17)
-* gdb: Using With a Debugger.
- (line 15)
-* gdb with shared libraries: Using With a Debugger.
- (line 26)
-* general errors: General Errors. (line 6)
-* generating core dump: Dumping Core. (line 6)
-* get heap statistics: Extensions. (line 200)
-* getenv, problems with: Using With Cygwin. (line 10)
-* GETENV_SAVE conf.h option: Using With Cygwin. (line 15)
-* GetEnvironmentVariableA, using with: Using With Cygwin. (line 10)
-* gethostname function usage: Utility Usage. (line 89)
-* getpid function usage: Utility Usage. (line 100)
-* getting started: Getting Started. (line 6)
-* getuid function usage: Utility Usage. (line 108)
-* hanging program: Troubleshooting. (line 16)
-* HAVE_GETENVIRONMENTVARIABLEA: Using With Cygwin. (line 15)
-* heap memory: Basic Definitions. (line 39)
-* heap statistics function: Extensions. (line 200)
-* help: Troubleshooting. (line 6)
-* hexadecimal 0xda character: Debug Tokens. (line 94)
-* hexadecimal 0xdf character: Debug Tokens. (line 80)
-* high token: RC File. (line 26)
-* hints that may help: Other Hints. (line 6)
-* hostname in logfile path: Utility Usage. (line 89)
-* how do i...: Troubleshooting. (line 6)
-* how to begin: Getting Started. (line 6)
-* HUP signal: Debug Tokens. (line 72)
-* ident: Troubleshooting. (line 43)
-* in twice error: Error Codes. (line 34)
-* initialization and setup failed: Error Codes. (line 30)
-* installing the library: Installation. (line 6)
-* INT signal: Debug Tokens. (line 72)
-* interaction count <1>: Extensions. (line 118)
-* interaction count: Utility Usage. (line 180)
-* internal address list corruption: Error Codes. (line 178)
-* internal error number: Extensions. (line 9)
-* internal memory slot corruption: Error Codes. (line 183)
-* INTERNAL_MEMORY_SPACE: Portability. (line 8)
-* interval setting <1>: Environment Variable.
- (line 83)
-* interval setting: Utility Usage. (line 72)
-* introduction: Top. (line 8)
-* invalid allocation size: Error Codes. (line 123)
-* invalid errno value: Error Codes. (line 24)
-* INVALID_ERROR: Error Codes. (line 24)
-* is found error: Error Codes. (line 68)
-* is null error: Error Codes. (line 47)
-* iteration count: How It Works. (line 48)
-* jump start: Getting Started. (line 6)
-* kill process: Dumping Core. (line 31)
-* KILL_PROCESS: Dumping Core. (line 31)
-* ksh shell <1>: Shell Alias. (line 13)
-* ksh shell: Getting Started. (line 27)
-* ksh usage: Environment Variable.
- (line 14)
-* largest maximum allocation size exceeded: Error Codes. (line 128)
-* leaking memory <1>: Memory Leaks. (line 6)
-* leaking memory: Features. (line 55)
-* libdmallocxx.a: Using With C++. (line 6)
-* library permissions: Copying. (line 6)
-* library utility: Dmalloc Program. (line 6)
-* library version: Utility Usage. (line 214)
-* license: Copying. (line 6)
-* lock on <1>: Using With Threads. (line 27)
-* lock on: Utility Usage. (line 147)
-* lock-on: Error Codes. (line 34)
-* lock-on not configured: Error Codes. (line 40)
-* lockon setting: Environment Variable.
- (line 44)
-* log memory changes: Extensions. (line 174)
-* log statistics: Extensions. (line 164)
-* log unfreed memory: Extensions. (line 168)
-* log-admin: Debug Tokens. (line 38)
-* log-bad-space: Debug Tokens. (line 41)
-* log-current-time: Debug Tokens. (line 50)
-* log-elapsed-time: Debug Tokens. (line 47)
-* log-known: Debug Tokens. (line 30)
-* log-non-free: Debug Tokens. (line 26)
-* log-nonfree-space: Debug Tokens. (line 44)
-* log-stats: Debug Tokens. (line 22)
-* log-trans: Debug Tokens. (line 35)
-* LOG_ITERATION <1>: Extensions. (line 118)
-* LOG_ITERATION: Utility Usage. (line 180)
-* LOG_ITERATION_COUNT: How It Works. (line 48)
-* logfile format: Logfile Details. (line 6)
-* logfile message writer: Extensions. (line 189)
-* logfile name: Extensions. (line 17)
-* logfile not produced: Troubleshooting. (line 32)
-* logfile setting: Environment Variable.
- (line 52)
-* logging information to disk: Environment Variable.
- (line 52)
-* logging statistics: Features. (line 55)
-* low token: RC File. (line 16)
-* macros, allocation: Allocation Macros. (line 6)
-* making the library: Installation. (line 6)
-* malloc: Malloc Functions. (line 11)
-* malloc functions: Malloc Functions. (line 6)
-* malloc library has gone recursive: Error Codes. (line 34)
-* mark count: Utility Usage. (line 180)
-* mark memory position: Extensions. (line 118)
-* medium token: RC File. (line 20)
-* memalign: Allocation Macros. (line 23)
-* memory allocated function: Extensions. (line 136)
-* memory definitions: Basic Definitions. (line 6)
-* memory leaks <1>: Memory Leaks. (line 6)
-* memory leaks: Features. (line 55)
-* memory limit <1>: Error Codes. (line 148)
-* memory limit: Utility Usage. (line 135)
-* memory position marker: Extensions. (line 118)
-* memory problems in system functions: Features. (line 90)
-* memory transaction count <1>: Utility Usage. (line 180)
-* memory transaction count: How It Works. (line 48)
-* missing core dump: Dumping Core. (line 19)
-* mmap <1>: General Errors. (line 6)
-* mmap <2>: Error Codes. (line 57)
-* mmap <3>: Debug Tokens. (line 109)
-* mmap: Error Codes. (line 143)
-* mmap, usage without: Portability. (line 8)
-* name of host in logfile path: Utility Usage. (line 89)
-* never-reuse: Debug Tokens. (line 113)
-* no core dump: Dumping Core. (line 19)
-* no error: Error Codes. (line 20)
-* no logfile produced: Troubleshooting. (line 32)
-* none token: Debug Tokens. (line 19)
-* not found error: Error Codes. (line 57)
-* not in heap error: Error Codes. (line 51)
-* not on block boundary error: Error Codes. (line 152)
-* not start block error: Error Codes. (line 117)
-* number bytes changed since mark: Extensions. (line 148)
-* number of bytes allocated: Extensions. (line 136)
-* octal 332 character: Debug Tokens. (line 94)
-* octal 337 character: Debug Tokens. (line 80)
-* on_exit: Getting Started. (line 17)
-* on_exit function: Extensions. (line 26)
-* other hints: Other Hints. (line 6)
-* over fence error: Error Codes. (line 97)
-* over limit error: Error Codes. (line 148)
-* over user specified allocation limit error: Error Codes. (line 148)
-* override debug settings: Extensions. (line 52)
-* overview: Overview. (line 6)
-* overwriting memory: Debug Tokens. (line 94)
-* page size: Extensions. (line 142)
-* permissions of the library: Copying. (line 6)
-* pid in logfile path: Utility Usage. (line 100)
-* pointer information: Extensions. (line 96)
-* pointer is not on block boundary: Error Codes. (line 152)
-* pointer is not pointing to heap data space: Error Codes. (line 51)
-* pointer is not to start of memory block: Error Codes. (line 117)
-* pointer is null error: Error Codes. (line 47)
-* pointer not found error: Error Codes. (line 57)
-* pointer not in heap error: Error Codes. (line 51)
-* pointer seen count: Memory Leaks. (line 42)
-* portability: Portability. (line 6)
-* possibly bad .c file line-number: Error Codes. (line 82)
-* possibly bad .c filename pointer: Error Codes. (line 75)
-* preallocated memory heap: Portability. (line 8)
-* print-messages: Debug Tokens. (line 106)
-* printenv: Troubleshooting. (line 39)
-* problems: Troubleshooting. (line 6)
-* process-id in logfile path: Utility Usage. (line 100)
-* program core: Dumping Core. (line 19)
-* programming: Programming. (line 6)
-* pthreads: Using With Threads. (line 6)
-* questions: Troubleshooting. (line 6)
-* quick start: Getting Started. (line 6)
-* ra: Return Address. (line 6)
-* ra_info.pl <1>: Return Address. (line 24)
-* ra_info.pl: Translate Return Addresses.
- (line 6)
-* rc file: RC File. (line 6)
-* rc shell: Getting Started. (line 55)
-* reading environment, problems with: Using With Cygwin. (line 10)
-* realloc: Malloc Functions. (line 31)
-* realloc-copy: Debug Tokens. (line 77)
-* recalloc: Allocation Macros. (line 23)
-* recursion: Error Codes. (line 34)
-* report heap statistics: Extensions. (line 200)
-* restoring library flags: Disabling the Library.
- (line 6)
-* return-address <1>: Return Address. (line 6)
-* return-address <2>: Features. (line 16)
-* return-address: Portability. (line 12)
-* return-address translation: Translate Return Addresses.
- (line 12)
-* return.h file: Return Address. (line 6)
-* runtime token: RC File. (line 12)
-* runtime-config file: RC File. (line 6)
-* sbrk <1>: General Errors. (line 6)
-* sbrk <2>: Error Codes. (line 57)
-* sbrk: Debug Tokens. (line 109)
-* sbrk, usage without: Portability. (line 8)
-* seen count <1>: Extensions. (line 100)
-* seen count <2>: Memory Leaks. (line 42)
-* seen count: Logfile Details. (line 47)
-* server process debugging: Debugging A Server. (line 6)
-* set debug functionality flags: Extensions. (line 52)
-* settings.dist file: Installation. (line 18)
-* settings.h file: Installation. (line 37)
-* setup debug flags: Extensions. (line 72)
-* sh usage: Environment Variable.
- (line 14)
-* shared libraries with gdb: Using With a Debugger.
- (line 26)
-* shell usage: Environment Variable.
- (line 14)
-* shutdown on signal: Debug Tokens. (line 72)
-* shutdown the library: Extensions. (line 25)
-* shutdown, automatic: Getting Started. (line 17)
-* SIGHUP: Debug Tokens. (line 72)
-* SIGINT: Debug Tokens. (line 72)
-* signal shutdown: Debug Tokens. (line 72)
-* SIGTERM: Debug Tokens. (line 72)
-* size of memory pages: Extensions. (line 142)
-* slot corrupt error: Error Codes. (line 183)
-* slow running: Troubleshooting. (line 16)
-* source code: Source Code. (line 6)
-* source definitions: Definitions. (line 6)
-* stack memory: Basic Definitions. (line 23)
-* start heap check later: Utility Usage. (line 180)
-* start setting: Environment Variable.
- (line 94)
-* static memory: Basic Definitions. (line 12)
-* statistics: Features. (line 55)
-* statistics logging: Extensions. (line 164)
-* STORE_SEEN_COUNT conf.h option: Memory Leaks. (line 42)
-* strdup: Allocation Macros. (line 23)
-* string error message: Extensions. (line 222)
-* string of debug tokens: Extensions. (line 72)
-* strings: Troubleshooting. (line 43)
-* system memory problems: Features. (line 90)
-* tcsh shell <1>: Shell Alias. (line 27)
-* tcsh shell: Getting Started. (line 50)
-* tcsh usage: Environment Variable.
- (line 20)
-* TERM signal: Debug Tokens. (line 72)
-* testing the library: Installation. (line 92)
-* thread locking has not been configured: Error Codes. (line 40)
-* thread-id in logfile path: Utility Usage. (line 93)
-* threads: Using With Threads. (line 6)
-* time function usage: Utility Usage. (line 104)
-* time in logfile path: Utility Usage. (line 104)
-* token high: RC File. (line 26)
-* token low: RC File. (line 16)
-* token medium: RC File. (line 20)
-* token runtime: RC File. (line 12)
-* tokens, debug: Debug Tokens. (line 6)
-* too big error: Error Codes. (line 128)
-* too slow: Troubleshooting. (line 16)
-* track memory calls: Extensions. (line 111)
-* tracking addresses: Environment Variable.
- (line 65)
-* transaction count <1>: Extensions. (line 118)
-* transaction count: Utility Usage. (line 180)
-* tried to free previously freed pointer: Error Codes. (line 157)
-* troubleshooting: Troubleshooting. (line 6)
-* turning off library flags: Disabling the Library.
- (line 6)
-* uid in logfile path: Utility Usage. (line 108)
-* under fence error: Error Codes. (line 89)
-* unfreed memory log: Extensions. (line 168)
-* usage of dmalloc in a daemon: Debugging A Server. (line 6)
-* usage of dmalloc in a server: Debugging A Server. (line 6)
-* usage of dmalloc with cgi-bin: Debugging A Server. (line 6)
-* usage of the utility: Utility Usage. (line 6)
-* use of pointer would exceed allocation: Error Codes. (line 110)
-* USE_MMAP conf.h option: Error Codes. (line 143)
-* USE_RETURN_MACROS conf.h option: Installation. (line 57)
-* user-id in logfile path: Utility Usage. (line 108)
-* using a debugger with dmalloc: Using With a Debugger.
- (line 6)
-* utility program: Dmalloc Program. (line 6)
-* utility usage: Utility Usage. (line 6)
-* utility version: Utility Usage. (line 214)
-* valloc: Allocation Macros. (line 23)
-* various hints: Other Hints. (line 6)
-* verify pointers: Extensions. (line 41)
-* verify the heap: Extensions. (line 41)
-* version of library: Logfile Details. (line 34)
-* version of utility: Utility Usage. (line 214)
-* where to begin: Getting Started. (line 6)
-* why hanging: Troubleshooting. (line 16)
-* why running slow: Troubleshooting. (line 16)
-* would overwrite error: Error Codes. (line 110)
-* write message to logfile: Extensions. (line 189)
-* zeros, allocation of: Malloc Functions. (line 20)
-* zsh shell <1>: Shell Alias. (line 13)
-* zsh shell: Getting Started. (line 27)
-* zsh usage: Environment Variable.
- (line 14)
-
-
-
-Tag Table:
-Node: Top1132
-Node: Copying3246
-Node: Overview4003
-Node: Installation4531
-Node: Getting Started10335
-Node: Allocation Basics16089
-Node: Basic Definitions16437
-Node: Malloc Functions19142
-Node: Features21534
-Node: How It Works26077
-Node: Programming29378
-Node: Allocation Macros30515
-Node: Return Address33137
-Node: Argument Checking34561
-Node: Dumping Core36246
-Node: Extensions38461
-Node: Error Codes48555
-Node: Disabling the Library58099
-Node: Using With C++60731
-Node: Using With a Debugger61729
-Node: General Errors63456
-Node: Memory Leaks65394
-Node: Fence-Post Overruns68972
-Node: Translate Return Addresses70702
-Node: Using With Threads71969
-Node: Using With Cygwin76339
-Node: Debugging A Server78151
-Node: Logfile Details84186
-Node: Other Hints87949
-Node: Dmalloc Program89342
-Node: Shell Alias90248
-Node: Utility Usage92400
-Node: Environment Variable102401
-Node: Debug Tokens107633
-Node: RC File112544
-Node: Source Code115322
-Node: Definitions115712
-Node: Compatibility116574
-Node: Portability117795
-Node: Troubleshooting118897
-Node: Index of Concepts124060
-
-End Tag Table
--------------------------------------------------------------------------------
diff --git a/dmalloc-5.5.2/.svn/text-base/Makefile.in.svn-base b/dmalloc-5.5.2/.svn/text-base/Makefile.in.svn-base
deleted file mode 100644
index eb903e6..0000000
--- a/dmalloc-5.5.2/.svn/text-base/Makefile.in.svn-base
+++ /dev/null
@@ -1,432 +0,0 @@
-###############################################################################
-# @configure_input@
-# Makefile for the DMalloc library.
-# $Id: Makefile.all.in,v 1.133 2007/05/14 17:13:45 gray Exp $
-###############################################################################
-
-# default root installation directory
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-bindir = @bindir@
-libdir = @libdir@
-shlibdir = @shlibdir@
-includedir = @includedir@
-docdir = $(prefix)/share/doc/$(MODULE)
-
-# default c-compiler
-CC = @CC@
-CXX = @CXX@
-
-DEFS = -DHAVE_STDARG_H=@HAVE_STDARG_H@ \
- -DHAVE_STDLIB_H=@HAVE_STDLIB_H@ \
- -DHAVE_STRING_H=@HAVE_STRING_H@ \
- -DHAVE_UNISTD_H=@HAVE_UNISTD_H@ \
- -DHAVE_SYS_MMAN_H=@HAVE_SYS_MMAN_H@ \
- -DHAVE_SYS_TYPES_H=@HAVE_SYS_TYPES_H@ \
- -DHAVE_W32API_WINBASE_H=@HAVE_W32API_WINBASE_H@ \
- -DHAVE_W32API_WINDEF_H=@HAVE_W32API_WINDEF_H@ \
- -DHAVE_SYS_CYGWIN_H=@HAVE_SYS_CYGWIN_H@ \
- -DHAVE_SIGNAL_H=@HAVE_SIGNAL_H@ \
- $(DEFINES)
-INCS = -I. -I$(srcdir) $(INCLUDES)
-LIBS = -L. @LIBS@
-A_OUT = aout@EXEEXT@
-
-MODULE = dmalloc
-LIBRARY = lib$(MODULE).a
-
-# thread version of the library
-LIB_TH = lib$(MODULE)th.a
-LIB_TH_SL = lib$(MODULE)th.@shlibext@
-@TH_ON@BUILD_ALL_1 = threads
-@TH_ON@INSTALL_LIB_1 = installth
-@SL_ON@BUILD_THREADS_1 = $(LIB_TH_SL)
-@SL_ON@INSTALL_THREADS_1 = installthsl
-@TH_ON@@SL_ON@BUILD_ALL_2 = $(LIB_TH_SL)
-@TH_ON@@SL_ON@INSTALL_LIB_2 = installthsl
-
-# C++ version of the library
-LIB_CXX = lib$(MODULE)xx.a
-LIB_CXX_SL = lib$(MODULE)xx.@shlibext@
-@CXX_ON@BUILD_ALL_3 = $(LIB_CXX)
-@CXX_ON@INSTALL_LIB_3 = installcxx
-@SL_ON@BUILD_CXX_3 = $(LIB_CXX_SL)
-@SL_ON@INSTALL_CXX_3 = installcxxsl
-@CXX_ON@@SL_ON@BUILD_ALL_4 = $(LIB_CXX_SL)
-@CXX_ON@@SL_ON@INSTALL_LIB_4 = installcxxsl
-
-# threads + C++
-LIB_TH_CXX = lib$(MODULE)thcxx.a
-LIB_TH_CXX_SL = lib$(MODULE)thcxx.@shlibext@
-@TH_ON@@CXX_ON@BUILD_ALL_5 = $(LIB_TH_CXX)
-@TH_ON@@CXX_ON@INSTALL_LIB_5 = installthcxx
-@TH_ON@BUILD_CXX_5 = $(LIB_TH_CXX)
-@TH_ON@INSTALL_CXX_5 = installthcxx
-@CXX_ON@BUILD_THREADS_5 = $(LIB_TH_CXX)
-@CXX_ON@INSTALL_THREADS_5 = installthcxx
-@TH_ON@@CXX_ON@@SL_ON@BUILD_ALL_6 = $(LIB_TH_CXX_SL)
-@TH_ON@@CXX_ON@@SL_ON@INSTALL_LIB_6 = installthcxxsl
-@TH_ON@@SL_ON@BUILD_CXX_6 = $(LIB_TH_CXX_SL)
-@TH_ON@@SL_ON@INSTALL_CXX_6 = installthcxxsl
-@CXX_ON@@SL_ON@BUILD_THREADS_6 = $(LIB_TH_CXX_SL)
-@CXX_ON@@SL_ON@INSTALL_THREADS_6 = installthcxxsl
-
-# shared versions of the libraries
-LIB_SL = lib$(MODULE).@shlibext@
-@SL_ON@BUILD_ALL_7 = $(LIB_SL)
-@SL_ON@INSTALL_LIB_7 = installsl
-@SL_ON@BUILD_TH_CXX_7 = $(LIB_TH_CXX_SL)
-@SL_ON@INSTALL_TH_CXX_7 = installthcxxsl
-@TH_ON@BUILD_SL_7 = $(LIB_TH_SL)
-@TH_ON@INSTALL_SL_7 = installthsl
-@CXX_ON@BUILD_SL_8 = $(LIB_CXX_SL)
-@CXX_ON@INSTALL_SL_8 = installcxxsl
-@TH_ON@@CXX_ON@BUILD_SL_9 = $(LIB_TH_CXX_SL)
-@TH_ON@@CXX_ON@INSTALL_SL_9 = installthcxxsl
-
-# now construct our build and install targets
-BUILD_ALL = dmalloc.h $(LIBRARY) $(UTIL) \
- $(BUILD_ALL_1) $(BUILD_ALL_2) $(BUILD_ALL_3) $(BUILD_ALL_4) \
- $(BUILD_ALL_5) $(BUILD_ALL_6) $(BUILD_ALL_7) $(BUILD_ALL_8)
-INSTALL_LIB = $(LIBRARY) \
- $(INSTALL_LIB_1) $(INSTALL_LIB_2) $(INSTALL_LIB_3) $(INSTALL_LIB_4) \
- $(INSTALL_LIB_5) $(INSTALL_LIB_6) $(INSTALL_LIB_7) $(INSTALL_LIB_8)
-BUILD_THREADS = $(LIB_TH) \
- $(BUILD_THREADS_1) $(BUILD_THREADS_2) $(BUILD_THREADS_3) \
- $(BUILD_THREADS_4) $(BUILD_THREADS_5) $(BUILD_THREADS_6)
-INSTALL_THREADS = $(LIB_TH) \
- $(INSTALL_THREADS_1) $(INSTALL_THREADS_2) $(INSTALL_THREADS_3) \
- $(INSTALL_THREADS_4) $(INSTALL_THREADS_5) $(INSTALL_THREADS_6)
-BUILD_CXX = $(LIB_CXX) \
- $(BUILD_CXX_1) $(BUILD_CXX_2) $(BUILD_CXX_3) $(BUILD_CXX_4) \
- $(BUILD_CXX_5) $(BUILD_CXX_6) $(BUILD_CXX_7) $(BUILD_CXX_8)
-INSTALL_CXX = $(LIB_CXX) \
- $(INSTALL_CXX_1) $(INSTALL_CXX_2) $(INSTALL_CXX_3) $(INSTALL_CXX_4) \
- $(INSTALL_CXX_5) $(INSTALL_CXX_6) $(INSTALL_CXX_7) $(INSTALL_CXX_8)
-BUILD_TH_CXX = $(LIB_TH_CXX) \
- $(BUILD_TH_CXX_1) $(BUILD_TH_CXX_2) $(BUILD_TH_CXX_3) \
- $(BUILD_TH_CXX_4) $(BUILD_TH_CXX_5) $(BUILD_TH_CXX_6) \
- $(BUILD_TH_CXX_7) $(BUILD_TH_CXX_8) $(BUILD_TH_CXX_9)
-INSTALL_TH_CXX = $(LIB_TH_CXX) \
- $(INSTALL_TH_CXX_1) $(INSTALL_TH_CXX_2) $(INSTALL_TH_CXX_3) \
- $(INSTALL_TH_CXX_4) $(INSTALL_TH_CXX_5) $(INSTALL_TH_CXX_6) \
- $(INSTALL_TH_CXX_7) $(INSTALL_TH_CXX_8) $(INSTALL_TH_CXX_9)
-BUILD_SL = $(LIB_SL) \
- $(BUILD_SL_1) $(BUILD_SL_2) $(BUILD_SL_3) $(BUILD_SL_4) \
- $(BUILD_SL_5) $(BUILD_SL_6) $(BUILD_SL_7) $(BUILD_SL_8) \
- $(BUILD_SL_9)
-INSTALL_SL = $(LIB_SL) \
- $(INSTALL_SL_1) $(INSTALL_SL_2) $(INSTALL_SL_3) $(INSTALL_SL_4) \
- $(INSTALL_SL_5) $(INSTALL_SL_6) $(INSTALL_SL_7) $(INSTALL_SL_8) \
- $(INSTALL_SL_9)
-
-UTIL = $(MODULE)
-HTMLFILE = $(MODULE).html
-TEXIFILE = $(MODULE).texi
-PDFFILE = $(MODULE).pdf
-DOCFILES = $(HTMLFILE) $(TEXIFILE) $(PDFFILE)
-
-CCFLAGS = @CFLAGS@
-LDFLAGS = @LDFLAGS@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-
-###############################################################################
-# End of system configuration section.
-###############################################################################
-
-SHELL = /bin/sh
-
-HFLS = dmalloc.h
-OBJS = arg_check.o compat.o dmalloc_rand.o dmalloc_tab.o env.o heap.o
-NORMAL_OBJS = chunk.o error.o malloc.o
-THREAD_OBJS = chunk_th.o error_th.o malloc_th.o
-CXX_OBJS = dmallocc.o
-
-CFLAGS = $(CCFLAGS)
-TEST = $(MODULE)_t
-TEST_FC = $(MODULE)_fc_t
-
-all : $(BUILD_ALL)
-@TH_OFF@ @echo "To make the thread version of the library type 'make threads'"
-@CXX_OFF@ @echo "To make the C++ version of the library type 'make cxx'"
-@SL_OFF@ @echo "To make the shared version of the library type 'make shlib'"
-
-clean :
- rm -f $(A_OUT) core *.o *.t
- rm -f $(LIBRARY) $(LIB_TH) $(LIB_CXX) $(LIB_TH_CXX) $(TEST) $(TEST_FC)
- rm -f $(LIB_TH_SL) $(LIB_CXX_SL) $(LIB_TH_CXX_SL) $(LIB_SL)
- rm -f $(UTIL) dmalloc.h
-
-realclean : clean
-
-distclean : clean
- rm -f confdefs.h config.status config.log config.cache conf.h
- rm -f configure.lineno
- rm -rf autom4te.cache
- rm -f Makefile settings.h dmalloc.h.2
-# rm -f configure
-
-installdirs :
- $(srcdir)/mkinstalldirs $(includedir) $(libdir) $(bindir)
-
-installincs : $(HFLS)
- $(srcdir)/mkinstalldirs $(includedir)
- $(INSTALL_DATA) $(HFLS) $(includedir)
-
-installthsl : $(LIB_TH_SL)
- $(srcdir)/mkinstalldirs $(libdir)
- $(INSTALL_PROGRAM) $(LIB_TH_SL) $(libdir)
-
-installth : $(INSTALL_THREADS)
- $(srcdir)/mkinstalldirs $(libdir)
- $(INSTALL_PROGRAM) $(LIB_TH) $(libdir)
-@CXX_OFF@ @echo "Enter 'make installthcxx' to install the threaded C++ library"
-@SL_OFF@ @echo "Enter 'make installthsl' to install the threaded shared-library"
-
-installthcxxsl : $(LIB_TH_CXX_SL)
- $(srcdir)/mkinstalldirs $(shlibdir)
- $(INSTALL_PROGRAM) $(LIB_TH_CXX_SL) $(shlibdir)
-
-installthcxx : $(INSTALL_TH_CXX)
- $(srcdir)/mkinstalldirs $(libdir)
- $(INSTALL_PROGRAM) $(LIB_TH_CXX) $(libdir)
-@SL_OFF@ @echo "Enter 'make installthcxxsl' to install the threaded C++ shared-library"
-
-installcxxsl : $(LIB_CXX_SL)
- $(srcdir)/mkinstalldirs $(libdir)
- $(INSTALL_PROGRAM) $(LIB_CXX_SL) $(libdir)
-
-installcxx : $(INSTALL_CXX)
- $(srcdir)/mkinstalldirs $(libdir)
- $(INSTALL_PROGRAM) $(LIB_CXX) $(libdir)
-@TH_OFF@ @echo "Enter 'make installthcxx' to install the threaded C++ library"
-@SL_OFF@ @echo "Enter 'make installcxxsl' to install the C++ shared-library"
-
-installsl : $(LIB_SL)
- $(srcdir)/mkinstalldirs $(shlibdir)
- $(INSTALL_PROGRAM) $(LIB_SL) $(shlibdir)
-@CXX_OFF@ @echo "Enter 'make installcxxsl' to install the C++ shared-library"
-@TH_OFF@ @echo "Enter 'make installthsl' to install thread shared-library"
-
-installlib : $(INSTALL_LIB)
- $(srcdir)/mkinstalldirs $(libdir)
- $(INSTALL_PROGRAM) $(LIBRARY) $(libdir)
- @RANLIB@ $(libdir)/$(LIBRARY)
-@SL_OFF@ @echo "Enter 'make installsl' to install $(LIB_SL) in $(shlibdir)"
-@CXX_OFF@ @echo "Enter 'make installcxx' to install the C++ library"
-@TH_OFF@ @echo "Enter 'make installth' to install thread library"
-
-installdocs : $(srcdir)/docs/$(HTMLFILE) $(srcdir)/docs/$(TEXIFILE) \
- $(srcdir)/docs/$(PDFFILE)
- $(srcdir)/mkinstalldirs $(docdir)
- $(INSTALL_DATA) $(srcdir)/docs/$(HTMLFILE) $(docdir)
- $(INSTALL_DATA) $(srcdir)/docs/$(TEXIFILE) $(docdir)
- $(INSTALL_DATA) $(srcdir)/docs/$(PDFFILE) $(docdir)
-
-install : installincs installlib $(UTIL)
- $(srcdir)/mkinstalldirs $(bindir)
- $(INSTALL_PROGRAM) $(UTIL) $(bindir)
- @echo "Enter 'make installdocs' to install $(DOCFILES) in $(docdir)"
-
-dmalloc.h.2 : $(srcdir)/configure
- $(SHELL) $(srcdir)/configure
- -touch $@
-
-settings.h : $(srcdir)/settings.dist $(srcdir)/configure
- $(SHELL) $(srcdir)/configure
- -touch $@
-
-dmalloc.h : $(srcdir)/dmalloc.h.1 dmalloc.h.2 $(srcdir)/dmalloc.h.3
- rm -f $@ $@.t
- cat $(srcdir)/dmalloc.h.1 dmalloc.h.2 $(srcdir)/dmalloc.h.3 > $@.t
- mv $@.t $@
-
-shlib : $(BUILD_SL)
-@TH_OFF@ @echo "To make the thread version of the library type 'make threads'"
-@CXX_OFF@ @echo "To make the C++ version of the library type 'make cxx'"
-
-# NOTE: you may have to edit the configure.ac script to get this to
-# work on your operating system. Please send feedback to the author
-# via: http://256.com/gray/email.html
-$(LIB_SL) : $(LIBRARY)
- rm -f $@ $@.t
- @shlinkargs@ $(LIBRARY) $(OBJS) $(NORMAL_OBJS)
- mv $@.t $@
-
-$(LIBRARY) : $(OBJS) $(NORMAL_OBJS)
- ar cr $@ $?
- @RANLIB@ $@
-
-$(LIB_TH) : $(OBJS) $(THREAD_OBJS)
- ar cr $@ $?
- @RANLIB@ $@
-
-$(LIB_TH_SL) : $(LIB_TH)
- rm -f $@ $@.t
- @shlinkargs@ $(LIB_TH) $(OBJS) $(THREAD_OBJS)
- mv $@.t $@
-
-$(LIB_CXX) : $(OBJS) $(NORMAL_OBJS) $(CXX_OBJS)
- ar cr $@ $?
- @RANLIB@ $@
-
-$(LIB_CXX_SL) : $(LIB_CXX)
- rm -f $@ $@.t
- @shlinkargs@ $(LIB_CXX) $(OBJS) $(NORMAL_OBJS) $(CXX_OBJS)
- mv $@.t $@
-
-$(LIB_TH_CXX) : $(OBJS) $(THREAD_OBJS) $(CXX_OBJS)
- ar cr $@ $?
- @RANLIB@ $@
-
-$(LIB_TH_CXX_SL) : $(LIB_TH_CXX)
- rm -f $@ $@.t
- @shlinkargs@ $(LIB_TH_CXX) $(OBJS) $(THREAD_OBJS) $(CXX_OBJS)
- mv $@.t $@
-
-threadssl : $(LIB_TH_SL)
-
-threadscxxsl : $(LIB_TH_CXX_SL)
-
-threadscxx : $(BUILD_TH_CXX)
-@SL_OFF@ @echo "Enter 'make threadscxxsl' to build the threaded C++ shared-library"
-
-threads : $(BUILD_THREADS)
-@CXX_OFF@ @echo "Enter 'make threadscxx' to build the threaded C++ library"
-@SL_OFF@ @echo "Enter 'make threadssl' to build the threaded shared library"
-
-cxxsl : $(LIB_CXX_SL)
-
-cxx : $(BUILD_CXX)
-@SL_OFF@ @echo "Enter 'make cxxsl' to build the cxx shared library"
-
-utils : $(UTIL)
-
-$(UTIL) : $(UTIL).o dmalloc_argv.o compat.o env.o
- rm -f $@
- $(CC) $(LDFLAGS) -o $(A_OUT) $(UTIL).o dmalloc_argv.o compat.o env.o \
- $(LIBS)
- mv $(A_OUT) $@
-
-# special _th versions of objects with the LOCK_THREADS variable defined to 1
-chunk_th.o : $(srcdir)/chunk.c
- rm -f $@
- $(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \
- -c $(srcdir)/chunk.c -o ./$@
-
-error_th.o : $(srcdir)/error.c
- rm -f $@
- $(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \
- -c $(srcdir)/error.c -o ./$@
-
-malloc_th.o : $(srcdir)/malloc.c
- rm -f $@
- $(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \
- -c $(srcdir)/malloc.c -o ./$@
-
-tests : $(TEST) $(TEST_FC)
-
-$(TEST) : $(TEST).o dmalloc_argv.o $(LIBRARY)
- rm -f $@
- $(CC) $(LDFLAGS) -o $(A_OUT) $(TEST).o dmalloc_argv.o $(LIBRARY)
- mv $(A_OUT) $@
-
-$(TEST_FC) : $(TEST_FC).o dmalloc_argv.o $(LIBRARY)
- rm -f $@
- $(CC) $(LDFLAGS) -o $(A_OUT) $(TEST_FC).o dmalloc_argv.o $(LIBRARY)
- mv $(A_OUT) $@
-
-check light : $(TEST) $(TEST_FC)
- ./$(TEST_FC) -s
- ./$(TEST) -s -t 10000
- ./$(TEST) -s -t 10000
- ./$(TEST) -s -t 10000
- ./$(TEST) -s -t 10000
- ./$(TEST) -s -t 10000
- @echo tests have passed
-
-heavy : $(TEST) light
- ./$(TEST) -s -t 100000
- ./$(TEST) -s -t 100000
- ./$(TEST) -s -t 100000
- @echo heavy tests have passed
-
-.c.o :
- rm -f $@
- $(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@
-
-#
-# .cc.o auto-target doesn't work on some systems.
-# also, $? did not work on OSF for the -c, grrr
-#
-dmallocc.o : $(srcdir)/dmallocc.cc
- rm -f $@
- $(CXX) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -c $(srcdir)/dmallocc.cc \
- -o ./$@
-
-#
-# auto configure settings - uncomment if you are doing configure
-# development on the library
-#
-
-#Makefile : $(srcdir)/Makefile.in config.status
-# $(SHELL) config.status
-
-#conf.h : $(srcdir)/conf.h.in config.status
-# $(SHELL) config.status
-
-#config.status : $(srcdir)/configure
-# $(SHELL) config.status --recheck
-
-# $(srcdir)/configure : $(srcdir)/configure.ac
-# cd $(srcdir); autoconf
-
-###############################################################################
-#
-# These dependencies are automatically generated. Do not edit by hand.
-#
-
-arg_check.o: arg_check.c conf.h settings.h dmalloc.h chunk.h debug_tok.h \
- dmalloc_loc.h error.h arg_check.h
-chunk.o: chunk.c conf.h settings.h dmalloc.h chunk.h chunk_loc.h \
- dmalloc_loc.h compat.h debug_tok.h dmalloc_rand.h dmalloc_tab.h error.h \
- error_val.h heap.h
-compat.o: compat.c conf.h settings.h dmalloc.h compat.h dmalloc_loc.h
-dmalloc.o: dmalloc.c conf.h settings.h dmalloc_argv.h dmalloc.h compat.h \
- debug_tok.h dmalloc_loc.h env.h error_val.h version.h
-dmalloc_argv.o: dmalloc_argv.c conf.h settings.h dmalloc_argv.h \
- dmalloc_argv_loc.h compat.h
-dmalloc_fc_t.o: dmalloc_fc_t.c conf.h settings.h dmalloc.h dmalloc_argv.h \
- dmalloc_rand.h debug_tok.h dmalloc_loc.h error_val.h
-dmalloc_rand.o: dmalloc_rand.c dmalloc_rand.h
-dmalloc_t.o: dmalloc_t.c conf.h settings.h compat.h dmalloc.h \
- dmalloc_argv.h dmalloc_rand.h arg_check.h debug_tok.h dmalloc_loc.h \
- error_val.h heap.h
-dmalloc_tab.o: dmalloc_tab.c conf.h settings.h chunk.h compat.h dmalloc.h \
- dmalloc_loc.h error.h error_val.h dmalloc_tab.h dmalloc_tab_loc.h
-env.o: env.c conf.h settings.h dmalloc.h compat.h dmalloc_loc.h \
- debug_tok.h env.h error.h
-error.o: error.c conf.h settings.h dmalloc.h chunk.h compat.h debug_tok.h \
- dmalloc_loc.h env.h error.h error_val.h version.h
-heap.o: heap.c conf.h settings.h dmalloc.h chunk.h compat.h debug_tok.h \
- dmalloc_loc.h error.h error_val.h heap.h
-malloc.o: malloc.c conf.h settings.h dmalloc.h chunk.h compat.h \
- debug_tok.h dmalloc_loc.h env.h error.h error_val.h heap.h \
- malloc_funcs.h return.h
-protect.o: protect.c conf.h settings.h dmalloc.h dmalloc_loc.h error.h \
- heap.h protect.h
-chunk_th.o: chunk.c conf.h settings.h dmalloc.h chunk.h chunk_loc.h \
- dmalloc_loc.h compat.h debug_tok.h dmalloc_rand.h dmalloc_tab.h error.h \
- error_val.h heap.h
-error_th.o: error.c conf.h settings.h dmalloc.h chunk.h compat.h debug_tok.h \
- dmalloc_loc.h env.h error.h error_val.h version.h
-malloc_th.o: malloc.c conf.h settings.h dmalloc.h chunk.h compat.h \
- debug_tok.h dmalloc_loc.h env.h error.h error_val.h heap.h \
- malloc_funcs.h return.h
diff --git a/dmalloc-5.5.2/.svn/text-base/Makefile.svn-base b/dmalloc-5.5.2/.svn/text-base/Makefile.svn-base
deleted file mode 100644
index 1add1cc..0000000
--- a/dmalloc-5.5.2/.svn/text-base/Makefile.svn-base
+++ /dev/null
@@ -1,434 +0,0 @@
-###############################################################################
-# Makefile. Generated from Makefile.in by configure.
-# Makefile for the DMalloc library.
-# $Id: Makefile.all.in,v 1.133 2007/05/14 17:13:45 gray Exp $
-###############################################################################
-
-# default root installation directory
-prefix = /usr/local
-exec_prefix = ${prefix}
-
-srcdir = .
-
-
-bindir = ${exec_prefix}/bin
-libdir = ${exec_prefix}/lib
-shlibdir = ${exec_prefix}/lib
-includedir = ${prefix}/include
-docdir = $(prefix)/share/doc/$(MODULE)
-
-# default c-compiler
-CC = gcc
-CXX = g++
-
-DEFS = -DHAVE_STDARG_H=1 \
- -DHAVE_STDLIB_H=1 \
- -DHAVE_STRING_H=1 \
- -DHAVE_UNISTD_H=1 \
- -DHAVE_SYS_MMAN_H=1 \
- -DHAVE_SYS_TYPES_H=1 \
- -DHAVE_W32API_WINBASE_H=0 \
- -DHAVE_W32API_WINDEF_H=0 \
- -DHAVE_SYS_CYGWIN_H=0 \
- -DHAVE_SIGNAL_H=1 \
- $(DEFINES)
-INCS = -I. -I$(srcdir) $(INCLUDES)
-LIBS = -L.
-A_OUT = aout
-
-MODULE = dmalloc
-LIBRARY = lib$(MODULE).a
-
-# thread version of the library
-LIB_TH = lib$(MODULE)th.a
-LIB_TH_SL = lib$(MODULE)th.dylib
-#BUILD_ALL_1 = threads
-#INSTALL_LIB_1 = installth
-#BUILD_THREADS_1 = $(LIB_TH_SL)
-#INSTALL_THREADS_1 = installthsl
-##BUILD_ALL_2 = $(LIB_TH_SL)
-##INSTALL_LIB_2 = installthsl
-
-# C++ version of the library
-LIB_CXX = lib$(MODULE)xx.a
-LIB_CXX_SL = lib$(MODULE)xx.dylib
-#BUILD_ALL_3 = $(LIB_CXX)
-#INSTALL_LIB_3 = installcxx
-#BUILD_CXX_3 = $(LIB_CXX_SL)
-#INSTALL_CXX_3 = installcxxsl
-##BUILD_ALL_4 = $(LIB_CXX_SL)
-##INSTALL_LIB_4 = installcxxsl
-
-# threads + C++
-LIB_TH_CXX = lib$(MODULE)thcxx.a
-LIB_TH_CXX_SL = lib$(MODULE)thcxx.dylib
-##BUILD_ALL_5 = $(LIB_TH_CXX)
-##INSTALL_LIB_5 = installthcxx
-#BUILD_CXX_5 = $(LIB_TH_CXX)
-#INSTALL_CXX_5 = installthcxx
-#BUILD_THREADS_5 = $(LIB_TH_CXX)
-#INSTALL_THREADS_5 = installthcxx
-###BUILD_ALL_6 = $(LIB_TH_CXX_SL)
-###INSTALL_LIB_6 = installthcxxsl
-##BUILD_CXX_6 = $(LIB_TH_CXX_SL)
-##INSTALL_CXX_6 = installthcxxsl
-##BUILD_THREADS_6 = $(LIB_TH_CXX_SL)
-##INSTALL_THREADS_6 = installthcxxsl
-
-# shared versions of the libraries
-LIB_SL = lib$(MODULE).dylib
-#BUILD_ALL_7 = $(LIB_SL)
-#INSTALL_LIB_7 = installsl
-#BUILD_TH_CXX_7 = $(LIB_TH_CXX_SL)
-#INSTALL_TH_CXX_7 = installthcxxsl
-#BUILD_SL_7 = $(LIB_TH_SL)
-#INSTALL_SL_7 = installthsl
-#BUILD_SL_8 = $(LIB_CXX_SL)
-#INSTALL_SL_8 = installcxxsl
-##BUILD_SL_9 = $(LIB_TH_CXX_SL)
-##INSTALL_SL_9 = installthcxxsl
-
-# now construct our build and install targets
-BUILD_ALL = dmalloc.h $(LIBRARY) $(UTIL) \
- $(BUILD_ALL_1) $(BUILD_ALL_2) $(BUILD_ALL_3) $(BUILD_ALL_4) \
- $(BUILD_ALL_5) $(BUILD_ALL_6) $(BUILD_ALL_7) $(BUILD_ALL_8)
-INSTALL_LIB = $(LIBRARY) \
- $(INSTALL_LIB_1) $(INSTALL_LIB_2) $(INSTALL_LIB_3) $(INSTALL_LIB_4) \
- $(INSTALL_LIB_5) $(INSTALL_LIB_6) $(INSTALL_LIB_7) $(INSTALL_LIB_8)
-BUILD_THREADS = $(LIB_TH) \
- $(BUILD_THREADS_1) $(BUILD_THREADS_2) $(BUILD_THREADS_3) \
- $(BUILD_THREADS_4) $(BUILD_THREADS_5) $(BUILD_THREADS_6)
-INSTALL_THREADS = $(LIB_TH) \
- $(INSTALL_THREADS_1) $(INSTALL_THREADS_2) $(INSTALL_THREADS_3) \
- $(INSTALL_THREADS_4) $(INSTALL_THREADS_5) $(INSTALL_THREADS_6)
-BUILD_CXX = $(LIB_CXX) \
- $(BUILD_CXX_1) $(BUILD_CXX_2) $(BUILD_CXX_3) $(BUILD_CXX_4) \
- $(BUILD_CXX_5) $(BUILD_CXX_6) $(BUILD_CXX_7) $(BUILD_CXX_8)
-INSTALL_CXX = $(LIB_CXX) \
- $(INSTALL_CXX_1) $(INSTALL_CXX_2) $(INSTALL_CXX_3) $(INSTALL_CXX_4) \
- $(INSTALL_CXX_5) $(INSTALL_CXX_6) $(INSTALL_CXX_7) $(INSTALL_CXX_8)
-BUILD_TH_CXX = $(LIB_TH_CXX) \
- $(BUILD_TH_CXX_1) $(BUILD_TH_CXX_2) $(BUILD_TH_CXX_3) \
- $(BUILD_TH_CXX_4) $(BUILD_TH_CXX_5) $(BUILD_TH_CXX_6) \
- $(BUILD_TH_CXX_7) $(BUILD_TH_CXX_8) $(BUILD_TH_CXX_9)
-INSTALL_TH_CXX = $(LIB_TH_CXX) \
- $(INSTALL_TH_CXX_1) $(INSTALL_TH_CXX_2) $(INSTALL_TH_CXX_3) \
- $(INSTALL_TH_CXX_4) $(INSTALL_TH_CXX_5) $(INSTALL_TH_CXX_6) \
- $(INSTALL_TH_CXX_7) $(INSTALL_TH_CXX_8) $(INSTALL_TH_CXX_9)
-BUILD_SL = $(LIB_SL) \
- $(BUILD_SL_1) $(BUILD_SL_2) $(BUILD_SL_3) $(BUILD_SL_4) \
- $(BUILD_SL_5) $(BUILD_SL_6) $(BUILD_SL_7) $(BUILD_SL_8) \
- $(BUILD_SL_9)
-INSTALL_SL = $(LIB_SL) \
- $(INSTALL_SL_1) $(INSTALL_SL_2) $(INSTALL_SL_3) $(INSTALL_SL_4) \
- $(INSTALL_SL_5) $(INSTALL_SL_6) $(INSTALL_SL_7) $(INSTALL_SL_8) \
- $(INSTALL_SL_9)
-
-UTIL = $(MODULE)
-HTMLFILE = $(MODULE).html
-TEXIFILE = $(MODULE).texi
-PDFFILE = $(MODULE).pdf
-DOCFILES = $(HTMLFILE) $(TEXIFILE) $(PDFFILE)
-
-#CCFLAGS = -g -O2
-# jea:
-CCFLAGS = -O0 -gdwarf-2 -g3
-LDFLAGS =
-
-INSTALL = /opt/local/bin/ginstall -c
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_DATA = ${INSTALL} -m 644
-
-###############################################################################
-# End of system configuration section.
-###############################################################################
-
-SHELL = /bin/sh
-
-HFLS = dmalloc.h
-OBJS = arg_check.o compat.o dmalloc_rand.o dmalloc_tab.o env.o heap.o
-NORMAL_OBJS = chunk.o error.o malloc.o
-THREAD_OBJS = chunk_th.o error_th.o malloc_th.o
-CXX_OBJS = dmallocc.o
-
-CFLAGS = $(CCFLAGS)
-TEST = $(MODULE)_t
-TEST_FC = $(MODULE)_fc_t
-
-all : $(BUILD_ALL)
- @echo "To make the thread version of the library type 'make threads'"
- @echo "To make the C++ version of the library type 'make cxx'"
- @echo "To make the shared version of the library type 'make shlib'"
-
-clean :
- rm -f $(A_OUT) core *.o *.t
- rm -f $(LIBRARY) $(LIB_TH) $(LIB_CXX) $(LIB_TH_CXX) $(TEST) $(TEST_FC)
- rm -f $(LIB_TH_SL) $(LIB_CXX_SL) $(LIB_TH_CXX_SL) $(LIB_SL)
- rm -f $(UTIL) dmalloc.h
-
-realclean : clean
-
-distclean : clean
- rm -f confdefs.h config.status config.log config.cache conf.h
- rm -f configure.lineno
- rm -rf autom4te.cache
- rm -f Makefile settings.h dmalloc.h.2
-# rm -f configure
-
-installdirs :
- $(srcdir)/mkinstalldirs $(includedir) $(libdir) $(bindir)
-
-installincs : $(HFLS)
- $(srcdir)/mkinstalldirs $(includedir)
- $(INSTALL_DATA) $(HFLS) $(includedir)
-
-installthsl : $(LIB_TH_SL)
- $(srcdir)/mkinstalldirs $(libdir)
- $(INSTALL_PROGRAM) $(LIB_TH_SL) $(libdir)
-
-installth : $(INSTALL_THREADS)
- $(srcdir)/mkinstalldirs $(libdir)
- $(INSTALL_PROGRAM) $(LIB_TH) $(libdir)
- @echo "Enter 'make installthcxx' to install the threaded C++ library"
- @echo "Enter 'make installthsl' to install the threaded shared-library"
-
-installthcxxsl : $(LIB_TH_CXX_SL)
- $(srcdir)/mkinstalldirs $(shlibdir)
- $(INSTALL_PROGRAM) $(LIB_TH_CXX_SL) $(shlibdir)
-
-installthcxx : $(INSTALL_TH_CXX)
- $(srcdir)/mkinstalldirs $(libdir)
- $(INSTALL_PROGRAM) $(LIB_TH_CXX) $(libdir)
- @echo "Enter 'make installthcxxsl' to install the threaded C++ shared-library"
-
-installcxxsl : $(LIB_CXX_SL)
- $(srcdir)/mkinstalldirs $(libdir)
- $(INSTALL_PROGRAM) $(LIB_CXX_SL) $(libdir)
-
-installcxx : $(INSTALL_CXX)
- $(srcdir)/mkinstalldirs $(libdir)
- $(INSTALL_PROGRAM) $(LIB_CXX) $(libdir)
- @echo "Enter 'make installthcxx' to install the threaded C++ library"
- @echo "Enter 'make installcxxsl' to install the C++ shared-library"
-
-installsl : $(LIB_SL)
- $(srcdir)/mkinstalldirs $(shlibdir)
- $(INSTALL_PROGRAM) $(LIB_SL) $(shlibdir)
- @echo "Enter 'make installcxxsl' to install the C++ shared-library"
- @echo "Enter 'make installthsl' to install thread shared-library"
-
-installlib : $(INSTALL_LIB)
- $(srcdir)/mkinstalldirs $(libdir)
- $(INSTALL_PROGRAM) $(LIBRARY) $(libdir)
- ranlib $(libdir)/$(LIBRARY)
- @echo "Enter 'make installsl' to install $(LIB_SL) in $(shlibdir)"
- @echo "Enter 'make installcxx' to install the C++ library"
- @echo "Enter 'make installth' to install thread library"
-
-installdocs : $(srcdir)/docs/$(HTMLFILE) $(srcdir)/docs/$(TEXIFILE) \
- $(srcdir)/docs/$(PDFFILE)
- $(srcdir)/mkinstalldirs $(docdir)
- $(INSTALL_DATA) $(srcdir)/docs/$(HTMLFILE) $(docdir)
- $(INSTALL_DATA) $(srcdir)/docs/$(TEXIFILE) $(docdir)
- $(INSTALL_DATA) $(srcdir)/docs/$(PDFFILE) $(docdir)
-
-install : installincs installlib $(UTIL)
- $(srcdir)/mkinstalldirs $(bindir)
- $(INSTALL_PROGRAM) $(UTIL) $(bindir)
- @echo "Enter 'make installdocs' to install $(DOCFILES) in $(docdir)"
-
-dmalloc.h.2 : $(srcdir)/configure
- $(SHELL) $(srcdir)/configure
- -touch $@
-
-settings.h : $(srcdir)/settings.dist $(srcdir)/configure
- $(SHELL) $(srcdir)/configure
- -touch $@
-
-dmalloc.h : $(srcdir)/dmalloc.h.1 dmalloc.h.2 $(srcdir)/dmalloc.h.3
- rm -f $@ $@.t
- cat $(srcdir)/dmalloc.h.1 dmalloc.h.2 $(srcdir)/dmalloc.h.3 > $@.t
- mv $@.t $@
-
-shlib : $(BUILD_SL)
- @echo "To make the thread version of the library type 'make threads'"
- @echo "To make the C++ version of the library type 'make cxx'"
-
-# NOTE: you may have to edit the configure.ac script to get this to
-# work on your operating system. Please send feedback to the author
-# via: http://256.com/gray/email.html
-$(LIB_SL) : $(LIBRARY)
- rm -f $@ $@.t
- $(CXX) -dynamiclib -install_name $@ -compatibility_version 1 -current_version 1 -o $@.t $(LIBRARY) $(OBJS) $(NORMAL_OBJS)
- mv $@.t $@
-
-$(LIBRARY) : $(OBJS) $(NORMAL_OBJS)
- ar cr $@ $?
- ranlib $@
-
-$(LIB_TH) : $(OBJS) $(THREAD_OBJS)
- ar cr $@ $?
- ranlib $@
-
-$(LIB_TH_SL) : $(LIB_TH)
- rm -f $@ $@.t
- $(CXX) -dynamiclib -install_name $@ -compatibility_version 1 -current_version 1 -o $@.t $(LIB_TH) $(OBJS) $(THREAD_OBJS)
- mv $@.t $@
-
-$(LIB_CXX) : $(OBJS) $(NORMAL_OBJS) $(CXX_OBJS)
- ar cr $@ $?
- ranlib $@
-
-$(LIB_CXX_SL) : $(LIB_CXX)
- rm -f $@ $@.t
- $(CXX) -dynamiclib -install_name $@ -compatibility_version 1 -current_version 1 -o $@.t $(LIB_CXX) $(OBJS) $(NORMAL_OBJS) $(CXX_OBJS)
- mv $@.t $@
-
-$(LIB_TH_CXX) : $(OBJS) $(THREAD_OBJS) $(CXX_OBJS)
- ar cr $@ $?
- ranlib $@
-
-$(LIB_TH_CXX_SL) : $(LIB_TH_CXX)
- rm -f $@ $@.t
- $(CXX) -dynamiclib -install_name $@ -compatibility_version 1 -current_version 1 -o $@.t $(LIB_TH_CXX) $(OBJS) $(THREAD_OBJS) $(CXX_OBJS)
- mv $@.t $@
-
-threadssl : $(LIB_TH_SL)
-
-threadscxxsl : $(LIB_TH_CXX_SL)
-
-threadscxx : $(BUILD_TH_CXX)
- @echo "Enter 'make threadscxxsl' to build the threaded C++ shared-library"
-
-threads : $(BUILD_THREADS)
- @echo "Enter 'make threadscxx' to build the threaded C++ library"
- @echo "Enter 'make threadssl' to build the threaded shared library"
-
-cxxsl : $(LIB_CXX_SL)
-
-cxx : $(BUILD_CXX)
- @echo "Enter 'make cxxsl' to build the cxx shared library"
-
-utils : $(UTIL)
-
-$(UTIL) : $(UTIL).o dmalloc_argv.o compat.o env.o
- rm -f $@
- $(CC) $(LDFLAGS) -o $(A_OUT) $(UTIL).o dmalloc_argv.o compat.o env.o \
- $(LIBS)
- mv $(A_OUT) $@
-
-# special _th versions of objects with the LOCK_THREADS variable defined to 1
-chunk_th.o : $(srcdir)/chunk.c
- rm -f $@
- $(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \
- -c $(srcdir)/chunk.c -o ./$@
-
-error_th.o : $(srcdir)/error.c
- rm -f $@
- $(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \
- -c $(srcdir)/error.c -o ./$@
-
-malloc_th.o : $(srcdir)/malloc.c
- rm -f $@
- $(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \
- -c $(srcdir)/malloc.c -o ./$@
-
-tests : $(TEST) $(TEST_FC)
-
-$(TEST) : $(TEST).o dmalloc_argv.o $(LIBRARY)
- rm -f $@
- $(CC) $(LDFLAGS) -o $(A_OUT) $(TEST).o dmalloc_argv.o $(LIBRARY)
- mv $(A_OUT) $@
-
-$(TEST_FC) : $(TEST_FC).o dmalloc_argv.o $(LIBRARY)
- rm -f $@
- $(CC) $(LDFLAGS) -o $(A_OUT) $(TEST_FC).o dmalloc_argv.o $(LIBRARY)
- mv $(A_OUT) $@
-
-check light : $(TEST) $(TEST_FC)
- ./$(TEST_FC) -s
- ./$(TEST) -s -t 10000
- ./$(TEST) -s -t 10000
- ./$(TEST) -s -t 10000
- ./$(TEST) -s -t 10000
- ./$(TEST) -s -t 10000
- @echo tests have passed
-
-heavy : $(TEST) light
- ./$(TEST) -s -t 100000
- ./$(TEST) -s -t 100000
- ./$(TEST) -s -t 100000
- @echo heavy tests have passed
-
-.c.o :
- rm -f $@
- $(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@
-
-#
-# .cc.o auto-target doesn't work on some systems.
-# also, $? did not work on OSF for the -c, grrr
-#
-dmallocc.o : $(srcdir)/dmallocc.cc
- rm -f $@
- $(CXX) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -c $(srcdir)/dmallocc.cc \
- -o ./$@
-
-#
-# auto configure settings - uncomment if you are doing configure
-# development on the library
-#
-
-#Makefile : $(srcdir)/Makefile.in config.status
-# $(SHELL) config.status
-
-#conf.h : $(srcdir)/conf.h.in config.status
-# $(SHELL) config.status
-
-#config.status : $(srcdir)/configure
-# $(SHELL) config.status --recheck
-
-# $(srcdir)/configure : $(srcdir)/configure.ac
-# cd $(srcdir); autoconf
-
-###############################################################################
-#
-# These dependencies are automatically generated. Do not edit by hand.
-#
-
-arg_check.o: arg_check.c conf.h settings.h dmalloc.h chunk.h debug_tok.h \
- dmalloc_loc.h error.h arg_check.h
-chunk.o: chunk.c conf.h settings.h dmalloc.h chunk.h chunk_loc.h \
- dmalloc_loc.h compat.h debug_tok.h dmalloc_rand.h dmalloc_tab.h error.h \
- error_val.h heap.h
-compat.o: compat.c conf.h settings.h dmalloc.h compat.h dmalloc_loc.h
-dmalloc.o: dmalloc.c conf.h settings.h dmalloc_argv.h dmalloc.h compat.h \
- debug_tok.h dmalloc_loc.h env.h error_val.h version.h
-dmalloc_argv.o: dmalloc_argv.c conf.h settings.h dmalloc_argv.h \
- dmalloc_argv_loc.h compat.h
-dmalloc_fc_t.o: dmalloc_fc_t.c conf.h settings.h dmalloc.h dmalloc_argv.h \
- dmalloc_rand.h debug_tok.h dmalloc_loc.h error_val.h
-dmalloc_rand.o: dmalloc_rand.c dmalloc_rand.h
-dmalloc_t.o: dmalloc_t.c conf.h settings.h compat.h dmalloc.h \
- dmalloc_argv.h dmalloc_rand.h arg_check.h debug_tok.h dmalloc_loc.h \
- error_val.h heap.h
-dmalloc_tab.o: dmalloc_tab.c conf.h settings.h chunk.h compat.h dmalloc.h \
- dmalloc_loc.h error.h error_val.h dmalloc_tab.h dmalloc_tab_loc.h
-env.o: env.c conf.h settings.h dmalloc.h compat.h dmalloc_loc.h \
- debug_tok.h env.h error.h
-error.o: error.c conf.h settings.h dmalloc.h chunk.h compat.h debug_tok.h \
- dmalloc_loc.h env.h error.h error_val.h version.h
-heap.o: heap.c conf.h settings.h dmalloc.h chunk.h compat.h debug_tok.h \
- dmalloc_loc.h error.h error_val.h heap.h
-malloc.o: malloc.c conf.h settings.h dmalloc.h chunk.h compat.h \
- debug_tok.h dmalloc_loc.h env.h error.h error_val.h heap.h \
- malloc_funcs.h return.h
-protect.o: protect.c conf.h settings.h dmalloc.h dmalloc_loc.h error.h \
- heap.h protect.h
-chunk_th.o: chunk.c conf.h settings.h dmalloc.h chunk.h chunk_loc.h \
- dmalloc_loc.h compat.h debug_tok.h dmalloc_rand.h dmalloc_tab.h error.h \
- error_val.h heap.h
-error_th.o: error.c conf.h settings.h dmalloc.h chunk.h compat.h debug_tok.h \
- dmalloc_loc.h env.h error.h error_val.h version.h
-malloc_th.o: malloc.c conf.h settings.h dmalloc.h chunk.h compat.h \
- debug_tok.h dmalloc_loc.h env.h error.h error_val.h heap.h \
- malloc_funcs.h return.h
diff --git a/dmalloc-5.5.2/.svn/text-base/NEWS.svn-base b/dmalloc-5.5.2/.svn/text-base/NEWS.svn-base
deleted file mode 100644
index e03fd31..0000000
--- a/dmalloc-5.5.2/.svn/text-base/NEWS.svn-base
+++ /dev/null
@@ -1,606 +0,0 @@
--------------------------------------------------------------------------------
-$Id: NEWS,v 1.129 2007/05/14 17:23:42 gray Exp $
--------------------------------------------------------------------------------
-
-Version 5.5.2 (5/14/2007):
-
- * Removed some left-over references to the dmalloc.info file.
- * Fixed some unsigned/signed issues in one of the dmalloc_t tests.
- * Fixed problems with configure and SL_LINK_OBJS.
-
-Version 5.5.1 (3/25/2007):
-
- * Fixed some problems with str[n]dup argument checking.
- * Fixed bug where LOG_PNT_SEEN_COUNT=0 caused dmalloc_examine segfault.
- * Fixed bug with the checking of the MAX_FILE_LENGTH.
- * Revamped the tests for user pointers. Added better support for sizes.
- * Added dmalloc_verify_pnt_strsize to support strnlen size testing.
- * Added missing DMALLOC_FUNC_CHECK routines: atoi, atol, memmove
- * Added a number of special checks for DMALLOC_FUNC_CHECK stuff.
- * Fixed all of the DMALLOC_FUNC_CHECK arguments.
-
-Version 5.5.0 (2/8/2007):
-
- * Fixed a problem with Cygwin env parsing.
- * Improved regression tests on argument checking functions.
- * Fixed some problems with function argument checking and length args.
- * Added handling of strndup function.
- * Added overlapping memory check for memcpy if memmove exists.
- * Added __FILE__ and __LINE__ arguments to function checks.
- * Added patches to [hopefully] improve the building under Mac OSX.
- * Added dmalloc_get_stats function to report on internal heap stats.
- * Fixed a problem with double free not reporting ERROR_ALREADY_FREE.
- * Added better checking for mmap compatibility during autoconfig.
- * Improved the usage output for dmalloc.
- * Improved some of the error values to better identify internal errors.
- * Fixed when LARGEST_ALLOCATION was 0 it was still being tested.
- * Increased the basic block default to 32k.
- * Improved test program output;
- * Fixed the global Makefile to install libs as 755 not 644.
- * Added some fixes for Compaq's C compiler.
- * Improved testing of small heap areas.
-
-Version 5.4.2 (10/19/2004):
-
- * Fixed a couple of longer standing stupid alloc/free blank bugs.
-
-Version 5.4.1 (10/12/2004):
-
- * Found and fixed a stupid little testing bug.
-
-Version 5.4.0 (10/12/2004):
-
- * Added return.h support for ARM processors.
- * Made allocation of 0 sized chunks the default.
- * Fixed some missing ; and a int/unsigned-int bug.
- * Added return.h support for AIX 4.3 RS/6000.
- * Added backwards compatibility for %d usage in logfile name.
- * Removed force-linear token because made invalid with mmap addition.
- * Added mmap usage inside of the library. Should it be the default?
- * Internal random algorithm now seeded with fixed value.
- * Really improved the logging of error information about pointers.
- * Added return.h support for ia64 machine type.
- * Increased the maximum source file length from 10k to 30k.
- * Added compat and arg_checking of atoi, atol, and memmove.
- * Added arg checking to internal strdup functions.
-
-Version 5.3.0 (01/28/2004):
-
- * Fixed bad bug where arch_check funcs weren't locking point checks.
- * Added dmalloc_verify_pnt function for proper external pointer checks.
- * Added dmalloc_memory_allocated function to help memory size checks.
- * Added --start-size to dmalloc to start checks after alloc X bytes.
- * Added check-shutdown token and support to check pointers on shutdown.
- * Added dmalloc_count_changed function.
- * Added ability to disable the LARGEST_ALLOCATION setting it to 0.
-
-Version 5.2.4 (11/18/2003):
-
- * Fixed bug with check-fence and check-funcs interaction. Thanks John.
- * Added support for rc shell. Thanks Michael.
- * Fixed a logfile NULL pointer printf. Thanks John.
- * Fleshed out the error code documentation.
- * Fixed Makefile.in to properly refer to docs directory. Thanks Mike.
- * Improved the docs about alias creation and usage.
- * Added testing for destructors in configure.
-
-Version 5.2.3 (09/29/2003):
-
- * Added new GetEnvironmentVariableA Cygwin call. Thanks to Rolf.
- * Added quick checks for the constructor attribute.
- * Changed configure script to define HAVE_... to 0 or 1. Thanks Brian.
- * Removed usage of environ from dmalloc_argv.c. Thanks Brian.
-
-Version 5.2.2 (09/08/2003):
-
- * Added a Cygwin section to the manual.
- * Added GETENV_SAFE testing for Cygwin environments. Feedback needed.
- * Fixed bug in function args pnt checking. Thanks TJ and Philippe.
- * Improved pnt checking code to properly check free space above alloc.
- * Fixed possible lock leak in the shutdown code. Thanks TJ.
- * Changed the installing of libraries to install-data.
-
-Version 5.2.1 (07/08/2003):
-
- * Fixed problems with macro arguments not in (). Thanks Paul.
- * Fixed problem with strdup not returning char *. Thanks Dan, Juhani.
-
-Version 5.2.0 (06/10/2003):
-
- * Renamed the "max memory space wasted" to "max unused memory space".
- * Added PDF documentation files to the installation.
- * Fixed a problem with the global Makefile and dmalloc_t. Thanks Bert.
- * Added new logfile expansion of %u as getuid() output.
- * Added new logfile expansion of %h as gethostname() output.
- * Added new logfile expansion of %t as time() output.
- * Added new logfile expansion of %p as getpid() output.
- * Added new logfile expansion of %i as thread-id output.
- * Removed the old logfile % processing. %d no longer expands to pid.
- * Added LOG_PID to settings.dist to log pid on each line of logfile.
- * Added LOG_REOPEN to reopen log if pid changes (fork). Thanks James.
- * Renamed LOG_ITERATION_COUNT to LOG_ITERATION in settings.dist.
- * Renamed STORE_SEEN_COUNT to LOG_PNT_SEEN_COUNT in settings.dist.
- * Renamed STORE_ITERATION_COUNT to LOG_PNT_ITERATION in settings.dist.
- * Renamed STORE_TIME to LOG_PNT_TIME in settings.dist.
- * Renamed STORE_TIMEVAL to LOG_PNT_TIMEVAL in settings.dist.
- * Renamed LOG_THREAD_ID to LOG_PNT_THREAD_ID in settings.dist.
- * Improved the log_stats and log_changed output a bit.
-
-Version 5.1.0 (06/08/2003):
-
- * Fixed the FREED_POINTER_DELAY functionality.
- * Removed PROTECT_BLOCKS from settings.dist because was unused.
- * Added contrib/tsecs perl script which converts epoch secs to ctime.
- * Removed the unused check-lists debug token.
- * Fixed the realloc-copy and never-reuse functionality.
- * Improved the stats output.
- * Added many automatic tests to dmalloc_t.
- * Expanded the arguments to dmalloc_examine to return more information.
- * Found/fixed problem where last-used mark was not set right properly.
- * Found/fixed bad problem where leaked memory was not being reported.
-
-Version 5.0.2 (06/04/2003):
-
- * Fixed some problems and improved code in the test utility dmalloc_t.
- * Integrated an internal random number generator to stop recursion.
- * Improved some of the configure script internals.
- * Added support for a.exe and other cc output forms for Windoze.
-
-Version 5.0.1 (05/20/2003):
-
- * Updated configure.ac script.
- * Added dmalloc_page_size() function.
- * Improved the auto-testing in dmalloc_t.
- * Found a [bad] problem with putting pointers back on the free list.
- * Added some checking of pointers on the free list.
- * Added the per-pointer checking for cleared free memory.
- * Compressed the per-pointer admin structure by 8 bytes.
-
-Version 5.0.0 (05/16/2003):
-
- * Added -M --memory-limit argument to dmalloc to limit allocations.
- * Deprecated log-blocks and heap-check-map debug tokens.
- * Added a currently in use stats to log-stats.
- * Removed a number of old error codes.
- * Fixed some literal ranlib entries in the Makefile.in.
- * Removed the USE_DMALLOC_LEAP functionality to simplify.
- * Added a function to re-open the logfile when processing flags.
- * Added section to docs about debugging daemon and CGI processes.
- * Made some cosmetic improvements to the configure.in script.
- * Due to public pressure, I've made free(0L) not an error by default.
- * Added separate characters for blanking allocs (0xda) vs frees (0xdf).
- * Removed short token support. Was anyone using this?
- * Did some more work on testing and chunk.c changes.
- * Added better autoconf checking of thread libraries for FreeBSD.
- * Added dmalloc_debug_setup function to set dmalloc flags thru a call.
- * Significantly changed how the library manages fence protected allocs.
- * Renamed _dmalloc_logpath to dmalloc_logpath to match the docs and .h.
- * Solved problem with dmalloc_t and no sbrk.
- * Added INTERNAL_MEMORY_SPACE setting to the settings.dist file.
- * Added the 'How It Works' section to the manual.
- * Removed necessity of strcat.
- * Removed use of strcpy internally.
- * Fixed problem with use of start-count and start-file.
-
-Version 4.8.2 (02/26/2001):
-
- * Installed new configure script to remove C++ requirement.
- * Added more information to error messages on freed memory overwrite.
- * Added heap checking when we shutdown if check-blank is enabled.
- * Added separate ALLOC_BLANK_CHAR and FREE_BLANK_CHAR to settings.dist.
-
-Version 4.8.1 (11/14/2000):
-
- * Added --enable-shlib to configure to enable building of shared libs.
- * Added autoconf handling of the shlibdir for installing shared libs.
- * Added improvements to the shared library creation in the Makefile.
- * Fixed the #ident "..."; semi-colon problem.
-
-Version 4.8.0 (11/10/2000):
-
- * Added OpenBSD port information. Hopefully Free/Net/... BSD as well.
- * Renamed malloc.h to malloc_funcs.h to avoid system conflicts.
- * Made log-unknown the default and depreciated the token.
- * Added log-known token to _only_ report on known (file/line) memory.
- * malloc_verify, dmalloc_verify now return [D]MALLOC_VERIFY_[NO]ERROR.
- * Just about every dmalloc function now initializes the library.
- * dmalloc_debug now takes unsigned-int flags and returns the old flags.
- * debug_current now returns an unsigned int flag value.
- * Added autoconfig handling of #ident. I hate Unix's lack of standards.
- * Fixed a bug in chunk.c.
-
-Version 4.7.1 (07/25/2000):
-
- * Fixed problem with check-blank on but not free-blank or alloc-blank.
-
-Version 4.7.0 (07/24/2000):
-
- * Added support for --disable-cxx and --enable-threads to configure.
- * Added autoconf code to see if the return macros work for an system.
- * Renamed USE_RET_ADDRESS to USE_RETURN_MACROS in settings.dist/h.
- * Added threaded C++ library support to Makefile.
- * Fixed problems with -p and -m not setting the debug flags.
- * Added 'force-linear' and depreciated the 'allow-nonlinear' token.
-
-Version 4.6.0 (05/17/2000):
-
- * Reworked internal init values for env vars pointed out by Carlton.
- * Fixed bug found by Mcvey where the 1st dblock alloc in block missed.
- * Moved to 'make cxx' and 'make installcxx' for building C++ library.
- * Removed DMALLOC_VERIFY_[NO]ERROR and replaced with DMALLOC_[NO]ERROR.
- * dmalloc_examine now returns DMALLOC_[NO]ERROR not [NO]ERROR.
- * Added initial mprotect configuration and stub functions.
- * Added autoconf building of cxx library per Dimitri's comments.
- * Revamped rpm.spec and renamed to dmalloc.rpm per Dimitri's comments.
-
-Version 4.5.2 (04/18/2000):
-
- * Fixed bug in chunk.c pointer checking. Thanks Ezra.
- * Cleaned up some of the compat.[ch] headers to better match reality.
- * Reorganized dmalloc.texi documentation and moved to using makeinfo.
-
-Version 4.5.1 (03/30/2000):
-
- * Fixed a compilation problem in dmalloc_lp.c.
-
-Version 4.5.0 (03/29/2000):
-
- * Added new dmalloc_mark() and dmalloc_log_changed() functions.
-
-Version 4.4.0 (03/20/2000):
-
- * Removed the stupid old Deansify.pl script.
- * Added rpm.spec file to the distribution.
- * Added code to fix some recursive problems with open and atexit.
- * Basically encorporated Randell's changes [finally]. Thanks dude.
- * Removed the stupid chunk.c unions. Why did I ever do that?
- * www.dmalloc.com -> dmalloc.com.
- * Added better help messages to dmalloc.
- * Fixed Makefile.dep creation with _th.o special objects.
- * Fixed the outputting of gratuitous colons.
- * Added @uref texinfo tags and new texinfo.tex.
-
-Version 4.3.0 (11/08/1999):
-
- * Fixed problems on Linux with the strdup macro.
- * Added copyright and url info for ident and what.
- * Added support for PTHREAD_MUTEX_INITIALIZER.
- * Added USE_DMALLOC_LEAP define in the settings.dist file.
- * Dmalloc now looks in the current directory for .dmallocrc before ~.
- * Rewrote a significant piece of the dmalloc utility.
- * Increased the filename size from 40 to 100 characters.
-
-Version 4.2.0 (03/11/1999):
-
- * Improved the autoconfig of abort and qsort safety.
- * Added memory tracking function to be called on each mem transaction.
- * Added DUMP_UNFREED_SUMMARY_ONLY variable to settings.dist.
- * Added MEMORY_TABLE_SIZE and MEMORY_TABLE_LOG vars to settings.dist.
- * Fixed problem with valloc exposed by moving to random().
- * Fixed long standing problem with the NEVER-REUSE token.
- * Added memory table code for grouping of allocated and non-freed mem.
- * Removed a number of static variables for string buffers.
- * Removed PERMISSION file and all references to commercial-ness.
- * Moved to internal sprintf code for snprintf, etc..
- * Added dmalloc_message to the exported list of functions.
-
-Version 4.1.2 (12/11/1998):
-
- * Fixed really bad bug which basically killed pthread support.
-
-Version 4.1.1 (11/16/1998):
-
- * Fixed signal autoconfiguration.
-
-Version 4.1.0 (11/16/1998):
-
- * Added HTML versions of the manuals to the releases.
- * Added FREED_POINTER_DELAY in settings.h. Delays pointer reuse.
- * Renamed allow-zero token to be allow-free-null.
- * Added LOG_TIME_NUMBER and LOG_CTIME_STRING to the settings.h.
- * Disabled the log-thread-id macro. Use LOG_THREAD_ID in settings.h.
- * Disabled the log-stamp macro. Use LOG_TIME_NUMBER in settings.h.
- * Added -g (--gdb) flag to dmalloc utility along with gdb script.
- * Added missing delete[] function to the C++ code.
- * Moved some settings from chunk_loc.h into settings.dist.
- * Improved the handling of free(NULL) and malloc(0) settings.
- * Added initial memalign support with a first-time error message.
- * Renamed print-error token to print-messages.
- * Increased the default max memory size from 16mb to 64mb.
-
-Version 4.0.3 (10/15/1998):
-
- * Found and fixed a bug when reallocing a previous valloced section.
-
-Version 4.0.2 (10/15/1998):
-
- * Fixed a problem in return.h and DMALLOC_UNKNOWN_FILE.
-
-Version 4.0.1 (10/08/1998):
-
- * Added startup messages acknowledging the thread status.
- * Fixed problem with thread compilation and chunk.c.
- * Fixed possible race condition with synchronizing with external sbrks.
- * Migrated in new argv code.
-
-Version 4.0.0 (10/04/1998):
-
- * Made a small change to the solaris return.h code.
- * Added recalloc support into the library.
- * Cleaned up the calloc special handling and accounting.
- * Added valloc support to the library for OSF thread libraries.
- * Improved the pthread autoconfiguration and the code.
- * Got rid of the _dmalloc_file and _dmalloc_line crap.
- * Added FTX return.h information.
- * Added direct strdup support to the library.
-
-Version 3.3.1 (02/10/1998):
-
- * Shifted some flags to ints instead of longs.
- * Improved error string handling.
- * Removed allocation macros from the docs and the header.
- * Added realloc(pnt, 0) works like free(pnt).
- * Reworked log_error_info routine's dumping of the upper fence post.
-
-Version 3.3.0 (12/08/1997):
-
- * Added THREAD_LOCK_INIT_VAL autoconfigure.
- * Performed some long overdue major code cleaning.
- * Renamed argv.[ch] to dmalloc_argv.[ch] to not clash with argv files.
- * Added return address handling for SGI.
- * Added better C++ overload functions.
- * Added test for DMALLOC_SIZE unsigned-ness.
- * Added a FINI_DMALLOC setting to settings.dist for OSF __fini_ stuff.
- * Added pthread lock_on -o environmental settings.
-
-Version 3.2.1 (03/21/1997):
-
- * Added to dmalloc the ability to recognize its internal tags.
- * Added better documentation of auto-dmalloc_shutdown.
- * Fixed a number of signed/unsigned problems.
- * Removed autoconf rule in Makefile.all.
- * Cleaned up pthreads locking delay code.
-
-Version 3.2.0 (01/17/1997):
-
- * Added catch-signals debug token.
- * Improved configure script to use cache and new autoconf macros.
- * Updated the GNU support scripts and configure.
- * Fixed the locking for pthread programs. Dumb errors.
- * Ran new fillproto on h-files. IMPORT -> extern.
-
-Version 3.1.3 (12/28/1995):
-
- * Removed silent dumps of test program.
- * Removed some unresolved references in argv.c: strcasecmp, strdup.
- * Fixed some porting problems to Unixware. Unsigned chars!!
-
-Version 3.1.2 (10/10/1995):
-
- * Changes to basic-block handling in chunk. Fixed non-linear code.
- * Added inital thread locking for debugging threaded programs.
- * Added settings.dist file which is copied to settings.h during config.
- * New attempts to auto-configure DMALLOC_SIZE for size_t.
- * Added dmalloc_aborting flag in case kill or abort recurses.
- * Added new[] C++ function.
-
-Version 3.1.1 (08/18/1995):
-
- * Added better non-linear processing.
- * Made non-linear now default behaviour with internal dmalloc tags.
- * Fixed up dmalloc_t to propogate errors better.
-
-Version 3.1.0 (07/14/1995):
-
- * pulled manual settings out of conf.h to settings.h.
- * Added error-dump token for dumping-core and continuing on errors.
-
-Version 3.0.7 (05/31/1995):
-
- * New release to fix some version problems.
-
-Version 3.0.6 (05/12/1995):
-
- * Added Web pointers to online documentation.
- * Added abort() auto-configuration for KILL_PROCESS.
- * Fixed problem with NEVER_REUSE and realloc same block-size.
- * Logged starting/ending time in logfile.
- * Added thread-id tracking with conf.h option.
- * Added pointer-count tracking with conf.h option.
- * Added interation-count tracking with conf.h option.
- * Added global/relative time tracking with conf.h option.
- * Better tag output from dmalloc -t.
- * New version of argv files.
- * Fixed problem with dmalloc -c and start-count.
- * Added some messages about upcoming errors in dmalloc_t.
- * Added allow-zero token for not minding malloc(0) and free(0L).
- * Made all chunk.c global counters longs.
-
-Version 3.0.5 (01/02/1995):
-
- * Fixed some old references to malloc in docs.
-
-Version 3.0.4 (12/15/1994):
-
- * Definitions for DMALLOC_PNT and DMALLOC_FREE_RET.
- * Removed all STRDUP and BDUP macros. Was anyone using them?
- * Added a "dying" message when _malloc_die is called.
- * Reworked the manual a ton. Added Quick-Start+Installation sections.
-
-Version 3.0.3 (11/03/1994):
-
- * Added dmalloc.cc C++ file to distribution.
- * Default is now to build/install a libdmalloclp.a library.
- * Removed the log-error tag. If logfile set then errors are logged.
- * Fixed problem with new args clearing all old ones.
- * Added dmalloc.h.2 creation to config.status file.
- * Added a startup message with the debug flags used to logfile.
- * Fixed errors with FUNC_CHECK code.
- * Added default tags: default,low,medium,high,all to dmalloc.
- * Renamed 'check-free' token to 'check-blank'.
- * Made many changes to make it easier to get running with dmalloc.
- * Added long(-L)/short(-S) options to output debug-tokens in env.
- * Changed some dmalloc options:
- * -T (list-tokens) -> -D (debug-tokens)
- * -L (list-tags) -> -t (list-tags)
- * Added better error logging in chunk.
- * Added DG/UX code to return.h and atexit.c to contrib.
-
-Version 3.0.2 (09/26/1994):
-
- * Fixed strtok error in dmallocrc file processing.
- * Fixed problems with env code when sprintf doesn't returns int.
- * Library now dumps the proper fence-bottom bytes on 1st pointer error.
- * Fixed casting problems on OSF.
-
-Version 3.0.1 (09/20/1994):
-
- * Combined all env variables into DMALLOC_OPTIONS.
- * Added -n flag to dmalloc program for printing/not-doing actions.
- * Fixed zsh and [t]csh alias messages in documentation.
- # Added mkinstalldirs and install.sh to distribution.
- * Renamed _dmalloc_error to dmalloc_error.
- * Removed time() and getpid() from compat functions.
- * Changed DMALLOC_DEBUG_DISABLE flag to DMALLOC_DISABLE.
- * Fixed some include file auto-include messages.
-
-Version 3.0.0 (09/08/1994):
-
- * Fixed a problem with some list checking.
- * Fixed possible recursion problem.
- * Tons of name changes going from malloc_dbg -> dmalloc.
-
-Version 2.2.1 (08/27/1994):
-
- * Small fix to malloc_dbg.3 to remove IMPORT's.
-
-Version 2.2.0 (08/08/1994):
-
- * Fixed xmalloc,xrealloc,etc. override functions.
- * Added xstrdup to the x override function list.
- * Added ability to combine adjacent free blocks into one.
- * 0 or negative MALLOC_INTERVAL values act as if no interval value.
- * Made a 'malloc_dbg -i 0' undefine MALLOC_INTERVAL.
- * Fixed calloc return-address problem.
- * Added KILL_PROCESS macro to configuration scripts.
- * Marty Leisner compiles library on MS-DOG!
- * Fixed some problems with malloc_errno set after call to error.
-
-Version 2.1.0 (05/11/1994):
-
- * Fixed problem with never-reuse going on/off and check-lists.
- * Added -r (random-debug) option to malloc_t.
- * Fixed nasty bug in realloc with alloc-blank + no realloc-copy token.
- * Fixed problem with ANSI-C configure on AIX systems.
- * Fixed some race conditions with sbrk failure.
- * Added -p max-pointers argument to malloc_t.
- * Added 'log-nonfree-space' token for logging unfreed memory space.
- * Added iteration count label to all logfile output. See conf.h.
- * Added xmalloc,xrealloc,etc. override functions.
- * Added better mechanisms for const definition.
- * Lots of install, notes, misc. changes.
- * Renamed token 'log-perror' and 'print-perror' to '...-error'.
-
-Version 2.0.1 (02/27/1994):
-
- * Cleaned up a number of configure/compat functions.
- * Fixed tons of __STDC__ defines. Finally I hope.
- * Added more commands to malloc_t to log information, etc.
-
-Version 2.0.0 (02/18/1994):
-
- * Lots of changes to add argv files in place of argv subdir.
- * Added initial support for external block locating.
- * Added 'allow-nonlinear' token to remove special checks.
- * Renamed dbg_tokens.h -> debug_tok.h and dbg_values.h -> debug_val.h
- * Added -V option to malloc_dbg and desc field for debug-token list.
- * Added a debugging section to the manual.
- * Added light and heavy makefile targets for automatic testing.
- * Much improved heap code with per-block allocations (not base 2).
- * Better free list management with block splitting.
-
-Version 1.3.6 (11/22/1993):
-
- * Fixed some compilation errors with non-STDC systems.
-
-Version 1.3.5 (11/22/1993):
-
- * More automatic and comprehensive malloc_t testing facilities.
- * Added -T (list-tokens) to malloc_dbg: for listing of debug tokens.
- * Added 'never-reuse' token to never reuse free'd memory.
- * Added on_exit and atexit support to auto-call malloc_shutdown.
- * Added hooks to all malloc utility functions to malloc_lp.o.
- * Removed debug token log-ra since log-unknown should be enough.
- * malloc_heap_map() -> malloc_log_heap_map() for consistency.
- * Added malloc_log_unfreed() to dump non-free memory to logfile.
- * Added -m (minus) option to malloc_dbg to allow removing of tokens.
- * Added -p flag to malloc_dbg to allow adding of tokens to debug value.
- * Added DEBUG_LOG_STAMP to add timestamps to log entries.
- * Added malloc_log_stats() to dump stats to a file.
- * Re-added cfree() call. No reason not to have it.
-
-Version 1.3.4 (09/26/1993):
-
- * Fixed compat function problems, added checks for -std1 cc flags.
- * Fixed debug messages to reflect reality.
- * Added malloc_debug_current and changed #if __STDC__ -> #ifdef
- * Removed log-bad-pnt. What an unnecessary token!
-
-Version 1.3.3 (09/20/1993):
-
- * Fixed configuration problems with memcpy/bcopy and memcmp/bcmp.
- * Added free's file/line to log_bad_pnt messages.
- * Renamed all error codes to ERROR_*.
-
-Version 1.3.2 (08/26/1993):
-
- * Removed MALLOC_TRACE and -t, replaced with MALLOC_ADDRESS:0.
- * Fixed some const problems.
- * Added ability of MALLOC_LOGFILE.%d for getpid
-
-Version 1.3.1 (08/24/1993):
-
- * Added 'log-ra' token to log return-address info (NOTE: later removed)
- * Added the beginnings of return-address handling
- * Added -L or --list to malloc_dbg to list all the rc-file tags.
-
-Version 1.3.0 (08/17/1993):
-
- * Added MALLOC_TRACE variable and malloc_dbg -t (NOTE: later removed)
- * Added some C++ from Peter Miller to the manual.
- * Removed LGPL and replaced it with fully free software notices.
- * _malloc_perror renamed to _malloc_error
- * Made malloc_address exported so it can be setable by debugger.
- * Added auto-sensing of shell by malloc_dbg and -C option.
- * Removed dblock checking tokens 'check-dblock-fence' + 'check-dblock'.
-
-Version 1.2.6 (07/13/1993):
-
- * Added 'catch-null' token for quitting as soon as we get sbrk failure.
-
-Version 1.2.5 (06/15/1993):
-
- * Added -r and -k options for auto-unsetting or keeping of variables.
- * Added 'log-bad-space' token and added expand_buf into chunk.c.
- * Create log_bad_pnt in chunk.
-
-Version 1.2.4 (05/13/1993):
-
- * Added -v option to malloc_dbg to provide verbose output.
-
-Version 1.2.3 (04/19/1993):
-
- * Renamed malloc.h to malloc_dbg.h and libmalloc.a to libmalloc_dbg.a.
-
-Version 1.2.2 (04/14/1993):
-
- * Added some more point checking tests to malloc_str.
-
-Version 1.2.1 (04/09/1993):
-
- * Changed to void * internally, put STDC defines in malloc.h for ANSI.
- * Made a number of changes per suggestions from the net.
-
-Version 1.2.0 (04/06/1993):
-
- * Uploaded to comp.sources.unix
diff --git a/dmalloc-5.5.2/.svn/text-base/README.svn-base b/dmalloc-5.5.2/.svn/text-base/README.svn-base
deleted file mode 100644
index 8eba62e..0000000
--- a/dmalloc-5.5.2/.svn/text-base/README.svn-base
+++ /dev/null
@@ -1,93 +0,0 @@
--------------------------------------------------------------------------------
-
-Debug Malloc Library
-********************
-
-Version 5.5.2 - May 2007
-
-The debug memory allocation or "dmalloc" library has been designed as a
-drop in replacement for the system's `malloc', `realloc', `calloc',
-`free' and other memory management routines while providing powerful
-debugging facilities configurable at runtime. These facilities include
-such things as memory-leak tracking, fence-post write detection,
-file/line number reporting, and general logging of statistics.
-
- The library is reasonably portable having been run successfully on at
-least the following operating systems: AIX, DGUX, Free/Net/OpenBSD,
-GNU/Hurd, HPUX, Irix, Linux, Mac OSX, NeXT, OSF/DUX, SCO, Solaris,
-Ultrix, Unixware, MS Windows, and Unicos on a Cray T3E. It also
-provides support for the debugging of threaded programs. *Note Using
-With Threads::.
-
- The package includes the library, configuration scripts, debug
-utility application, test program, and documentation. Online
-documentation as well as the full source is available at URL
-`http://dmalloc.com/'. Details on the library's mailing list are
-available there as well.
-
- Please use the forums at URL `http://dmalloc.com/' to discuss any
-problems or to request features. If you are still having problems, the
-author can be reached via his home page at URL `http://256.com/gray/'
-with questions or feedback. Please include the version number of the
-library that you are using, your machine and operating system types,
-and the value of the DMALLOC_OPTIONS environment variable.
-
- Gray Watson.
-
--------------------------------------------------------------------------------
-
-See the INSTALL file for building, installation, and quick-start notes.
-
--------------------------------------------------------------------------------
-
-DOCUMENTATION:
-
-Examine the dmalloc.html file which contains the user-documentation
-for the dmalloc subsystem. There also is an dmalloc.info file which
-can be installed in the emacs info directory and read with emacs/info
-or the info program available from the texinfo package at GNU archive
-sites. It is also suitable for reading as text. The source of all
-documation is the dmalloc.texi texinfo file which also can generate
-postscript or TeX hardcopy output with the help of the texinfo.tex
-file. You can download the full documentation package or read it
-online from the repository.
-
- http://dmalloc.com/
-
--------------------------------------------------------------------------------
-
-ARGV LIBRARY:
-
-My argv library should have been included with this package
-(argv.[ch], argv_loc.h). I use it with all my binaries. It functions
-similar to the getopt routines in that it provides a standardized way
-of processing arguments. However, that is where the similarity ends.
-You have to write no C code to do the actual processing, it handles
-short -l and long --logfile style options, gives standard short and
-long usage messages, and many other features while trying to comply
-with POSIX specs.
-
-The newest versions of the argv library are available on the web:
-
- http://256.com/sources/argv/
-
--------------------------------------------------------------------------------
-
-THANKS:
-
-Many net folk contributed to the design, development, and overall
-library and my thanks goes out to them all.
-
--------------------------------------------------------------------------------
-
-AUTHOR:
-
-If you have any questions, comments, or problems feel free to send me
-mail.
-
-Gray Watson
-http://256.com/gray/
-
--------------------------------------------------------------------------------
-$Id: README.1,v 1.58 2000/03/30 19:31:56 gray Exp $
--------------------------------------------------------------------------------
diff --git a/dmalloc-5.5.2/.svn/text-base/RELEASE.html.svn-base b/dmalloc-5.5.2/.svn/text-base/RELEASE.html.svn-base
deleted file mode 100644
index 5587431..0000000
--- a/dmalloc-5.5.2/.svn/text-base/RELEASE.html.svn-base
+++ /dev/null
@@ -1,171 +0,0 @@
-
-
-
- Dmalloc Release Notes - 5.5.2
-
-
-
- Debug Malloc (Dmalloc) Library Release Notes
-
-Version: Release 5.5.2
-
-Last-Version: 5.5.1
-Date: May 14, 2007
-
-
-
-Overview
-New Functionality
-Dmalloc Utility
-Debug Tokens
-settings.dist
-Installation
-Programming
-Environmental Variables
-Bugs Fixed
-
-
-
-
-
-
- Bug fix release to fix a couple stupid build and install
-problems.
-
-
-
-
-
-
-None.
-
-
-
-
-
-
-
-None.
-
-
-
-
-
-
-
-None.
-
-
-
-
-
-
-
-None.
-
-
-
-
-
-
-
-- Removed any reference to the info file in the document installation
-process. Added in the installation of dmalloc.pdf.
-
-
-
-
-
-
-
-None.
-
-
-
-
-
-
-
-None.
-
-
-
-
-
-
-
-
-- Removed some left-over references to the dmalloc.info file which
-was causing the installdocs Makefile target to fail.
-
-- Fixed some unsigned/signed issues in one of the dmalloc_t tests
-that was causing occasional false failures of dmalloc_t.
-
-- Fixed problems with configure and SL_LINK_OBJS. Not sure what I
-was trying to attempt with this but it was not correct.
-
-
-
-
-
-Dmalloc Home Page.
-Copyright 2007 Gray Watson.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dmalloc-5.5.2/.svn/text-base/arg_check.c.svn-base b/dmalloc-5.5.2/.svn/text-base/arg_check.c.svn-base
deleted file mode 100644
index 688f26e..0000000
--- a/dmalloc-5.5.2/.svn/text-base/arg_check.c.svn-base
+++ /dev/null
@@ -1,683 +0,0 @@
-/*
- * Functions for testing of string routines arguments.
- *
- * Copyright 2000 by Gray Watson
- *
- * This file is part of the dmalloc package.
- *
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the
- * above copyright notice and this permission notice appear in all
- * copies, and that the name of Gray Watson not be used in advertising
- * or publicity pertaining to distribution of the document or software
- * without specific, written prior permission.
- *
- * Gray Watson makes no representations about the suitability of the
- * software described herein for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * The author may be contacted via http://dmalloc.com/
- *
- * $Id: arg_check.c,v 1.40 2007/03/25 03:06:35 gray Exp $
- */
-
-/*
- * This file contains functions to be used to verify the arguments of
- * string functions. If enabled these can discover problems with
- * heap-based strings (such as fence errors) much closer to the error.
- */
-
-#define DMALLOC_DISABLE
-
-#if HAVE_STRING_H
-# include
-#endif
-#if HAVE_STDLIB_H
-# include
-#endif
-
-#include "conf.h"
-#include "dmalloc.h"
-
-#include "chunk.h"
-#include "debug_tok.h"
-#include "error.h"
-#include "dmalloc_loc.h"
-#include "arg_check.h"
-
-/*
- * Dummy function for checking strlen's arguments.
- */
-static int loc_strlen(const char *file, const int line,
- const char *func, const char *str)
-{
- int len = 0;
- const char *str_p;
-
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if (! dmalloc_verify_pnt(file, line, func, str, 0 /* not exact */, -1)) {
- dmalloc_message("bad pointer argument found in %s", func);
- }
- }
-
- for (str_p = str; *str_p != '\0'; str_p++) {
- len++;
- }
-
- return len;
-}
-
-#if HAVE_ATOI
-/*
- * Dummy function for checking atoi's arguments.
- */
-int _dmalloc_atoi(const char *file, const int line, const char *str)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if (! dmalloc_verify_pnt(file, line, "atoi", str,
- 0 /* not exact */, -1)) {
- dmalloc_message("bad pointer argument found in atoi");
- }
- }
- return atoi(str);
-}
-#endif /* HAVE_ATOI */
-
-#if HAVE_ATOL
-/*
- * Dummy function for checking atol's arguments.
- */
-long _dmalloc_atol(const char *file, const int line, const char *str)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if (! dmalloc_verify_pnt(file, line, "atol", str,
- 0 /* not exact */, -1)) {
- dmalloc_message("bad pointer argument found in atol");
- }
- }
- return atol(str);
-}
-#endif /* HAVE_ATOL */
-
-#if HAVE_BCMP
-/*
- * Dummy function for checking bcmp's arguments.
- */
-int _dmalloc_bcmp(const char *file, const int line,
- const void *b1, const void *b2, const DMALLOC_SIZE len)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if ((! dmalloc_verify_pnt(file, line, "bcmp", b1,
- 0 /* not exact */, len))
- || (! dmalloc_verify_pnt(file, line, "bcmp", b2,
- 0 /* not exact */, len))) {
- dmalloc_message("bad pointer argument found in bcmp");
- }
- }
- return bcmp(b1, b2, len);
-}
-#endif /* HAVE_BCMP */
-
-#if HAVE_BCOPY
-/*
- * Dummy function for checking bcopy's arguments.
- */
-void _dmalloc_bcopy(const char *file, const int line,
- const void *from, void *to, const DMALLOC_SIZE len)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if ((! dmalloc_verify_pnt(file, line, "bcopy", from,
- 0 /* not exact */, len))
- || (! dmalloc_verify_pnt(file, line, "bcopy", to,
- 0 /* not exact */, len))) {
- dmalloc_message("bad pointer argument found in bcopy");
- }
- }
- bcopy(from, to, len);
-}
-#endif /* HAVE_BCOPY */
-
-#if HAVE_BZERO
-/*
- * Dummy function for checking bzero's arguments.
- */
-void _dmalloc_bzero(const char *file, const int line,
- void *buf, const DMALLOC_SIZE len)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if (! dmalloc_verify_pnt(file, line, "bzero", buf,
- 0 /* not exact */, len)) {
- dmalloc_message("bad pointer argument found in bzero");
- }
- }
- bzero(buf, len);
-}
-#endif /* HAVE_BZERO */
-
-#if HAVE_INDEX
-/*
- * Dummy function for checking index's arguments.
- */
-char *_dmalloc_index(const char *file, const int line,
- const char *str, const char ch)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if (! dmalloc_verify_pnt(file, line, "index", str,
- 0 /* not exact */, -1)) {
- dmalloc_message("bad pointer argument found in index");
- }
- }
- return (char *)index(str, ch);
-}
-#endif /* HAVE_INDEX */
-
-#if HAVE_MEMCCPY
-/*
- * Dummy function for checking memccpy's arguments.
- */
-void *_dmalloc_memccpy(const char *file, const int line,
- void *dest, const void *src, const int ch,
- const DMALLOC_SIZE len)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- const char *src_p;
- int min_size;
-
- /* so we have to figure out the max length of the buffer directly here */
- for (src_p = (char *)src; src_p < (char *)src + len; src_p++) {
- if (*src_p == ch) {
- src_p++;
- break;
- }
- }
- min_size = src_p - (char *)src;
-
- /* maybe len maybe first ch */
- if ((! dmalloc_verify_pnt(file, line, "memccpy", dest,
- 0 /* not exact */, min_size))
- || (! dmalloc_verify_pnt(file, line, "memccpy", src,
- 0 /* not exact */, min_size))) {
- dmalloc_message("bad pointer argument found in memccpy");
- }
- }
- return (void *)memccpy(dest, src, ch, len);
-}
-#endif /* HAVE_MEMCCPY */
-
-#if HAVE_MEMCHR
-/*
- * Dummy function for checking memchr's arguments.
- */
-void *_dmalloc_memchr(const char *file, const int line,
- const void *s1, const int ch, const DMALLOC_SIZE len)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if (! dmalloc_verify_pnt(file, line, "memchr", s1,
- 0 /* not exact */, len)) {
- dmalloc_message("bad pointer argument found in memchr");
- }
- }
- return (void *)memchr(s1, ch, len);
-}
-#endif /* HAVE_MEMCHR */
-
-#if HAVE_MEMCMP
-/*
- * Dummy function for checking memcmp's arguments.
- */
-int _dmalloc_memcmp(const char *file, const int line,
- const void *b1, const void *b2, const DMALLOC_SIZE len)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if ((! dmalloc_verify_pnt(file, line, "memcmp", b1,
- 0 /* not exact */, len))
- || (! dmalloc_verify_pnt(file, line, "memcmp", b2,
- 0 /* not exact */, len))) {
- dmalloc_message("bad pointer argument found in memcmp");
- }
- }
- return memcmp(b1, b2, len);
-}
-#endif /* HAVE_MEMCMP */
-
-#if HAVE_MEMCPY
-/*
- * Dummy function for checking memcpy's arguments.
- */
-void *_dmalloc_memcpy(const char *file, const int line,
- void *to, const void *from, const DMALLOC_SIZE len)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if ((! dmalloc_verify_pnt(file, line, "memcpy", to,
- 0 /* not exact */, len))
- || (! dmalloc_verify_pnt(file, line, "memcpy", from,
- 0 /* not exact */, len))) {
- dmalloc_message("bad pointer argument found in memcpy");
- }
-
-#if HAVE_MEMMOVE
- /*
- * If memmove exists, dump out a warning if memcpy is being used
- * for overlapping memory segments.
- */
- if (((char *)from < (char *)to && (char *)from + len > (char *)to)
- || ((char *)to < (char *)from && (char *)to + len > (char *)from)) {
- dmalloc_message("%s:%d: WARNING: memory overlap in memcpy, should use memmove",
- file, line);
- }
-#endif
- }
- return (void *)memcpy(to, from, len);
-}
-#endif /* HAVE_MEMCPY */
-
-#if HAVE_MEMMOVE
-/*
- * Dummy function for checking memmove's arguments.
- */
-void *_dmalloc_memmove(const char *file, const int line,
- void *to, const void *from, const DMALLOC_SIZE len)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if ((! dmalloc_verify_pnt(file, line, "memmove", to,
- 0 /* not exact */, len))
- || (! dmalloc_verify_pnt(file, line, "memmove", from,
- 0 /* not exact */, len))) {
- dmalloc_message("bad pointer argument found in memmove");
- }
- }
- return (void *)memmove(to, from, len);
-}
-#endif /* HAVE_MEMMOVE */
-
-#if HAVE_MEMSET
-/*
- * Dummy function for checking memset's arguments.
- */
-void *_dmalloc_memset(const char *file, const int line, void *buf,
- const int ch, const DMALLOC_SIZE len)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if (! dmalloc_verify_pnt(file, line, "memset", buf,
- 0 /* not exact */, len)) {
- dmalloc_message("bad pointer argument found in memset");
- }
- }
- return (void *)memset(buf, ch, len);
-}
-#endif /* HAVE_MEMSET */
-
-#if HAVE_RINDEX
-/*
- * Dummy function for checking rindex's arguments.
- */
-char *_dmalloc_rindex(const char *file, const int line,
- const char *str, const char ch)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if (! dmalloc_verify_pnt(file, line, "rindex", str,
- 0 /* not exact */, -1)) {
- dmalloc_message("bad pointer argument found in rindex");
- }
- }
- return (char *)rindex(str, ch);
-}
-#endif /* HAVE_RINDEX */
-
-#if HAVE_STRCASECMP
-/*
- * Dummy function for checking strcasecmp's arguments.
- */
-int _dmalloc_strcasecmp(const char *file, const int line,
- const char *s1, const char *s2)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if ((! dmalloc_verify_pnt(file, line, "strcasecmp", s1,
- 0 /* not exact */, -1))
- || (! dmalloc_verify_pnt(file, line, "strcasecmp", s2,
- 0 /* not exact */, -1))) {
- dmalloc_message("bad pointer argument found in strcasecmp");
- }
- }
- return strcasecmp(s1, s2);
-}
-#endif /* HAVE_STRCASECMP */
-
-#if HAVE_STRCAT
-/*
- * Dummy function for checking strcat's arguments.
- */
-char *_dmalloc_strcat(const char *file, const int line,
- char *to, const char *from)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if ((! dmalloc_verify_pnt(file, line, "strcat", to,
- 0 /* not exact */,
- loc_strlen(file, line, "strcat", to)
- + loc_strlen(file, line, "strcat", from) + 1))
- || (! dmalloc_verify_pnt(file, line, "strcat", from,
- 0 /* not exact */, -1))) {
- dmalloc_message("bad pointer argument found in strcat");
- }
- }
- return (char *)strcat(to, from);
-}
-#endif /* HAVE_STRCAT */
-
-#if HAVE_STRCHR
-/*
- * Dummy function for checking strchr's arguments.
- */
-char *_dmalloc_strchr(const char *file, const int line,
- const char *str, const int ch)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if (! dmalloc_verify_pnt(file, line, "strchr", str,
- 0 /* not exact */, -1)) {
- dmalloc_message("bad pointer argument found in strchr");
- }
- }
- return (char *)strchr(str, ch);
-}
-#endif /* HAVE_STRCHR */
-
-#if HAVE_STRCMP
-/*
- * Dummy function for checking strcmp's arguments.
- */
-int _dmalloc_strcmp(const char *file, const int line,
- const char *s1, const char *s2)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if ((! dmalloc_verify_pnt(file, line, "strcmp", s1,
- 0 /* not exact */, -1))
- || (! dmalloc_verify_pnt(file, line, "strcmp", s2,
- 0 /* not exact */, -1))) {
- dmalloc_message("bad pointer argument found in strcmp");
- }
- }
- return strcmp(s1, s2);
-}
-#endif /* HAVE_STRCMP */
-
-#if HAVE_STRCPY
-/*
- * Dummy function for checking strcpy's arguments.
- */
-char *_dmalloc_strcpy(const char *file, const int line,
- char *to, const char *from)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if ((! dmalloc_verify_pnt(file, line, "strcpy", to,
- 0 /* not exact */,
- loc_strlen(file, line, "strcpy", from) + 1))
- || (! dmalloc_verify_pnt(file, line, "strcpy", from,
- 0 /* not exact */, -1))) {
- dmalloc_message("bad pointer argument found in strcpy");
- }
- }
- return (char *)strcpy(to, from);
-}
-#endif /* HAVE_STRCPY */
-
-#if HAVE_STRCSPN
-/*
- * Dummy function for checking strcspn's arguments.
- */
-int _dmalloc_strcspn(const char *file, const int line,
- const char *str, const char *list)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if ((! dmalloc_verify_pnt(file, line, "strcspn", str,
- 0 /* not exact */, -1))
- || (! dmalloc_verify_pnt(file, line, "strcspn", list,
- 0 /* not exact */, -1))) {
- dmalloc_message("bad pointer argument found in strcspn");
- }
- }
- return strcspn(str, list);
-}
-#endif /* HAVE_STRCSPN */
-
-#if HAVE_STRLEN
-/*
- * Dummy function for checking strlen's arguments.
- */
-DMALLOC_SIZE _dmalloc_strlen(const char *file, const int line,
- const char *str)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if (! dmalloc_verify_pnt(file, line, "strlen", str,
- 0 /* not exact */, -1)) {
- dmalloc_message("bad pointer argument found in strlen");
- }
- }
-
- return loc_strlen(file, line, "strlen", str);
-}
-#endif
-
-#if HAVE_STRNCASECMP
-/*
- * Dummy function for checking strncasecmp's arguments.
- */
-int _dmalloc_strncasecmp(const char *file, const int line,
- const char *s1, const char *s2,
- const DMALLOC_SIZE len)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- const char *s1_p, *s2_p;
- int min_size;
-
- /* we go through both pointers up to the length characters */
- for (s1_p = s1, s2_p = s2; s1_p < s1 + len; s1_p++, s2_p++) {
- if (*s1_p == '\0' || *s2_p == '\0') {
- s1_p++;
- break;
- }
- }
- min_size = s1_p - s1;
-
- if ((! dmalloc_verify_pnt(file, line, "strncasecmp", s1,
- 0 /* not exact */, min_size))
- || (! dmalloc_verify_pnt(file, line, "strncasecmp", s2,
- 0 /* not exact */, min_size))) {
- dmalloc_message("bad pointer argument found in strncasecmp");
- }
- }
- return strncasecmp(s1, s2, len);
-}
-#endif /* HAVE_STRNCASECMP */
-
-#if HAVE_STRNCAT
-/*
- * Dummy function for checking strncat's arguments.
- */
-char *_dmalloc_strncat(const char *file, const int line,
- char *to, const char *from, const DMALLOC_SIZE len)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- const char *from_p;
- int min_size;
-
- /* so we have to figure out the max length of the buffers directly here */
- for (from_p = from; from_p < from + len; from_p++) {
- if (*from_p == '\0') {
- /* no need to do ++ here because we +1 for the \0 anyway */
- break;
- }
- }
- min_size = from_p - from;
-
- /* either len or nullc */
- if ((! dmalloc_verify_pnt(file, line, "strncat", to,
- 0 /* not exact */,
- loc_strlen(file, line, "strncat", to) + min_size
- + 1))
- || (! dmalloc_verify_pnt(file, line, "strncat", from,
- 0 /* not exact */, min_size))) {
- dmalloc_message("bad pointer argument found in strncat");
- }
- }
- return (char *)strncat(to, from, len);
-}
-#endif /* HAVE_STRNCAT */
-
-#if HAVE_STRNCMP
-/*
- * Dummy function for checking strncmp's arguments.
- */
-int _dmalloc_strncmp(const char *file, const int line,
- const char *s1, const char *s2,
- const DMALLOC_SIZE len)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- const char *s1_p, *s2_p;
- int min_size;
-
- /* so we have to figure out the max length of the buffers directly here */
- for (s1_p = s1, s2_p = s2; s1_p < s1 + len; s1_p++, s2_p++) {
- if (*s1_p == '\0' || *s2_p == '\0') {
- s1_p++;
- break;
- }
- }
- min_size = s1_p - s1;
-
- /* either len or nullc */
- if ((! dmalloc_verify_pnt(file, line, "strncmp", s1,
- 0 /* not exact */, min_size))
- || (! dmalloc_verify_pnt(file, line, "strncmp", s2,
- 0 /* not exact */, min_size))) {
- dmalloc_message("bad pointer argument found in strncmp");
- }
- }
- return strncmp(s1, s2, len);
-}
-#endif /* HAVE_STRNCMP */
-
-#if HAVE_STRNCPY
-/*
- * Dummy function for checking strncpy's arguments.
- */
-char *_dmalloc_strncpy(const char *file, const int line,
- char *to, const char *from, const DMALLOC_SIZE len)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- const char *from_p;
- int min_size;
-
- /* so we have to figure out the max length of the buffers directly here */
- for (from_p = from; from_p < from + len; from_p++) {
- if (*from_p == '\0') {
- from_p++;
- break;
- }
- }
- min_size = from_p - from;
-
- /* len or until nullc */
- if ((! dmalloc_verify_pnt(file, line, "strncpy", to,
- 0 /* not exact */, min_size))
- || (! dmalloc_verify_pnt(file, line, "strncpy", from,
- 0 /* not exact */, min_size))) {
- dmalloc_message("bad pointer argument found in strncpy");
- }
- }
- return (char *)strncpy(to, from, len);
-}
-#endif /* HAVE_STRNCPY */
-
-#if HAVE_STRPBRK
-/*
- * Dummy function for checking strpbrk's arguments.
- */
-char *_dmalloc_strpbrk(const char *file, const int line,
- const char *str, const char *list)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if ((! dmalloc_verify_pnt(file, line, "strpbrk", str,
- 0 /* not exact */, -1))
- || (! dmalloc_verify_pnt(file, line, "strpbrk", list,
- 0 /* not exact */, -1))) {
- dmalloc_message("bad pointer argument found in strpbrk");
- }
- }
- return (char *)strpbrk(str, list);
-}
-#endif /* HAVE_STRPBRK */
-
-#if HAVE_STRRCHR
-/*
- * Dummy function for checking strrchr's arguments.
- */
-char *_dmalloc_strrchr(const char *file, const int line,
- const char *str, const int ch)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if (! dmalloc_verify_pnt(file, line, "strrchr", str,
- 0 /* not exact */, -1)) {
- dmalloc_message("bad pointer argument found in strrchr");
- }
- }
- return (char *)strrchr(str, ch);
-}
-#endif /* HAVE_STRRCHR */
-
-#if HAVE_STRSPN
-/*
- * Dummy function for checking strspn's arguments.
- */
-int _dmalloc_strspn(const char *file, const int line,
- const char *str, const char *list)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if ((! dmalloc_verify_pnt(file, line, "strspn", str,
- 0 /* not exact */, -1))
- || (! dmalloc_verify_pnt(file, line, "strspn", list,
- 0 /* not exact */, -1))) {
- dmalloc_message("bad pointer argument found in strspn");
- }
- }
- return strspn(str, list);
-}
-#endif /* HAVE_STRSPN */
-
-#if HAVE_STRSTR
-/*
- * Dummy function for checking strstr's arguments.
- */
-char *_dmalloc_strstr(const char *file, const int line,
- const char *str, const char *pat)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if ((! dmalloc_verify_pnt(file, line, "strstr", str,
- 0 /* not exact */, -1))
- || (! dmalloc_verify_pnt(file, line, "strstr", pat,
- 0 /* not exact */, -1))) {
- dmalloc_message("bad pointer argument found in strstr");
- }
- }
- return (char *)strstr(str, pat);
-}
-#endif /* HAVE_STRSTR */
-
-#if HAVE_STRTOK
-/*
- * Dummy function for checking strtok's arguments.
- */
-char *_dmalloc_strtok(const char *file, const int line,
- char *str, const char *sep)
-{
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FUNCS)) {
- if ((str != NULL
- && (! dmalloc_verify_pnt(file, line, "strtok", str,
- 0 /* not exact */, -1)))
- || (! dmalloc_verify_pnt(file, line, "strtok", sep,
- 0 /* not exact */, -1))) {
- dmalloc_message("bad pointer argument found in strtok");
- }
- }
- return (char *)strtok(str, sep);
-}
-#endif /* HAVE_STRTOK */
diff --git a/dmalloc-5.5.2/.svn/text-base/arg_check.h.svn-base b/dmalloc-5.5.2/.svn/text-base/arg_check.h.svn-base
deleted file mode 100644
index 156d994..0000000
--- a/dmalloc-5.5.2/.svn/text-base/arg_check.h.svn-base
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * Defines for malloc string routines...
- *
- * Copyright 2000 by Gray Watson
- *
- * This file is part of the dmalloc package.
- *
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the
- * above copyright notice and this permission notice appear in all
- * copies, and that the name of Gray Watson not be used in advertising
- * or publicity pertaining to distribution of the document or software
- * without specific, written prior permission.
- *
- * Gray Watson makes no representations about the suitability of the
- * software described herein for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * The author may be contacted via http://dmalloc.com/
- *
- * $Id: arg_check.h,v 1.25 2007/03/22 19:40:52 gray Exp $
- */
-
-#ifndef __ARG_CHECK_H__
-#define __ARG_CHECK_H__
-
-#include "conf.h"
-#include "dmalloc.h" /* for DMALLOC_SIZE */
-
-/*<<<<<<<<<< The below prototypes are auto-generated by fillproto */
-
-#if HAVE_ATOI
-/*
- * Dummy function for checking atoi's arguments.
- */
-extern
-int _dmalloc_atoi(const char *file, const int line, const char *str);
-#endif /* if HAVE_ATOI */
-
-#if HAVE_ATOL
-/*
- * Dummy function for checking atol's arguments.
- */
-extern
-long _dmalloc_atol(const char *file, const int line, const char *str);
-#endif /* if HAVE_ATOL */
-
-#if HAVE_BCMP
-/*
- * Dummy function for checking bcmp's arguments.
- */
-extern
-int _dmalloc_bcmp(const char *file, const int line,
- const void *b1, const void *b2, const DMALLOC_SIZE len);
-#endif /* if HAVE_BCMP */
-
-#if HAVE_BCOPY
-/*
- * Dummy function for checking bcopy's arguments.
- */
-extern
-void _dmalloc_bcopy(const char *file, const int line,
- const void *from, void *to, const DMALLOC_SIZE len);
-#endif /* if HAVE_BCOPY */
-
-#if HAVE_BZERO
-/*
- * Dummy function for checking bzero's arguments.
- */
-extern
-void _dmalloc_bzero(const char *file, const int line,
- void *buf, const DMALLOC_SIZE len);
-#endif /* if HAVE_BZERO */
-
-#if HAVE_INDEX
-/*
- * Dummy function for checking index's arguments.
- */
-extern
-char *_dmalloc_index(const char *file, const int line,
- const char *str, const char ch);
-#endif /* if HAVE_INDEX */
-
-#if HAVE_MEMCCPY
-/*
- * Dummy function for checking memccpy's arguments.
- */
-extern
-void *_dmalloc_memccpy(const char *file, const int line,
- void *dest, const void *src, const int ch,
- const DMALLOC_SIZE len);
-#endif /* if HAVE_MEMCCPY */
-
-#if HAVE_MEMCHR
-/*
- * Dummy function for checking memchr's arguments.
- */
-extern
-void *_dmalloc_memchr(const char *file, const int line,
- const void *s1, const int ch, const DMALLOC_SIZE len);
-#endif /* if HAVE_MEMCHR */
-
-#if HAVE_MEMCMP
-/*
- * Dummy function for checking memcmp's arguments.
- */
-extern
-int _dmalloc_memcmp(const char *file, const int line,
- const void *b1, const void *b2, const DMALLOC_SIZE len);
-#endif /* if HAVE_MEMCMP */
-
-#if HAVE_MEMCPY
-/*
- * Dummy function for checking memcpy's arguments.
- */
-extern
-void *_dmalloc_memcpy(const char *file, const int line,
- void *to, const void *from, const DMALLOC_SIZE len);
-#endif /* if HAVE_MEMCPY */
-
-#if HAVE_MEMMOVE
-/*
- * Dummy function for checking memmove's arguments.
- */
-extern
-void *_dmalloc_memmove(const char *file, const int line,
- void *to, const void *from, const DMALLOC_SIZE len);
-#endif /* if HAVE_MEMMOVE */
-
-#if HAVE_MEMSET
-/*
- * Dummy function for checking memset's arguments.
- */
-extern
-void *_dmalloc_memset(const char *file, const int line, void *buf,
- const int ch, const DMALLOC_SIZE len);
-#endif /* if HAVE_MEMSET */
-
-#if HAVE_RINDEX
-/*
- * Dummy function for checking rindex's arguments.
- */
-extern
-char *_dmalloc_rindex(const char *file, const int line,
- const char *str, const char ch);
-#endif /* if HAVE_RINDEX */
-
-#if HAVE_STRCASECMP
-/*
- * Dummy function for checking strcasecmp's arguments.
- */
-extern
-int _dmalloc_strcasecmp(const char *file, const int line,
- const char *s1, const char *s2);
-#endif /* if HAVE_STRCASECMP */
-
-#if HAVE_STRCAT
-/*
- * Dummy function for checking strcat's arguments.
- */
-extern
-char *_dmalloc_strcat(const char *file, const int line,
- char *to, const char *from);
-#endif /* if HAVE_STRCAT */
-
-#if HAVE_STRCHR
-/*
- * Dummy function for checking strchr's arguments.
- */
-extern
-char *_dmalloc_strchr(const char *file, const int line,
- const char *str, const int ch);
-#endif /* if HAVE_STRCHR */
-
-#if HAVE_STRCMP
-/*
- * Dummy function for checking strcmp's arguments.
- */
-extern
-int _dmalloc_strcmp(const char *file, const int line,
- const char *s1, const char *s2);
-#endif /* if HAVE_STRCMP */
-
-#if HAVE_STRCPY
-/*
- * Dummy function for checking strcpy's arguments.
- */
-extern
-char *_dmalloc_strcpy(const char *file, const int line,
- char *to, const char *from);
-#endif /* if HAVE_STRCPY */
-
-#if HAVE_STRCSPN
-/*
- * Dummy function for checking strcspn's arguments.
- */
-extern
-int _dmalloc_strcspn(const char *file, const int line,
- const char *str, const char *list);
-#endif /* if HAVE_STRCSPN */
-
-#if HAVE_STRLEN
-/*
- * Dummy function for checking strlen's arguments.
- */
-extern
-DMALLOC_SIZE _dmalloc_strlen(const char *file, const int line,
- const char *str);
-#endif /* if HAVE_STRLEN */
-
-#if HAVE_STRNCASECMP
-/*
- * Dummy function for checking strncasecmp's arguments.
- */
-extern
-int _dmalloc_strncasecmp(const char *file, const int line,
- const char *s1, const char *s2,
- const DMALLOC_SIZE len);
-#endif /* if HAVE_STRNCASECMP */
-
-#if HAVE_STRNCAT
-/*
- * Dummy function for checking strncat's arguments.
- */
-extern
-char *_dmalloc_strncat(const char *file, const int line,
- char *to, const char *from, const DMALLOC_SIZE len);
-#endif /* if HAVE_STRNCAT */
-
-#if HAVE_STRNCMP
-/*
- * Dummy function for checking strncmp's arguments.
- */
-extern
-int _dmalloc_strncmp(const char *file, const int line,
- const char *s1, const char *s2,
- const DMALLOC_SIZE len);
-#endif /* if HAVE_STRNCMP */
-
-#if HAVE_STRNCPY
-/*
- * Dummy function for checking strncpy's arguments.
- */
-extern
-char *_dmalloc_strncpy(const char *file, const int line,
- char *to, const char *from, const DMALLOC_SIZE len);
-#endif /* if HAVE_STRNCPY */
-
-#if HAVE_STRPBRK
-/*
- * Dummy function for checking strpbrk's arguments.
- */
-extern
-char *_dmalloc_strpbrk(const char *file, const int line,
- const char *str, const char *list);
-#endif /* if HAVE_STRPBRK */
-
-#if HAVE_STRRCHR
-/*
- * Dummy function for checking strrchr's arguments.
- */
-extern
-char *_dmalloc_strrchr(const char *file, const int line,
- const char *str, const int ch);
-#endif /* if HAVE_STRRCHR */
-
-#if HAVE_STRSPN
-/*
- * Dummy function for checking strspn's arguments.
- */
-extern
-int _dmalloc_strspn(const char *file, const int line,
- const char *str, const char *list);
-#endif /* if HAVE_STRSPN */
-
-#if HAVE_STRSTR
-/*
- * Dummy function for checking strstr's arguments.
- */
-extern
-char *_dmalloc_strstr(const char *file, const int line,
- const char *str, const char *pat);
-#endif /* if HAVE_STRSTR */
-
-#if HAVE_STRTOK
-/*
- * Dummy function for checking strtok's arguments.
- */
-extern
-char *_dmalloc_strtok(const char *file, const int line,
- char *str, const char *sep);
-#endif /* if HAVE_STRTOK */
-
-/*<<<<<<<<<< This is end of the auto-generated output from fillproto. */
-
-#endif /* ! __ARG_CHECK_H__ */
diff --git a/dmalloc-5.5.2/.svn/text-base/chunk.c.svn-base b/dmalloc-5.5.2/.svn/text-base/chunk.c.svn-base
deleted file mode 100644
index bb2408a..0000000
--- a/dmalloc-5.5.2/.svn/text-base/chunk.c.svn-base
+++ /dev/null
@@ -1,3280 +0,0 @@
-/*
- * Memory chunk low-level allocation routines
- *
- * Copyright 2000 by Gray Watson
- *
- * This file is part of the dmalloc package.
- *
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the
- * above copyright notice and this permission notice appear in all
- * copies, and that the name of Gray Watson not be used in advertising
- * or publicity pertaining to distribution of the document or software
- * without specific, written prior permission.
- *
- * Gray Watson makes no representations about the suitability of the
- * software described herein for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * The author may be contacted via http://dmalloc.com/
- *
- * $Id: chunk.c,v 1.217 2007/03/25 18:53:41 gray Exp $
- */
-
-/*
- * This file contains algorithm level routine for the heap. They handle the
- * manipulation and administration of chunks of memory.
- */
-
-#include
-
-#if HAVE_STRING_H
-# include
-#endif
-#if HAVE_STDLIB_H
-# include
-#endif
-
-#define DMALLOC_DISABLE
-
-#include "conf.h"
-
-#if LOG_PNT_TIMEVAL
-#ifdef TIMEVAL_INCLUDE
-# include TIMEVAL_INCLUDE
-#endif
-#else
-# if LOG_PNT_TIME
-# ifdef TIME_INCLUDE
-# include TIME_INCLUDE
-# endif
-# endif
-#endif
-
-#include "dmalloc.h"
-
-#include "chunk.h"
-#include "chunk_loc.h"
-#include "compat.h"
-#include "debug_tok.h"
-#include "dmalloc_loc.h"
-#include "dmalloc_rand.h"
-#include "dmalloc_tab.h"
-#include "error.h"
-#include "error_val.h"
-#include "heap.h"
-
-/*
- * Library Copyright and URL information for ident and what programs
- */
-#if IDENT_WORKS
-#ident "@(#) $Copyright: Dmalloc package Copyright 2007 by Gray Watson $"
-#ident "@(#) $URL: Source for dmalloc available from http://dmalloc.com/ $"
-#else
-static char *copyright =
- "@(#) $Copyright: Dmalloc package Copyright 2007 by Gray Watson $";
-static char *source_url =
- "@(#) $URL: Source for dmalloc available from http://dmalloc.com/ $";
-#endif
-
-#if LOCK_THREADS
-#if IDENT_WORKS
-#ident "@(#) $Information: lock-threads is enabled $"
-#else
-static char *information = "@(#) $Information: lock-threads is enabled $";
-#endif
-#endif
-
-/*
- * exported variables
- */
-/* limit in how much memory we are allowed to allocate */
-unsigned long _dmalloc_memory_limit = 0;
-
-/* total number of bytes that the heap has allocated */
-unsigned long _dmalloc_alloc_total = 0;
-
-/*
- * local variables
- */
-
-/*
- * Skip list of our free list sorted by size in bytes. Bit of a hack
- * here. Basically we cannot do a alloc for the structure and we'd
- * like it to be static storage so we allocate an array of them to
- * make sure we have enough forward pointers, when all we need is
- * SKIP_SLOT_SIZE(MAX_SKIP_LEVEL + 1) bytes.
- */
-static skip_alloc_t skip_free_alloc[MAX_SKIP_LEVEL /* read note ^^ */];
-static skip_alloc_t *skip_free_list = skip_free_alloc;
-
-/* skip list of all of our allocated blocks sorted by address */
-static skip_alloc_t skip_address_alloc[MAX_SKIP_LEVEL /* read note ^^ */];
-static skip_alloc_t *skip_address_list = skip_address_alloc;
-
-/* update slots which we use to update the skip lists */
-static skip_alloc_t skip_update[MAX_SKIP_LEVEL /* read note ^^ */];
-
-/* linked list of slots of various sizes */
-static skip_alloc_t *entry_free_list[MAX_SKIP_LEVEL];
-/* linked list of blocks of the sizes */
-static entry_block_t *entry_blocks[MAX_SKIP_LEVEL];
-/* linked list of freed blocks on hold waiting for the FREED_POINTER_DELAY */
-static skip_alloc_t *free_wait_list_head = NULL;
-static skip_alloc_t *free_wait_list_tail = NULL;
-
-/* administrative structures */
-static char fence_bottom[FENCE_BOTTOM_SIZE];
-static char fence_top[FENCE_TOP_SIZE];
-static int bit_sizes[BASIC_BLOCK]; /* number bits for div-blocks*/
-
-/* memory tables */
-static mem_table_t mem_table_alloc[MEM_ALLOC_ENTRIES];
-static int mem_table_alloc_c = 0;
-static mem_table_t mem_table_changed[MEM_CHANGED_ENTRIES];
-static int mem_table_changed_c = 0;
-
-/* memory stats */
-static unsigned long alloc_current = 0; /* current memory usage */
-static unsigned long alloc_maximum = 0; /* maximum memory usage */
-static unsigned long alloc_cur_given = 0; /* current mem given */
-static unsigned long alloc_max_given = 0; /* maximum mem given */
-static unsigned long alloc_one_max = 0; /* maximum at once */
-static unsigned long free_space_bytes = 0; /* count the free bytes */
-
-/* pointer stats */
-static unsigned long alloc_cur_pnts = 0; /* current pointers */
-static unsigned long alloc_max_pnts = 0; /* maximum pointers */
-static unsigned long alloc_tot_pnts = 0; /* total pointers */
-
-/* admin counts */
-static unsigned long heap_check_c = 0; /* count of heap-checks */
-static unsigned long user_block_c = 0; /* count of blocks */
-static unsigned long admin_block_c = 0; /* count of admin blocks */
-
-/* alloc counts */
-static unsigned long func_malloc_c = 0; /* count the mallocs */
-static unsigned long func_calloc_c = 0; /* # callocs, done in alloc */
-static unsigned long func_realloc_c = 0; /* count the reallocs */
-static unsigned long func_recalloc_c = 0; /* count the reallocs */
-static unsigned long func_memalign_c = 0; /* count the memaligns */
-static unsigned long func_valloc_c = 0; /* count the veallocs */
-static unsigned long func_new_c = 0; /* count the news */
-static unsigned long func_free_c = 0; /* count the frees */
-static unsigned long func_delete_c = 0; /* count the deletes */
-
-/**************************** skip list routines *****************************/
-
-/*
- * static int random_level
- *
- * DESCRIPTION:
- *
- * Return a random level to be associated with a new free-list entry.
- *
- * RETURNS:
- *
- * Random level from 0 to max_level - 1.
- *
- * ARGUMENTS:
- *
- * max_level -> Maximum level of the free-list.
- */
-static int random_level(const int max_level)
-{
- int level_c;
-
- for (level_c = 0; level_c < max_level; level_c++) {
- /*
- * Basically we count the number of times that the random number
- * generator returns an odd number in a row. On average this
- * should return 0 1/2 the time, 1 1/4 of the time, 2 1/8 of a
- * time, and N 1/(2^(N - 1)) of the time. This is what we want.
- * We could test for this in the configure scripts.
- *
- * Since many machines return random numbers which aren't that
- * random, there may be better ways of doing this. In the past I
- * had (_dmalloc_rand() % 10000 >= 5000) or something but I'd
- * rather not have the % overhead here.
- */
- if (_dmalloc_rand() & 1) {
- break;
- }
- }
-
- return level_c;
-}
-
-/*
- * static skip_alloc_t *find_address
- *
- * DESCRIPTION:
- *
- * Look for a specific address in the skip list. If it exist then a
- * pointer to the matching slot is returned otherwise NULL. Either
- * way, the links that were traversed to get there are set in the
- * update slot which has the maximum number of levels.
- *
- * RETURNS:
- *
- * Success - Pointer to the slot which matches the block-num and size
- * pair.
- *
- * Failure - NULL and this will not set dmalloc_errno
- *
- * ARGUMENTS:
- *
- * address -> Address we are looking for.
- *
- * free_b -> Look on the free list otherwise look on the used list.
- *
- * exact_b -> Set to 1 to find the exact pointer. If 0 then the
- * address could be inside a block.
- *
- * update_p -> Pointer to the skip_alloc entry we are using to hold
- * the update pointers.
- */
-static skip_alloc_t *find_address(const void *address, const int free_b,
- const int exact_b,
- skip_alloc_t *update_p)
-{
- int level_c;
- skip_alloc_t *slot_p, *found_p = NULL, *next_p;
-
- /* skip_address_max_level */
- level_c = MAX_SKIP_LEVEL - 1;
- if (free_b) {
- slot_p = skip_free_list;
- }
- else {
- slot_p = skip_address_list;
- }
-
- /* traverse list to smallest entry */
- while (1) {
-
- /* next on we are looking for */
- next_p = slot_p->sa_next_p[level_c];
-
- /*
- * sort by address
- */
-
- /* are we are at the end of a row? */
- if (next_p == NULL) {
- /* just go down a level */
- }
- else if (next_p == found_p
- || (char *)next_p->sa_mem > (char *)address) {
- /* just go down a level */
- }
- else if ((char *)next_p->sa_mem == (char *)address) {
- /* found it and go down a level */
- found_p = next_p;
- }
- /*
- * (char *)next_p->sa_mem < (char *)address
- */
- else if ((! exact_b)
- && ((char *)next_p->sa_mem + next_p->sa_total_size >
- (char *)address)) {
- /*
- * if we are doing loose searches and this block contains this
- * pointer then we have a match
- */
- found_p = next_p;
- }
- else {
- /* next slot is less, go right */
- slot_p = next_p;
- continue;
- }
-
- /* we are lowering the level */
-
- update_p->sa_next_p[level_c] = slot_p;
- if (level_c == 0) {
- break;
- }
- level_c--;
- }
-
- return found_p;
-}
-
-/*
- * static skip_alloc_t *find_free_size
- *
- * DESCRIPTION:
- *
- * Look for a specific size in the free skip list. If it exist then a
- * pointer to the matching slot is returned otherwise NULL. Either
- * way, the links that were traversed to get there are set in the
- * update slot which has the maximum number of levels.
- *
- * RETURNS:
- *
- * Success - Pointer to the slot which matches the size pair.
- *
- * Failure - NULL
- *
- * ARGUMENTS:
- *
- * address -> Address we are looking for.
- *
- * update_p -> Pointer to the skip_alloc entry we are using to hold
- * the update pointers.
- */
-static skip_alloc_t *find_free_size(const unsigned int size,
- skip_alloc_t *update_p)
-{
- int level_c, cmp;
- skip_alloc_t *slot_p, *found_p = NULL, *next_p;
-
- /* skip_free_max_level */
- level_c = MAX_SKIP_LEVEL - 1;
- slot_p = skip_free_list;
-
- /* traverse list to smallest entry */
- while (1) {
-
- /* next on we are looking for */
- next_p = slot_p->sa_next_p[level_c];
-
- /* are we are at the end of a row? */
- if (next_p == NULL
- || next_p == found_p) {
- /* just go down a level */
- }
- else {
- cmp = next_p->sa_total_size - size;
- if (cmp < 0) {
- /* next slot is less, go right */
- slot_p = next_p;
- continue;
- }
- else if (cmp == 0) {
- /*
- * we found a match but it may not be the first slot with this
- * size and we want the first match
- */
- found_p = next_p;
- }
- }
-
- /* we are lowering the level */
-
- update_p->sa_next_p[level_c] = slot_p;
- if (level_c == 0) {
- break;
- }
- level_c--;
- }
-
- /* space should be free */
- if (found_p != NULL && (! BIT_IS_SET(found_p->sa_flags, ALLOC_FLAG_FREE))) {
- /* sanity check */
- dmalloc_errno = ERROR_ADDRESS_LIST;
- dmalloc_error("find_free_size");
- return NULL;
- }
-
- return found_p;
-}
-
-/*
- * static int insert_slot
- *
- * DESCRIPTION:
- *
- * Insert an address entry into a skip list.
- *
- * RETURNS:
- *
- * Success - 1
- *
- * Failure - 0
- *
- * ARGUMENTS:
- *
- * slot_p <-> Slot that we are inserting into the skip list.
- *
- * free_b -> Insert a free address in the free-size list otherwise it
- * will go into the used address list.
- */
-static int insert_slot(skip_alloc_t *slot_p, const int free_b)
-{
- skip_alloc_t *adjust_p, *update_p;
- int level_c;
-
- update_p = skip_update;
-
- if (free_b) {
- (void)find_free_size(slot_p->sa_total_size, update_p);
- /*
- * NOTE: we can get a new_p because there might be other blocks of
- * the same size which we will be inserting before.
- */
- }
- else if (find_address(slot_p->sa_mem, 0 /* used list */, 1 /* exact */,
- update_p) != NULL) {
- /*
- * Sanity check. We should not have found it since that means
- * that someone has the same size and block-num.
- */
- dmalloc_errno = ERROR_ADDRESS_LIST;
- dmalloc_error("insert_slot");
- return 0;
- }
-
- /* update the block skip list */
- for (level_c = 0; level_c <= slot_p->sa_level_n; level_c++) {
- /*
- * We are inserting our new slot after each of the slots in the
- * update array. So for each level, we get the slot we are
- * adjusting, we take it's next pointers and set them in the new
- * slot, and we point its next pointers to the new slot.
- */
- adjust_p = update_p->sa_next_p[level_c];
- slot_p->sa_next_p[level_c] = adjust_p->sa_next_p[level_c];
- adjust_p->sa_next_p[level_c] = slot_p;
- }
-
- return 1;
-}
-
-/*
- * static int alloc_slots
- *
- * DESCRIPTION:
- *
- * Allocate a block of new slots of a certain size and add them to the
- * free list. If there are none in the linked list then we will
- * allocate a block of the size.
- *
- * RETURNS:
- *
- * Success - Valid pointer to a single block that was allocated for
- * the slots.
- *
- * Failure - NULL
- *
- * ARGUMENTS:
- *
- * level_n -> Number of the level we are looking for. Set to 0 to
- * have it be chosen at random.
- */
-static void *alloc_slots(const int level_n)
-{
- skip_alloc_t *new_p;
- entry_block_t *block_p;
- unsigned int *magic3_p, magic3;
- int size, new_c;
-
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_LOG_ADMIN)) {
- dmalloc_message("need a block of slots for level %d", level_n);
- }
-
- /* we need to allocate a new block of the slots of this level */
- block_p = _dmalloc_heap_alloc(BLOCK_SIZE);
- if (block_p == NULL) {
- /*
- * Sanity check. Out of heap memory. Error code set in
- * _dmalloc_heap_alloc().
- */
- return NULL;
- }
- memset(block_p, 0, BLOCK_SIZE);
- admin_block_c++;
-
- /* intialize the block structure */
- block_p->eb_magic1 = ENTRY_BLOCK_MAGIC1;
- block_p->eb_level_n = level_n;
- block_p->eb_magic2 = ENTRY_BLOCK_MAGIC2;
-
- /* add the block on the entry block linked list */
- block_p->eb_next_p = entry_blocks[level_n];
- entry_blocks[level_n] = block_p;
-
- /* put the magic3 at the end of the block */
- magic3_p = (unsigned int *)((char *)block_p + BLOCK_SIZE -
- sizeof(*magic3_p));
- magic3 = ENTRY_BLOCK_MAGIC3;
- memcpy(magic3_p, &magic3, sizeof(*magic3_p));
-
- /* get the size of the slot */
- size = SKIP_SLOT_SIZE(level_n);
-
- /* add in all of the unused slots to the linked list */
- new_c = 1;
- for (new_p = &block_p->eb_first_slot;
- (char *)new_p + size < (char *)magic3_p;
- new_p = (skip_alloc_t *)((char *)new_p + size)) {
- new_p->sa_level_n = level_n;
- new_p->sa_next_p[0] = entry_free_list[level_n];
- entry_free_list[level_n] = new_p;
- new_c++;
- }
-
- /* extern pointer information set in _dmalloc_heap_alloc */
- return block_p;
-}
-
-/*
- * static int remove_slot
- *
- * DESCRIPTION:
- *
- * Remove a slot from the skip list.
- *
- * RETURNS:
- *
- * Success - 1
- *
- * Failure - 0
- *
- * ARGUMENTS:
- *
- * delete_p -> Pointer to the block we are deleting from the list.
- *
- * update_p -> Pointer to the skip_alloc entry we are using to hold
- * the update pointers.
- */
-static int remove_slot(skip_alloc_t *delete_p, skip_alloc_t *update_p)
-{
- skip_alloc_t *adjust_p;
- int level_c;
-
- /* update the block skip list */
- for (level_c = 0; level_c <= MAX_SKIP_LEVEL; level_c++) {
-
- /*
- * The update node holds pointers to the slots which are pointing
- * to the one we want since we need to update those pointers
- * ahead.
- */
- adjust_p = update_p->sa_next_p[level_c];
-
- /*
- * If the pointer in question is not pointing to the deleted slot
- * then the deleted slot is shorter than this level and we are
- * done. This is guaranteed if we have a proper skip list.
- */
- if (adjust_p->sa_next_p[level_c] != delete_p) {
- break;
- }
-
- /*
- * We are deleting a slot after each of the slots in the update
- * array. So for each level, we get the slot we are adjusting, we
- * set it's next pointers to the next pointers at the same level
- * from the deleted slot.
- */
- adjust_p->sa_next_p[level_c] = delete_p->sa_next_p[level_c];
- }
-
- /*
- * Sanity check here, we should always have at least 1 pointer to
- * the found node that we are deleting.
- */
- if (level_c == 0) {
- dmalloc_errno = ERROR_ADDRESS_LIST;
- dmalloc_error("remove_slot");
- return 0;
- }
-
- return 1;
-}
-
-/*
- * static skip_alloc_t *get_slot
- *
- * DESCRIPTION:
- *
- * Get a new slot of a certain size. This calls alloc_slot and then
- * does a whole bunch of things if alloc_slots generates the need for
- * two new slots. Jumping through hoops to get this right.
- *
- * RETURNS:
- *
- * Success - Valid skip-alloc pointer.
- *
- * Failure - NULL
- *
- * ARGUMENTS:
- *
- * None.
- */
-static skip_alloc_t *get_slot(void)
-{
- skip_alloc_t *new_p;
- int level_n, slot_size;
- void *admin_mem;
-
- /* generate the level for our new slot */
- level_n = random_level(MAX_SKIP_LEVEL);
- slot_size = SKIP_SLOT_SIZE(level_n);
-
- /* get an extry from the free list */
- new_p = entry_free_list[level_n];
- if (new_p != NULL) {
- /* shift the linked list over */
- entry_free_list[level_n] = new_p->sa_next_p[0];
- /* zero our slot entry */
- memset(new_p, 0, slot_size);
- new_p->sa_level_n = level_n;
- return new_p;
- }
-
- /*
- * Okay, this is a little wild. Holding on?
- *
- * So we are trying to get a slot of a certain size to store
- * something in a skip list. We didn't have any on the free-list so
- * now we will allocate a block. We allocate a block of memory to
- * hold the slots meaning that we may need 1 new slot to account for
- * the admin and external memory in addition to the 1 requested.
- *
- * To do it right, would take a recursive call to get_slot which I
- * am not willing to do so we will have 2 blocks in a row which have
- * the same height. This is less than efficient but oh well.
- */
-
- /* add in all of the unused slots to the linked list */
- admin_mem = alloc_slots(level_n);
- if (admin_mem == NULL) {
- /* Sanity check. Error code set in alloc_slots(). */
- return NULL;
- }
-
- /* get one for the admin memory */
- new_p = entry_free_list[level_n];
- if (new_p == NULL) {
- /*
- * Sanity check. We should have created a whole bunch of
- * addresses.
- */
- dmalloc_errno = ERROR_ADDRESS_LIST;
- dmalloc_error("get_slot");
- return NULL;
- }
- entry_free_list[level_n] = new_p->sa_next_p[0];
- memset(new_p, 0, slot_size);
- new_p->sa_flags = ALLOC_FLAG_ADMIN;
- new_p->sa_mem = admin_mem;
- new_p->sa_total_size = BLOCK_SIZE;
- new_p->sa_level_n = level_n;
-
- /* now put it in the used list */
- if (! insert_slot(new_p, 0 /* used list */)) {
- /* Sanity check. error code set in insert_slot(). */
- return NULL;
- }
-
- /* now get one for the user */
- new_p = entry_free_list[level_n];
- if (new_p == NULL) {
- /*
- * Sanity check. We should have created a whole bunch of
- * addresses.
- */
- dmalloc_errno = ERROR_ADDRESS_LIST;
- dmalloc_error("get_slot");
- return NULL;
- }
- entry_free_list[level_n] = new_p->sa_next_p[0];
- memset(new_p, 0, slot_size);
- new_p->sa_level_n = level_n;
-
- /* level_np set up top */
- return new_p;
-}
-
-/*
- * static skip_alloc_t *insert_address
- *
- * DESCRIPTION:
- *
- * Insert an address entry into a skip list.
- *
- * RETURNS:
- *
- * Success - Valid slot pointer.
- *
- * Failure - NULL
- *
- * ARGUMENTS:
- *
- * address -> Address we are inserting into the address list.
- *
- * free_b -> Insert a free address in the free-size list otherwise it
- * will go into the used address list.
- *
- * tot_size -> Total size of the chunk that we are inserting into the
- * list.
- */
-static skip_alloc_t *insert_address(void *address, const int free_b,
- const unsigned int tot_size)
-{
- skip_alloc_t *new_p;
-
- /* get a new entry */
- new_p = get_slot();
- if (new_p == NULL) {
- /* error code set in get_slot */
- return NULL;
- }
- if (free_b) {
- new_p->sa_flags = ALLOC_FLAG_FREE;
- }
- else {
- new_p->sa_flags = ALLOC_FLAG_USER;
- }
- new_p->sa_mem = address;
- new_p->sa_total_size = tot_size;
-
- /* now try and insert the slot into the skip-list */
- if (! insert_slot(new_p, free_b)) {
- /* Sanity check. error code set in insert_slot(). */
- return NULL;
- }
-
- return new_p;
-}
-
-/******************************* misc routines *******************************/
-
-/*
- * static int expand_chars
- *
- * DESCRIPTION:
- *
- * Copies a buffer into a output buffer while translates
- * non-printables into %03o octal values. If it can, it will also
- * translate certain \ characters (\r, \n, etc.) into \\%c. The
- * routine is useful for printing out binary values.
- *
- * Note: It does _not_ add a \0 at the end of the output buffer.
- *
- * RETURNS:
- *
- * Returns the number of characters added to the output buffer.
- *
- * ARGUMENTS:
- *
- * buf - the buffer to convert.
- *
- * buf_size - size of the buffer. If < 0 then it will expand till it
- * sees a \0 character.
- *
- * out - destination buffer for the convertion.
- *
- * out_size - size of the output buffer.
- */
-static int expand_chars(const void *buf, const int buf_size,
- char *out, const int out_size)
-{
- const unsigned char *buf_p, *spec_p;
- char *out_p = out, *bounds_p;
-
- /* setup our max pointer */
- bounds_p = out + out_size;
-
- /* run through the input buffer, counting the characters as we go */
- for (buf_p = (const unsigned char *)buf;
- buf_p < (const unsigned char *)buf + buf_size;
- buf_p++) {
-
- /* search for special characters */
- for (spec_p = (unsigned char *)SPECIAL_CHARS + 1;
- *(spec_p - 1) != '\0';
- spec_p += 2) {
- if (*spec_p == *buf_p) {
- break;
- }
- }
-
- /* did we find one? */
- if (*(spec_p - 1) != '\0') {
- if (out_p + 2 >= bounds_p) {
- break;
- }
- out_p += loc_snprintf(out_p, bounds_p - out_p, "\\%c", *(spec_p - 1));
- continue;
- }
-
- /* print out any 7-bit printable characters */
- if (*buf_p < 128 && isprint(*buf_p)) {
- if (out_p + 1 >= bounds_p) {
- break;
- }
- *out_p = *(char *)buf_p;
- out_p += 1;
- }
- else {
- if (out_p + 4 >= bounds_p) {
- break;
- }
- out_p += loc_snprintf(out_p, bounds_p - out_p, "\\%03o", *buf_p);
- }
- }
- /* try to punch the null if we have space in case the %.*s doesn't work */
- if (out_p < bounds_p) {
- *out_p = '\0';
- }
-
- return out_p - out;
-}
-
-/*
- * static void get_pnt_info
- *
- * DESCRIPTION:
- *
- * With a slot, set a number of pointers to places within the block.
- *
- * RETURNS:
- *
- * None.
- *
- * ARGUMENTS:
- *
- * slot_p -> Pointer to a slot structure that we are getting info on.
- *
- * info_p <-> Pointer to an info structure that we are filling with
- * information.
- */
-static void get_pnt_info(const skip_alloc_t *slot_p, pnt_info_t *info_p)
-{
- info_p->pi_fence_b = BIT_IS_SET(slot_p->sa_flags, ALLOC_FLAG_FENCE);
- info_p->pi_valloc_b = BIT_IS_SET(slot_p->sa_flags, ALLOC_FLAG_VALLOC);
- info_p->pi_blanked_b = BIT_IS_SET(slot_p->sa_flags, ALLOC_FLAG_BLANK);
-
- info_p->pi_alloc_start = slot_p->sa_mem;
-
- if (info_p->pi_fence_b) {
- if (info_p->pi_valloc_b) {
- info_p->pi_user_start = (char *)info_p->pi_alloc_start + BLOCK_SIZE;
- info_p->pi_fence_bottom = (char *)info_p->pi_user_start -
- FENCE_BOTTOM_SIZE;
- }
- else {
- info_p->pi_fence_bottom = info_p->pi_alloc_start;
- info_p->pi_user_start = (char *)info_p->pi_alloc_start +
- FENCE_BOTTOM_SIZE;
- }
- }
- else {
- info_p->pi_fence_bottom = NULL;
- info_p->pi_user_start = info_p->pi_alloc_start;
- }
-
- info_p->pi_user_bounds = (char *)info_p->pi_user_start +
- slot_p->sa_user_size;
-
- info_p->pi_alloc_bounds = (char *)slot_p->sa_mem + slot_p->sa_total_size;
-
- if (info_p->pi_fence_b) {
- info_p->pi_fence_top = info_p->pi_user_bounds;
- info_p->pi_upper_bounds = (char *)info_p->pi_alloc_bounds - FENCE_TOP_SIZE;
- }
- else {
- info_p->pi_fence_top = NULL;
- info_p->pi_upper_bounds = info_p->pi_alloc_bounds;
- }
-}
-
-/*
- * static char *display_pnt
- *
- * DESCRIPTION:
- *
- * Write into a buffer a discription of a pointer.
- *
- * RETURNS:
- *
- * Pointer to buffer 1st argument.
- *
- * ARGUMENTS:
- *
- * user_pnt -> Pointer that we are displaying.
- *
- * alloc_p -> Pointer to the skip slot which we are displaying.
- *
- * buf <-> Passed in buffer which will be filled with a description of
- * the pointer.
- *
- * buf_size -> Size of the buffer in bytes.
- */
-static char *display_pnt(const void *user_pnt, const skip_alloc_t *alloc_p,
- char *buf, const int buf_size)
-{
- char *buf_p, *bounds_p;
- int elapsed_b;
-
- buf_p = buf;
- bounds_p = buf_p + buf_size;
-
- buf_p += loc_snprintf(buf_p, bounds_p - buf_p, "%#lx",
- (unsigned long)user_pnt);
-
-#if LOG_PNT_SEEN_COUNT
- buf_p += loc_snprintf(buf_p, bounds_p - buf_p, "|s%lu", alloc_p->sa_seen_c);
-#endif
-
-#if LOG_PNT_ITERATION
- buf_p += loc_snprintf(buf_p, bounds_p - buf_p, "|i%lu",
- alloc_p->sa_iteration);
-#endif
-
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_LOG_ELAPSED_TIME)) {
- elapsed_b = 1;
- }
- else {
- elapsed_b = 0;
- }
- if (elapsed_b || BIT_IS_SET(_dmalloc_flags, DEBUG_LOG_CURRENT_TIME)) {
-#if LOG_PNT_TIMEVAL
- {
- char time_buf[64];
- buf_p += loc_snprintf(buf_p, bounds_p - buf_p, "|w%s",
- _dmalloc_ptimeval(&alloc_p->sa_timeval, time_buf,
- sizeof(time_buf), elapsed_b));
- }
-#else
-#if LOG_PNT_TIME
- {
- char time_buf[64];
- buf_p += loc_snprintf(buf_p, bounds_p - buf_p, "|w%s",
- _dmalloc_ptime(&alloc_p->sa_time, time_buf,
- sizeof(time_buf), elapsed_b));
- }
-#endif
-#endif
- }
-
-#if LOG_PNT_THREAD_ID
- {
- char thread_id[256];
-
- buf_p += loc_snprintf(buf_p, bounds_p - buf_p, "|t");
- THREAD_ID_TO_STRING(thread_id, sizeof(thread_id), alloc_p->sa_thread_id);
- buf_p += loc_snprintf(buf_p, bounds_p - buf_p, "%s", thread_id);
- }
-#endif
-
- return buf;
-}
-
-/*
- * static void log_error_info
- *
- * DESCRIPTION:
- *
- * Logging information about a pointer, usually during an error
- * condition.
- *
- * RETURNS:
- *
- * None.
- *
- * ARGUMENTS:
- *
- * now_file -> File from where we generated the error.
- *
- * now_line -> Line number from where we generated the error.
- *
- * user_pnt -> Pointer in question. This can be 0L then it will use
- * the slot_p memory pointer.
- *
- * slot_p -> Pointer to the slot associated with the user_pnt or 0L.
- *
- * reason -> Reason string why something happened.
- *
- * where -> What routine is calling log_error_info. For instance
- * malloc or chunk_check.
- */
-static void log_error_info(const char *now_file,
- const unsigned int now_line,
- const void *user_pnt,
- const skip_alloc_t *slot_p,
- const char *reason, const char *where)
-{
- static int dump_bottom_b = 0, dump_top_b = 0;
- char out[(DUMP_SPACE + FENCE_BOTTOM_SIZE + FENCE_TOP_SIZE) * 4];
- char where_buf[MAX_FILE_LENGTH + 64];
- char where_buf2[MAX_FILE_LENGTH + 64];
- const char *prev_file;
- const void *dump_pnt = user_pnt;
- const void *start_user;
- unsigned int prev_line, user_size;
- skip_alloc_t *other_p;
- pnt_info_t pnt_info;
- int out_len, dump_size, offset;
-
- if (slot_p == NULL) {
- prev_file = NULL;
- prev_line = 0;
- user_size = 0;
- start_user = user_pnt;
- }
- else {
- prev_file = slot_p->sa_file;
- prev_line = slot_p->sa_line;
- user_size = slot_p->sa_user_size;
- if (user_pnt == NULL) {
- get_pnt_info(slot_p, &pnt_info);
- start_user = pnt_info.pi_user_start;
- }
- else {
- start_user = user_pnt;
- }
- }
-
- /* get a proper reason string */
- if (reason != NULL) {
- dmalloc_message(" error details: %s", reason);
- }
-
- /* dump the pointer information */
- if (start_user == NULL) {
- dmalloc_message(" from '%s' prev access '%s'",
- _dmalloc_chunk_desc_pnt(where_buf, sizeof(where_buf),
- now_file, now_line),
- _dmalloc_chunk_desc_pnt(where_buf2, sizeof(where_buf2),
- prev_file, prev_line));
- }
- else {
- dmalloc_message(" pointer '%#lx' from '%s' prev access '%s'",
- (unsigned long)start_user,
- _dmalloc_chunk_desc_pnt(where_buf, sizeof(where_buf),
- now_file, now_line),
- _dmalloc_chunk_desc_pnt(where_buf2, sizeof(where_buf2),
- prev_file, prev_line));
- }
-
- /*
- * If we aren't logging bad space or we didn't error with an
- * overwrite error then don't log the bad bytes.
- */
- if ((! BIT_IS_SET(_dmalloc_flags, DEBUG_LOG_BAD_SPACE))
- || (dmalloc_errno != ERROR_UNDER_FENCE
- && dmalloc_errno != ERROR_OVER_FENCE
- && dmalloc_errno != ERROR_FREE_OVERWRITTEN)) {
- /* we call the error function after writing more info to the logfile */
- dmalloc_error(where);
- return;
- }
-
- /* NOTE: display memory like this has the potential for generating a core */
- if (dmalloc_errno == ERROR_UNDER_FENCE) {
- /* NOTE: only dump out the proper fence-post area once */
- if (! dump_bottom_b) {
- out_len = expand_chars(fence_bottom, FENCE_BOTTOM_SIZE, out,
- sizeof(out));
- dmalloc_message(" dump of proper fence-bottom bytes: '%.*s'",
- out_len, out);
- dump_bottom_b = 1;
- }
- offset = -FENCE_BOTTOM_SIZE;
- dump_size = DUMP_SPACE + FENCE_BOTTOM_SIZE;
- if (dump_size > user_size + FENCE_OVERHEAD_SIZE) {
- dump_size = user_size + FENCE_OVERHEAD_SIZE;
- }
- }
- else if (dmalloc_errno == ERROR_OVER_FENCE
- && user_size > 0) {
- /* NOTE: only dump out the proper fence-post area once */
- if (! dump_top_b) {
- out_len = expand_chars(fence_top, FENCE_TOP_SIZE, out, sizeof(out));
- dmalloc_message(" dump of proper fence-top bytes: '%.*s'",
- out_len, out);
- dump_top_b = 1;
- }
- /*
- * The size includes the bottom fence post area. We want it to
- * align with the start of the top fence post area.
- */
- if (DUMP_SPACE > user_size + FENCE_OVERHEAD_SIZE) {
- dump_size = user_size + FENCE_OVERHEAD_SIZE;
- offset = -FENCE_BOTTOM_SIZE;
- }
- else {
- dump_size = DUMP_SPACE;
- /* we will go backwards possibly up to FENCE_BOTTOM_SIZE offset */
- offset = user_size + FENCE_TOP_SIZE - DUMP_SPACE;
- }
- }
- else {
- dump_size = DUMP_SPACE;
- offset = 0;
- if (user_size > 0 && dump_size > user_size) {
- dump_size = user_size;
- }
- }
-
- dump_pnt = (char *)start_user + offset;
- if (IS_IN_HEAP(dump_pnt)) {
- out_len = expand_chars(dump_pnt, dump_size, out, sizeof(out));
- dmalloc_message(" dump of '%#lx'%+d: '%.*s'",
- (unsigned long)start_user, offset, out_len, out);
- }
- else {
- dmalloc_message(" dump of '%#lx'%+d failed: not in heap",
- (unsigned long)start_user, offset);
- }
-
- /* find the previous pointer in case it ran over */
- if (dmalloc_errno == ERROR_UNDER_FENCE && start_user != NULL) {
- other_p = find_address((char *)start_user - FENCE_BOTTOM_SIZE - 1,
- 0 /* used list */, 1 /* not exact pointer */,
- skip_update);
- if (other_p != NULL) {
- dmalloc_message(" prev pointer '%#lx' (size %u) may have run over from '%s'",
- (unsigned long)other_p->sa_mem, other_p->sa_user_size,
- _dmalloc_chunk_desc_pnt(where_buf, sizeof(where_buf),
- other_p->sa_file,
- other_p->sa_line));
- }
- }
- /* find the next pointer in case it ran under */
- else if (dmalloc_errno == ERROR_OVER_FENCE
- && start_user != NULL
- && slot_p != NULL) {
- other_p = find_address((char *)slot_p->sa_mem + slot_p->sa_total_size,
- 0 /* used list */, 1 /* not exact pointer */,
- skip_update);
- if (other_p != NULL) {
- dmalloc_message(" next pointer '%#lx' (size %u) may have run under from '%s'",
- (unsigned long)other_p->sa_mem, other_p->sa_user_size,
- _dmalloc_chunk_desc_pnt(where_buf, sizeof(where_buf),
- other_p->sa_file,
- other_p->sa_line));
- }
- }
-
- /* we call the error function after writing more info to the logfile */
- dmalloc_error(where);
-}
-
-/*
- * static int fence_read
- *
- * DESCRIPTION
- *
- * Check a pointer for fence-post magic numbers.
- *
- * RETURNS:
- *
- * Success - 1 if the fence posts are good.
- *
- * Failure - 0 if they are not.
- *
- * ARGUMENTS:
- *
- * info_p -> Pointer information that we are checking.
- */
-static int fence_read(const pnt_info_t *info_p)
-{
- /* check magic numbers in bottom of allocation block */
- if (memcmp(fence_bottom, info_p->pi_fence_bottom, FENCE_BOTTOM_SIZE) != 0) {
- dmalloc_errno = ERROR_UNDER_FENCE;
- return 0;
- }
-
- /* check numbers at top of allocation block */
- if (memcmp(fence_top, info_p->pi_fence_top, FENCE_TOP_SIZE) != 0) {
- dmalloc_errno = ERROR_OVER_FENCE;
- return 0;
- }
-
- return 1;
-}
-
-/*
- * static void clear_alloc
- *
- * DESCRIPTION
- *
- * Setup allocations by writing fence post and doing any necessary
- * clearing of memory.
- *
- * RETURNS:
- *
- * Success - 1 if the fence posts are good.
- *
- * Failure - 0 if they are not.
- *
- * ARGUMENTS:
- *
- * slot_p <-> Slot we are clearing.
- *
- * info_p -> Pointer to information about the allocation.
- *
- * old_size -> If there was an old-size that we have copied into the
- * new pointer then set this. If 0 then it will clear the entire
- * allocation.
- *
- * func_id -> ID of the function which is doing the allocation. Used
- * to determine if we should 0 memory for [re]calloc.
- */
-static void clear_alloc(skip_alloc_t *slot_p, pnt_info_t *info_p,
- const unsigned int old_size, const int func_id)
-{
- char *start_p;
- int num;
-
- /*
- * NOTE: The alloc blank flag is set so we blank a slot when it is
- * allocated. It used to be that the allocated spaces were blanked
- * and the free spaces of the allocated chunk were blanked only if
- * the FREE_BLANK flag was enabled. Wrong!
- */
-
- /*
- * Set our slot blank flag if the flags are set now. This will
- * carry over with a realloc.
- */
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_ALLOC_BLANK)
- || BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_BLANK)) {
- BIT_SET(slot_p->sa_flags, ALLOC_FLAG_BLANK);
- }
-
- /*
- * If we have a fence post protected valloc then there is almost a
- * full block at the front what is "free". Set it with blank chars.
- */
- if (info_p->pi_fence_b) {
- num = (char *)info_p->pi_fence_bottom - (char *)info_p->pi_alloc_start;
- /* alloc-blank NOT free-blank */
- if (num > 0 && BIT_IS_SET(slot_p->sa_flags, ALLOC_FLAG_BLANK)) {
- memset(info_p->pi_alloc_start, ALLOC_BLANK_CHAR, num);
- }
- }
-
- /*
- * If we are allocating or extending memory, write in our alloc
- * chars.
- */
- start_p = (char *)info_p->pi_user_start + old_size;
-
- num = (char *)info_p->pi_user_bounds - start_p;
- if (num > 0) {
- if (func_id == DMALLOC_FUNC_CALLOC || func_id == DMALLOC_FUNC_RECALLOC) {
- memset(start_p, 0, num);
- }
- else if (BIT_IS_SET(slot_p->sa_flags, ALLOC_FLAG_BLANK)) {
- memset(start_p, ALLOC_BLANK_CHAR, num);
- }
- }
-
- /* write in fence-post info */
- if (info_p->pi_fence_b) {
- memcpy(info_p->pi_fence_bottom, fence_bottom, FENCE_BOTTOM_SIZE);
- memcpy(info_p->pi_fence_top, fence_top, FENCE_TOP_SIZE);
- }
-
- /*
- * Now clear the rest of the block above any fence post space with
- * free characters.
- *
- * NOTE alloc-blank NOT free-blank
- */
- if (BIT_IS_SET(slot_p->sa_flags, ALLOC_FLAG_BLANK)) {
-
- if (info_p->pi_fence_b) {
- start_p = (char *)info_p->pi_fence_top + FENCE_TOP_SIZE;
- }
- else {
- start_p = info_p->pi_user_bounds;
- }
-
- num = (char *)info_p->pi_alloc_bounds - start_p;
- if (num > 0) {
- memset(start_p, ALLOC_BLANK_CHAR, num);
- }
- }
-}
-
-/************************** administration functions *************************/
-
-/*
- * static int create_divided_chunks
- *
- * DESCRIPTION:
- *
- * Get a divided-block from the free list or heap allocation.
- *
- * RETURNS:
- *
- * Success - 1
- *
- * Failure - 0
- *
- * ARGUMENTS:
- *
- * div_size -> Size of the divided block that we are allocating.
- */
-static int create_divided_chunks(const unsigned int div_size)
-{
- void *mem, *bounds_p;
-
- /* allocate a 1 block chunk that we will cut up into pieces */
- mem = _dmalloc_heap_alloc(BLOCK_SIZE);
- if (mem == HEAP_ALLOC_ERROR) {
- /* error code set in _dmalloc_heap_alloc */
- return 0;
- }
- user_block_c++;
-
- /*
- * now run through the block and add the the locations to the
- * free-list
- */
-
- /* end of the block */
- bounds_p = (char *)mem + BLOCK_SIZE - div_size;
-
- for (; mem <= bounds_p; mem = (char *)mem + div_size) {
- /* insert the rest of the blocks into the free-list */
- if (insert_address(mem, 1 /* free list */, div_size) == NULL) {
- /* error set in insert_address */
- return 0;
- }
- free_space_bytes += div_size;
- }
-
- return 1;
-}
-
-/*
- * static skip_alloc_t *use_free_memory
- *
- * DESCRIPTION:
- *
- * Find a free memory chunk and remove it from the free list and put
- * it on the used list if available.
- *
- * RETURNS:
- *
- * Success - Valid slot pointer
- *
- * Failure - NULL
- *
- * ARGUMENTS:
- *
- * size -> Size of the block that we are looking for.
- *
- * update_p -> Pointer to the skip_alloc entry we are using to hold
- * the update pointers.
- */
-static skip_alloc_t *use_free_memory(const unsigned int size,
- skip_alloc_t *update_p)
-{
- skip_alloc_t *slot_p;
-
-#if FREED_POINTER_DELAY
- /*
- * check the free wait list to see if any of the waiting pointers
- * need to be moved off and inserted into the free list
- */
- for (slot_p = free_wait_list_head; slot_p != NULL; ) {
- skip_alloc_t *next_p;
-
- /* we are done if we find a pointer delay in the future */
- if (slot_p->sa_use_iter + FREED_POINTER_DELAY > _dmalloc_iter_c) {
- break;
- }
-
- /* put slot on free list */
- next_p = slot_p->sa_next_p[0];
- if (! insert_slot(slot_p, 1 /* free list */)) {
- /* error dumped in insert_slot */
- return NULL;
- }
-
- /* adjust our linked list */
- slot_p = next_p;
- free_wait_list_head = slot_p;
- if (slot_p == NULL) {
- free_wait_list_tail = NULL;
- }
- }
-#endif
-
- /* find a free block which matches the size */
- slot_p = find_free_size(size, update_p);
- if (slot_p == NULL) {
- return NULL;
- }
-
- /* sanity check */
- if (slot_p->sa_total_size != size) {
- dmalloc_errno = ERROR_ADDRESS_LIST;
- dmalloc_error("use_free_memory");
- return NULL;
- }
-
- /* remove from free list */
- if (! remove_slot(slot_p, update_p)) {
- /* error reported in remove_slot */
- return NULL;
- }
-
- /* set to user allocated space */
- slot_p->sa_flags = ALLOC_FLAG_USER;
-
- /* insert it into our address list */
- if (! insert_slot(slot_p, 0 /* used list */)) {
- /* error set in insert_slot */
- return NULL;
- }
-
- free_space_bytes -= slot_p->sa_total_size;
-
- return slot_p;
-}
-
-/*
- * static skip_alloc_t *get_divided_memory
- *
- * DESCRIPTION:
- *
- * Get a divided memory block from the free list or heap allocation.
- *
- * RETURNS:
- *
- * Success - Valid skip slot pointer.
- *
- * Failure - NULL
- *
- * ARGUMENTS:
- *
- * size -> Size of the block that we are allocating.
- */
-static skip_alloc_t *get_divided_memory(const unsigned int size)
-{
- skip_alloc_t *slot_p;
- unsigned int need_size;
- int *bits_p;
-
- for (bits_p = bit_sizes;; bits_p++) {
- if (*bits_p >= size) {
- break;
- }
- }
- need_size = *bits_p;
-
- /* find a free block which matches the size */
- slot_p = use_free_memory(need_size, skip_update);
- if (slot_p != NULL) {
- return slot_p;
- }
-
- /* need to get more slots */
- if (! create_divided_chunks(need_size)) {
- /* errors dumped in create_divided_chunks */
- return NULL;
- }
-
- /* now we ask again for the free memory */
- slot_p = use_free_memory(need_size, skip_update);
- if (slot_p == NULL) {
- /* huh? This isn't right. */
- dmalloc_errno = ERROR_ADDRESS_LIST;
- dmalloc_error("get_divided_memory");
- return NULL;
- }
-
- return slot_p;
-}
-
-/*
- * static skip_alloc_t *get_memory
- *
- * DESCRIPTION:
- *
- * Get a block from the free list or heap allocation.
- *
- * RETURNS:
- *
- * Success - Valid skip slot pointer.
- *
- * Failure - NULL
- *
- * ARGUMENTS:
- *
- * size -> Size of the block that we are allocating.
- */
-static skip_alloc_t *get_memory(const unsigned int size)
-{
- skip_alloc_t *slot_p, *update_p;
- void *mem;
- unsigned int need_size, block_n;
-
- /* do we need to print admin info? */
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_LOG_ADMIN)) {
- dmalloc_message("need %d bytes", size);
- }
-
- /* will this allocate put us over the limit? */
- if (_dmalloc_memory_limit > 0
- && alloc_cur_given + size > _dmalloc_memory_limit) {
- dmalloc_errno = ERROR_OVER_LIMIT;
- dmalloc_error("get_memory");
- return NULL;
- }
-
- /* do we have a divided block here? */
- if (size <= BLOCK_SIZE / 2) {
- return get_divided_memory(size);
- }
-
- /* round up to the nearest block size */
- need_size = size + BLOCK_SIZE - 1;
- block_n = need_size / BLOCK_SIZE;
- need_size = block_n * BLOCK_SIZE;
-
- update_p = skip_update;
-
- /* find a free block which matches the size */
- slot_p = use_free_memory(need_size, update_p);
- if (slot_p != NULL) {
- return slot_p;
- }
-
- /* if there are blocks that are larger than this */
- slot_p = update_p->sa_next_p[0];
- if (slot_p != NULL && slot_p->sa_total_size > size) {
-
- /*
- * now we ask again for the memory because we need to reset the
- * update pointer list
- */
- slot_p = use_free_memory(need_size, update_p);
- if (slot_p != NULL) {
- /* huh? This isn't right. */
- dmalloc_errno = ERROR_ADDRESS_LIST;
- dmalloc_error("get_memory");
- return NULL;
- }
- }
-
- /* allocate the memory necessary for the new blocks */
- mem = _dmalloc_heap_alloc(need_size);
- if (mem == HEAP_ALLOC_ERROR) {
- /* error code set in _dmalloc_heap_alloc */
- return NULL;
- }
- user_block_c += block_n;
-
- /* create our slot */
- slot_p = insert_address(mem, 0 /* used list */, need_size);
- if (slot_p == NULL) {
- /* error set in insert_address */
- return NULL;
- }
-
- return slot_p;
-}
-
-/*
- * static int check_used_slot
- *
- * Check out the pointer in a allocated slot to make sure it is good.
- *
- * RETURNS:
- *
- * Success - 1
- *
- * Failure - 0
- *
- * ARGUMENTS:
- *
- * slot_p -> Slot that we are checking.
- *
- * user_pnt -> User pointer which was used to get the slot or NULL.
- *
- * exact_b -> Set to 1 to find the pointer specifically. Otherwise we
- * can find the pointer inside of an allocation.
- *
- * strlen_b -> Make sure that pnt can hold at least a strlen + 1
- * bytes. If 0 then ignore.
- *
- * min_size -> Make sure that pnt can hold at least that many bytes.
- * If 0 then ignore.
- */
-static int check_used_slot(const skip_alloc_t *slot_p,
- const void *user_pnt, const int exact_b,
- const int strlen_b, const int min_size)
-{
- const char *file, *name_p, *bounds_p, *mem_p;
- unsigned int line, num;
- pnt_info_t pnt_info;
-
- if (! (BIT_IS_SET(slot_p->sa_flags, ALLOC_FLAG_USER)
- || BIT_IS_SET(slot_p->sa_flags, ALLOC_FLAG_EXTERN)
- || BIT_IS_SET(slot_p->sa_flags, ALLOC_FLAG_ADMIN))) {
- dmalloc_errno = ERROR_SLOT_CORRUPT;
- return 0;
- }
-
- /* get pointer info */
- get_pnt_info(slot_p, &pnt_info);
-
- /* the user pointer needs to be within the user space */
- if (user_pnt != NULL && (char *)user_pnt < (char *)pnt_info.pi_user_start) {
- dmalloc_errno = ERROR_WOULD_OVERWRITE;
- return 0;
- }
-
- /* if we need the exact pointer, make sure that the user_pnt agrees */
- if (exact_b && user_pnt != pnt_info.pi_user_start) {
- dmalloc_errno = ERROR_NOT_START_BLOCK;
- return 0;
- }
-
-#if LARGEST_ALLOCATION
- /* have we exceeded the upper bounds */
- if (slot_p->sa_user_size > LARGEST_ALLOCATION) {
- dmalloc_errno = ERROR_BAD_SIZE;
- return 0;
- }
-#endif
-
- /* check our total block size */
- if (slot_p->sa_total_size > BLOCK_SIZE / 2
- && slot_p->sa_total_size % BLOCK_SIZE != 0) {
- dmalloc_errno = ERROR_BAD_SIZE;
- return 0;
- }
-
- /*
- * If we have a valloc allocation then the _user_ pnt should be
- * block aligned otherwise the chunk_pnt should be.
- */
- if (pnt_info.pi_valloc_b) {
-
- if ((long)pnt_info.pi_user_start % BLOCK_SIZE != 0) {
- dmalloc_errno = ERROR_NOT_ON_BLOCK;
- return 0;
- }
- if (slot_p->sa_total_size < BLOCK_SIZE) {
- dmalloc_errno = ERROR_SLOT_CORRUPT;
- return 0;
- }
-
- /* now check the below space to make sure it is still clear */
- if (pnt_info.pi_fence_b && pnt_info.pi_blanked_b) {
- num = (char *)pnt_info.pi_fence_bottom - (char *)pnt_info.pi_alloc_start;
- if (num > 0) {
- for (mem_p = pnt_info.pi_alloc_start;
- mem_p < (char *)pnt_info.pi_fence_bottom;
- mem_p++) {
- if (*mem_p != ALLOC_BLANK_CHAR) {
- dmalloc_errno = ERROR_FREE_OVERWRITTEN;
- return 0;
- }
- }
- }
- }
- }
-
- /* check out the fence-posts */
- if (pnt_info.pi_fence_b && (! fence_read(&pnt_info))) {
- /* errno set in fence_read */
- return 0;
- }
-
- /* check above the allocation to see if it's been overwritten */
- if (pnt_info.pi_blanked_b) {
-
- if (pnt_info.pi_fence_b) {
- mem_p = (char *)pnt_info.pi_fence_top + FENCE_TOP_SIZE;
- }
- else {
- mem_p = pnt_info.pi_user_bounds;
- }
-
- for (; mem_p < (char *)pnt_info.pi_alloc_bounds; mem_p++) {
- if (*mem_p != ALLOC_BLANK_CHAR) {
- dmalloc_errno = ERROR_FREE_OVERWRITTEN;
- return 0;
- }
- }
- }
-
- file = slot_p->sa_file;
- line = slot_p->sa_line;
-
- /* check line number */
-#if MAX_LINE_NUMBER
- if (line > MAX_LINE_NUMBER) {
- dmalloc_errno = ERROR_BAD_LINE;
- return 0;
- }
-#endif
-
- /*
- * Check file pointer only if file is not NULL and line is not 0
- * which implies that file is a return-addr.
- */
-#if MAX_FILE_LENGTH
- if (file != DMALLOC_DEFAULT_FILE && line != DMALLOC_DEFAULT_LINE) {
- /* NOTE: we don't use strlen here because we might check too far */
- bounds_p = file + MAX_FILE_LENGTH;
- for (name_p = file; name_p <= bounds_p && *name_p != '\0'; name_p++) {
- }
- if (name_p > bounds_p
- || name_p < file + MIN_FILE_LENGTH) {
- dmalloc_errno = ERROR_BAD_FILE;
- return 0;
- }
- }
-#endif
-
-#if LOG_PNT_SEEN_COUNT
- /*
- * We divide by 2 here because realloc which returns the same
- * pointer will seen_c += 2. However, it will never be more than
- * twice the iteration value. We divide by two to not overflow
- * iter_c * 2.
- */
- if (slot_p->sa_seen_c / 2 > _dmalloc_iter_c) {
- dmalloc_errno = ERROR_SLOT_CORRUPT;
- return 0;
- }
-#endif
-
- if (strlen_b) {
- int equals_okay_b = 0;
- mem_p = (char *)user_pnt;
- if (min_size > 0) {
- bounds_p = mem_p + min_size;
- /* min_size can be out of bounds as long as we find a \0 beforehand */
- if (bounds_p > (char *)pnt_info.pi_user_bounds) {
- bounds_p = (char *)pnt_info.pi_user_bounds;
- } else {
- /* we can equals our boundary if our min_size <= user_bounds */
- equals_okay_b = 1;
- }
- } else {
- bounds_p = (char *)pnt_info.pi_user_bounds;
- }
- for (; mem_p < bounds_p; mem_p++) {
- if (*mem_p == '\0') {
- break;
- }
- }
- /* mem_p can == bounds_p if we hit the min_size but can't >= user_bounds*/
- if (mem_p > (char *)pnt_info.pi_user_bounds
- || ((! equals_okay_b) && mem_p == (char *)pnt_info.pi_user_bounds)) {
- dmalloc_errno = ERROR_WOULD_OVERWRITE;
- return 0;
- }
- } else if (min_size > 0) {
- if ((char *)user_pnt + min_size > (char *)pnt_info.pi_user_bounds) {
- dmalloc_errno = ERROR_WOULD_OVERWRITE;
- return 0;
- }
- }
-
- return 1;
-}
-
-/*
- * static int check_free_slot
- *
- * Check out the pointer in a slot to make sure it is good.
- *
- * RETURNS:
- *
- * Success - 1
- *
- * Failure - 0
- *
- * ARGUMENTS:
- *
- * slot_p -> Slot that we are checking.
- */
-static int check_free_slot(const skip_alloc_t *slot_p)
-{
- char *check_p;
-
- if (! BIT_IS_SET(slot_p->sa_flags, ALLOC_FLAG_FREE)) {
- dmalloc_errno = ERROR_SLOT_CORRUPT;
- return 0;
- }
-
- if (BIT_IS_SET(slot_p->sa_flags, ALLOC_FLAG_BLANK)) {
- for (check_p = (char *)slot_p->sa_mem;
- check_p < (char *)slot_p->sa_mem + slot_p->sa_total_size;
- check_p++) {
- if (*check_p != FREE_BLANK_CHAR) {
- dmalloc_errno = ERROR_FREE_OVERWRITTEN;
- return 0;
- }
- }
- }
-
-#if LOG_PNT_SEEN_COUNT
- /*
- * We divide by 2 here because realloc which returns the same
- * pointer will seen_c += 2. However, it will never be more than
- * twice the iteration value. We divide by two to not overflow
- * iter_c * 2.
- */
- if (slot_p->sa_seen_c / 2 > _dmalloc_iter_c) {
- dmalloc_errno = ERROR_SLOT_CORRUPT;
- return 0;
- }
-#endif
-
- return 1;
-}
-
-/***************************** exported routines *****************************/
-
-/*
- * int _dmalloc_chunk_startup
- *
- * DESCRIPTION:
- *
- * Startup the low level malloc routines.
- *
- * RETURNS:
- *
- * Success - 1
- *
- * Failure - 0
- *
- * ARGUMENTS:
- *
- * None.
- */
-int _dmalloc_chunk_startup(void)
-{
- unsigned int value;
- char *pos_p, *max_p;
- int bit_c, *bits_p;
-
- value = FENCE_MAGIC_BOTTOM;
- max_p = fence_bottom + FENCE_BOTTOM_SIZE;
- for (pos_p = fence_bottom;
- pos_p < max_p;
- pos_p += sizeof(value)) {
- if (pos_p + sizeof(value) <= max_p) {
- memcpy(pos_p, (char *)&value, sizeof(value));
- }
- else {
- memcpy(pos_p, (char *)&value, max_p - pos_p);
- }
- }
-
- value = FENCE_MAGIC_TOP;
- max_p = fence_top + FENCE_TOP_SIZE;
- for (pos_p = fence_top; pos_p < max_p; pos_p += sizeof(value)) {
- if (pos_p + sizeof(value) <= max_p) {
- memcpy(pos_p, (char *)&value, sizeof(value));
- }
- else {
- memcpy(pos_p, (char *)&value, max_p - pos_p);
- }
- }
-
- /* initialize the bits array */
- bits_p = bit_sizes;
- for (bit_c = 0; bit_c < BASIC_BLOCK; bit_c++) {
- if ((1 << bit_c) >= CHUNK_SMALLEST_BLOCK) {
- *bits_p++ = 1 << bit_c;
- }
- }
-
- /* set the admin flags on the two statically allocated slots */
- skip_free_list->sa_flags = ALLOC_FLAG_ADMIN;
- skip_address_list->sa_flags = ALLOC_FLAG_ADMIN;
-
- return 1;
-}
-
-/*
- * char *_dmalloc_chunk_desc_pnt
- *
- * DESCRIPTION:
- *
- * Write into a buffer a pointer description with file and
- * line-number.
- *
- * RETURNS:
- *
- * Pointer to buffer 1st argument.
- *
- * ARGUMENTS:
- *
- * buf <-> Passed in buffer which will be filled with a description of
- * the pointer.
- *
- * buf_size -> Size of the buffer in bytes.
- *
- * file -> File name, return address, or NULL.
- *
- * line -> Line number or 0.
- */
-char *_dmalloc_chunk_desc_pnt(char *buf, const int buf_size,
- const char *file, const unsigned int line)
-{
- if (file == DMALLOC_DEFAULT_FILE && line == DMALLOC_DEFAULT_LINE) {
- (void)loc_snprintf(buf, buf_size, "unknown");
- }
- else if (line == DMALLOC_DEFAULT_LINE) {
- (void)loc_snprintf(buf, buf_size, "ra=%#lx", (unsigned long)file);
- }
- else if (file == DMALLOC_DEFAULT_FILE) {
- (void)loc_snprintf(buf, buf_size, "ra=ERROR(line=%u)", line);
- }
- else {
- (void)loc_snprintf(buf, buf_size, "%.*s:%u", MAX_FILE_LENGTH, file, line);
- }
-
- return buf;
-}
-
-/*
- * int _dmalloc_chunk_read_info
- *
- * DESCRIPTION:
- *
- * Return some information associated with a pointer.
- *
- * RETURNS:
- *
- * Success - 1 pointer is okay
- *
- * Failure - 0 problem with pointer
- *
- * ARGUMENTS:
- *
- * user_pnt -> Pointer we are checking.
- *
- * where <- Where the check is being made from.
- *
- * user_size_p <- Pointer to an unsigned int which, if not NULL, will
- * be set to the size of bytes that the user requested.
- *
- * alloc_size_p <- Pointer to an unsigned int which, if not NULL, will
- * be set to the total given size of bytes including block overhead.
- *
- * file_p <- Pointer to a character pointer which, if not NULL, will
- * be set to the file where the pointer was allocated.
- *
- * line_p <- Pointer to a character pointer which, if not NULL, will
- * be set to the line-number where the pointer was allocated.
- *
- * ret_attr_p <- Pointer to a void pointer, if not NULL, will be set
- * to the return-address where the pointer was allocated.
- *
- * seen_cp <- Pointer to an unsigned long which, if not NULL, will be
- * set to the number of times the pointer has been "seen".
- *
- * used_p <- Pointer to an unsigned long which, if not NULL, will be
- * set to the last time the pointer was "used".
- *
- * valloc_bp <- Pointer to an integer which, if not NULL, will be set
- * to 1 if the pointer was allocated with valloc otherwise 0.
- *
- * fence_bp <- Pointer to an integer which, if not NULL, will be set
- * to 1 if the pointer has the fence bit set otherwise 0.
- */
-int _dmalloc_chunk_read_info(const void *user_pnt, const char *where,
- unsigned int *user_size_p,
- unsigned int *alloc_size_p, char **file_p,
- unsigned int *line_p, void **ret_attr_p,
- unsigned long **seen_cp,
- unsigned long *used_p, int *valloc_bp,
- int *fence_bp)
-{
- skip_alloc_t *slot_p;
-
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_LOG_TRANS)) {
- dmalloc_message("reading info about pointer '%#lx'",
- (unsigned long)user_pnt);
- }
-
- /* find the pointer with loose checking for fence */
- slot_p = find_address(user_pnt, 0 /* used list */, 0 /* not exact pointer */,
- skip_update);
- if (slot_p == NULL) {
- dmalloc_errno = ERROR_NOT_FOUND;
- log_error_info(NULL, 0, user_pnt, NULL, "finding address in heap", where);
- return 0;
- }
-
- /* might as well check the pointer now */
- if (! check_used_slot(slot_p, user_pnt, 1 /* exact */, 0 /* no strlen */,
- 0 /* no min-size */)) {
- /* errno set in check_slot */
- log_error_info(NULL, 0, user_pnt, slot_p, "checking pointer admin", where);
- return 0;
- }
-
- /* write info back to user space */
- SET_POINTER(user_size_p, slot_p->sa_user_size);
- SET_POINTER(alloc_size_p, slot_p->sa_total_size);
- if (slot_p->sa_file == DMALLOC_DEFAULT_FILE) {
- SET_POINTER(file_p, NULL);
- }
- else {
- SET_POINTER(file_p, (char *)slot_p->sa_file);
- }
- SET_POINTER(line_p, slot_p->sa_line);
- /* if the line is blank then the file will be 0 or the return address */
- if (slot_p->sa_line == DMALLOC_DEFAULT_LINE) {
- SET_POINTER(ret_attr_p, (char *)slot_p->sa_file);
- }
- else {
- SET_POINTER(ret_attr_p, NULL);
- }
-#if LOG_PNT_SEEN_COUNT
- SET_POINTER(seen_cp, &slot_p->sa_seen_c);
-#else
- SET_POINTER(seen_cp, NULL);
-#endif
- SET_POINTER(used_p, slot_p->sa_use_iter);
- SET_POINTER(valloc_bp, BIT_IS_SET(slot_p->sa_flags, ALLOC_FLAG_VALLOC));
- SET_POINTER(fence_bp, BIT_IS_SET(slot_p->sa_flags, ALLOC_FLAG_FENCE));
-
- return 1;
-}
-
-/******************************* heap checking *******************************/
-
-/*
- * int _dmalloc_chunk_heap_check
- *
- * DESCRIPTION:
- *
- * Run extensive tests on the entire heap.
- *
- * RETURNS:
- *
- * Success - 1 if the heap is okay
- *
- * Failure - 0 if a problem was detected
- *
- * ARGUMENTS:
- *
- * None.
- */
-int _dmalloc_chunk_heap_check(void)
-{
- skip_alloc_t *slot_p;
- entry_block_t *block_p;
- int ret, level_c, checking_list_c = 0;
- int final = 1;
-
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_LOG_TRANS)) {
- dmalloc_message("checking heap");
- }
-
- heap_check_c++;
-
- /*
- * first, run through all of the admin structures and check for
- * validity
- */
- for (level_c = 0; level_c < MAX_SKIP_LEVEL; level_c++) {
- unsigned int *magic3_p, magic3;
-
- /* run through the blocks and test them */
- for (block_p = entry_blocks[level_c];
- block_p != NULL;
- block_p = block_p->eb_next_p) {
-
- /* better be in the heap */
- if (! IS_IN_HEAP(block_p)) {
- dmalloc_errno = ERROR_ADMIN_LIST;
- dmalloc_error("_dmalloc_chunk_heap_check");
- return 0;
- }
-
- /* get the magic3 at the end of the block */
- magic3_p = (unsigned int *)((char *)block_p + BLOCK_SIZE -
- sizeof(*magic3_p));
- memcpy(&magic3, magic3_p, sizeof(magic3));
-
- /* check magics */
- if (block_p->eb_magic1 != ENTRY_BLOCK_MAGIC1
- || block_p->eb_magic2 != ENTRY_BLOCK_MAGIC2
- || magic3 != ENTRY_BLOCK_MAGIC3) {
- dmalloc_errno = ERROR_ADMIN_LIST;
- dmalloc_error("_dmalloc_chunk_heap_check");
- return 0;
- }
-
- /* check for a valid level */
- if (block_p->eb_level_n != level_c) {
- dmalloc_errno = ERROR_ADMIN_LIST;
- dmalloc_error("_dmalloc_chunk_heap_check");
- return 0;
- }
-
- /* now we look up the block and make sure it exists and is valid */
- slot_p = find_address(block_p, 0 /* used list */, 1 /* exact */,
- skip_update);
- if (slot_p == NULL) {
- dmalloc_errno = ERROR_ADMIN_LIST;
- dmalloc_error("_dmalloc_chunk_heap_check");
- return 0;
- }
- if ((! BIT_IS_SET(slot_p->sa_flags, ALLOC_FLAG_ADMIN))
- || slot_p->sa_mem != block_p
- || slot_p->sa_total_size != BLOCK_SIZE
- || slot_p->sa_level_n != level_c) {
- dmalloc_errno = ERROR_ADMIN_LIST;
- dmalloc_error("_dmalloc_chunk_heap_check");
- return 0;
- }
-
- /*
- * NOTE: we could now check each of the entries in the block to
- * make sure that they are valid and on the used or free list
- */
- }
- }
-
- /*
- * Now run through the used pointers and check each one.
- */
- for (slot_p = skip_address_list->sa_next_p[0];
- ;
- slot_p = slot_p->sa_next_p[0]) {
- skip_alloc_t *block_slot_p;
-
- /*
- * switch to the free list in the middle after we've checked the
- * used pointer slots
- */
- if (slot_p == NULL) {
- checking_list_c++;
- if (checking_list_c == 1) {
- slot_p = skip_free_list->sa_next_p[0];
- }
-#if FREED_POINTER_DELAY
- else if (checking_list_c == 2) {
- slot_p = free_wait_list_head;
- }
-#endif
- else {
- /* we are done */
- break;
- }
- if (slot_p == NULL) {
- break;
- }
- }
-
- /* better be in the heap */
- if (! IS_IN_HEAP(slot_p)) {
- dmalloc_errno = ERROR_ADDRESS_LIST;
- dmalloc_error("_dmalloc_chunk_heap_check");
- return 0;
- }
-
- /*
- * now we look up the slot pointer itself and make sure it exists
- * in a valid block
- */
- block_slot_p = find_address(slot_p, 0 /* used list */,
- 0 /* not exact pointer */, skip_update);
- if (block_slot_p == NULL) {
- dmalloc_errno = ERROR_ADMIN_LIST;
- dmalloc_error("_dmalloc_chunk_heap_check");
- return 0;
- }
-
- /* point at the block */
- block_p = block_slot_p->sa_mem;
-
- /* check block magic */
- if (block_p->eb_magic1 != ENTRY_BLOCK_MAGIC1) {
- dmalloc_errno = ERROR_ADDRESS_LIST;
- dmalloc_error("_dmalloc_chunk_heap_check");
- return 0;
- }
-
- /* make sure the slot level matches */
- if (slot_p->sa_level_n != block_p->eb_level_n) {
- dmalloc_errno = ERROR_ADDRESS_LIST;
- dmalloc_error("_dmalloc_chunk_heap_check");
- return 0;
- }
-
- /* now check the allocation */
- if (checking_list_c == 0) {
- ret = check_used_slot(slot_p, NULL /* no user pnt */,
- 0 /* loose pnt checking */, 0 /* no strlen */,
- 0 /* no min-size */);
- if (! ret) {
- /* error set in check_slot */
- log_error_info(NULL, 0, NULL, slot_p, "checking user pointer",
- "_dmalloc_chunk_heap_check");
- /* not a critical error */
- final = 0;
- }
- }
- else {
- ret = check_free_slot(slot_p);
- if (! ret) {
- /* error set in check_slot */
- log_error_info(NULL, 0, NULL, slot_p, "checking free pointer",
- "_dmalloc_chunk_heap_check");
- /* not a critical error */
- final = 0;
- }
- }
- }
-
- return final;
-}
-
-/*
- * int _dmalloc_chunk_pnt_check
- *
- * DESCRIPTION:
- *
- * Run extensive tests on a pointer.
- *
- * RETURNS:
- *
- * Success - 1 if the pointer is okay
- *
- * Failure - 0 if not
- *
- * ARGUMENTS:
- *
- * func -> Function string which is checking the pointer.
- *
- * user_pnt -> Pointer we are checking.
- *
- * exact_b -> Set to 1 to find the pointer specifically. Otherwise we
- * can find the pointer inside of an allocation.
- *
- * strlen_b -> Make sure that pnt can hold at least a strlen + 1
- * bytes. If 0 then ignore.
- *
- * min_size -> Make sure that pnt can hold at least that many bytes.
- * If 0 then ignore.
- */
-int _dmalloc_chunk_pnt_check(const char *func, const void *user_pnt,
- const int exact_b, const int strlen_b,
- const int min_size)
-{
- skip_alloc_t *slot_p;
-
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_LOG_TRANS)) {
- if (func == NULL) {
- dmalloc_message("checking pointer '%#lx'", (unsigned long)user_pnt);
- }
- else {
- dmalloc_message("checking func '%s' pointer '%#lx'",
- func, (unsigned long)user_pnt);
- }
- }
-
- /* try to find the address */
- slot_p = find_address(user_pnt, 0 /* used list */, 0 /* not exact pointer */,
- skip_update);
- if (slot_p == NULL) {
- if (exact_b) {
- dmalloc_errno = ERROR_NOT_FOUND;
- log_error_info(NULL, 0, user_pnt, NULL, "pointer-check", func);
- return 0;
- }
- else {
- return 1;
- }
- }
-
- /* now make sure that the user slot is valid */
- if (! check_used_slot(slot_p, user_pnt, exact_b, strlen_b, min_size)) {
- /* dmalloc_error set in check_used_slot */
- log_error_info(NULL, 0, user_pnt, slot_p, "pointer-check", func);
- return 0;
- }
-
- return 1;
-}
-
-/************************** low-level user functions *************************/
-
-/*
- * void *_dmalloc_chunk_malloc
- *
- * DESCRIPTION:
- *
- * Allocate a chunk of memory.
- *
- * RETURNS:
- *
- * Success - Valid pointer.
- *
- * Failure - NULL
- *
- * ARGUMENTS:
- *
- * file -> File-name or return-address location of the allocation.
- *
- * line -> Line-number location of the allocation.
- *
- * size -> Number of bytes to allocate.
- *
- * func_id -> Calling function-id as defined in dmalloc.h.
- *
- * alignment -> If greater than 0 then try to align the returned
- * block.
- */
-void *_dmalloc_chunk_malloc(const char *file, const unsigned int line,
- const unsigned long size, const int func_id,
- const unsigned int alignment)
-{
- unsigned long needed_size;
- int valloc_b = 0, memalign_b = 0, fence_b = 0;
- char where_buf[MAX_FILE_LENGTH + 64], disp_buf[64];
- skip_alloc_t *slot_p;
- pnt_info_t pnt_info;
- const char *trans_log;
-
- /* counts calls to malloc */
- if (func_id == DMALLOC_FUNC_CALLOC) {
- func_calloc_c++;
- }
- else if (alignment == BLOCK_SIZE) {
- func_valloc_c++;
- valloc_b = 1;
- }
- else if (alignment > 0) {
- func_memalign_c++;
- memalign_b = 1;
- }
- else if (func_id == DMALLOC_FUNC_NEW) {
- func_new_c++;
- }
- else if (func_id != DMALLOC_FUNC_REALLOC
- && func_id != DMALLOC_FUNC_RECALLOC) {
- func_malloc_c++;
- }
-
-#if ALLOW_ALLOC_ZERO_SIZE == 0
- if (size == 0) {
- dmalloc_errno = ERROR_BAD_SIZE;
- log_error_info(file, line, NULL, NULL, "bad zero byte allocation request",
- "malloc");
- return MALLOC_ERROR;
- }
-#endif
-
-#if LARGEST_ALLOCATION
- /* have we exceeded the upper bounds */
- if (size > LARGEST_ALLOCATION) {
- dmalloc_errno = ERROR_TOO_BIG;
- log_error_info(file, line, NULL, NULL, "allocation too big", "malloc");
- return MALLOC_ERROR;
- }
-#endif
-
- needed_size = size;
-
- /* adjust the size */
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_FENCE)) {
- needed_size += FENCE_OVERHEAD_SIZE;
- fence_b = 1;
-
- /*
- * If the user is requesting a page-aligned block of data then we
- * will need another block below the allocation just for the fence
- * information. Ugh.
- */
- if (valloc_b) {
- needed_size += BLOCK_SIZE;
- }
- }
- else if (valloc_b && needed_size <= BLOCK_SIZE / 2) {
- /*
- * If we are valloc-ing, make sure that we get a blocksized chunk
- * because they are always block aligned. We know here that fence
- * posting is not on otherwise it would have been set above.
- */
- needed_size = BLOCK_SIZE;
- }
-
- /* get some space for our memory */
- slot_p = get_memory(needed_size);
- if (slot_p == NULL) {
- /* errno set in get_slot */
- return MALLOC_ERROR;
- }
- if (fence_b) {
- BIT_SET(slot_p->sa_flags, ALLOC_FLAG_FENCE);
- }
- if (valloc_b) {
- BIT_SET(slot_p->sa_flags, ALLOC_FLAG_VALLOC);
- }
- slot_p->sa_user_size = size;
-
- /* initialize the bblocks */
- alloc_cur_given += slot_p->sa_total_size;
- alloc_max_given = MAX(alloc_max_given, alloc_cur_given);
-
- get_pnt_info(slot_p, &pnt_info);
-
- /* clear the allocation */
- clear_alloc(slot_p, &pnt_info, 0 /* no old-size */, func_id);
-
- slot_p->sa_file = file;
- slot_p->sa_line = line;
- slot_p->sa_use_iter = _dmalloc_iter_c;
-#if LOG_PNT_SEEN_COUNT
- slot_p->sa_seen_c++;
-#endif
-#if LOG_PNT_ITERATION
- slot_p->sa_iteration = _dmalloc_iter_c;
-#endif
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_LOG_ELAPSED_TIME)
- || BIT_IS_SET(_dmalloc_flags, DEBUG_LOG_CURRENT_TIME)) {
-#if LOG_PNT_TIMEVAL
- GET_TIMEVAL(slot_p->sa_timeval);
-#else
-#if LOG_PNT_TIME
- slot_p->sa_time = time(NULL);
-#endif
-#endif
- }
-
-#if LOG_PNT_THREAD_ID
- slot_p->sa_thread_id = THREAD_GET_ID();
-#endif
-
- /* do we need to print transaction info? */
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_LOG_TRANS)) {
- switch (func_id) {
- case DMALLOC_FUNC_CALLOC:
- trans_log = "calloc";
- break;
- case DMALLOC_FUNC_MEMALIGN:
- trans_log = "memalign";
- break;
- case DMALLOC_FUNC_VALLOC:
- trans_log = "valloc";
- break;
- default:
- trans_log = "alloc";
- break;
- }
- dmalloc_message("*** %s: at '%s' for %ld bytes, got '%s'",
- trans_log,
- _dmalloc_chunk_desc_pnt(where_buf, sizeof(where_buf),
- file, line),
- size, display_pnt(pnt_info.pi_user_start, slot_p, disp_buf,
- sizeof(disp_buf)));
- }
-
-#if MEMORY_TABLE_TOP_LOG
- _dmalloc_table_insert(mem_table_alloc, MEM_ALLOC_ENTRIES, file, line,
- size, &mem_table_alloc_c);
-#endif
-
- /* monitor current allocation level */
- alloc_current += size;
- alloc_maximum = MAX(alloc_maximum, alloc_current);
- _dmalloc_alloc_total += size;
- alloc_one_max = MAX(alloc_one_max, size);
-
- /* monitor pointer usage */
- alloc_cur_pnts++;
- alloc_max_pnts = MAX(alloc_max_pnts, alloc_cur_pnts);
- alloc_tot_pnts++;
-
- return pnt_info.pi_user_start;
-}
-
-/*
- * int _dmalloc_chunk_free
- *
- * DESCRIPTION:
- *
- * Free a user pointer from the heap.
- *
- * RETURNS:
- *
- * Success - FREE_NOERROR
- *
- * Failure - FREE_ERROR
- *
- * ARGUMENTS:
- *
- * file -> File-name or return-address location of the allocation.
- *
- * line -> Line-number location of the allocation.
- *
- * user_pnt -> Pointer we are freeing.
- *
- * func_id -> Function ID
- */
-int _dmalloc_chunk_free(const char *file, const unsigned int line,
- void *user_pnt, const int func_id)
-{
- char where_buf[MAX_FILE_LENGTH + 64];
- char where_buf2[MAX_FILE_LENGTH + 64], disp_buf[64];
- skip_alloc_t *slot_p, *update_p;
-
- /* counts calls to free */
- if (func_id == DMALLOC_FUNC_DELETE) {
- func_delete_c++;
- }
- else if (func_id == DMALLOC_FUNC_REALLOC
- || func_id == DMALLOC_FUNC_RECALLOC) {
- /* ignore these because they will alredy be accounted for in realloc */
- }
- else {
- func_free_c++;
- }
-
- if (user_pnt == NULL) {
-
-#if ALLOW_FREE_NULL_MESSAGE
- /* does the user want a specific message? */
- dmalloc_message("WARNING: tried to free(0) from '%s'",
- _dmalloc_chunk_desc_pnt(where_buf, sizeof(where_buf),
- file, line));
-#endif
-
- /*
- * NOTE: we have here both a default in the settings.h file and a
- * runtime token in case people want to turn it on or off at
- * runtime.
- */
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_ERROR_FREE_NULL)) {
- dmalloc_errno = ERROR_IS_NULL;
- log_error_info(file, line, user_pnt, NULL, "invalid 0L pointer", "free");
- return FREE_ERROR;
- }
-
-#if ALLOW_FREE_NULL == 0
- dmalloc_errno = ERROR_IS_NULL;
-#endif
- return FREE_ERROR;
- }
-
- update_p = skip_update;
-
- /* try to find the address with loose match */
- slot_p = find_address(user_pnt, 0 /* used list */, 0 /* not exact pointer */,
- skip_update);
- if (slot_p == NULL) {
-#if FREED_POINTER_DELAY
- skip_alloc_t *del_p;
-
- /* search the delay list */
- for (del_p = free_wait_list_head;
- del_p != NULL;
- del_p = del_p->sa_next_p[0]) {
- if (del_p->sa_mem <= user_pnt
- && (char *)del_p->sa_mem + del_p->sa_total_size > (char *)user_pnt) {
- pnt_info_t info;
- get_pnt_info(del_p, &info);
- if (info.pi_user_start == user_pnt) {
- dmalloc_errno = ERROR_ALREADY_FREE;
- }
- else {
- dmalloc_errno = ERROR_NOT_FOUND;
- }
- break;
- }
- }
- if (del_p == NULL) {
-#endif
- /* not in the used list so check the free list */
- if (find_address(user_pnt, 1 /* free list */, 0 /* not exact pointer */,
- skip_update) == NULL) {
- dmalloc_errno = ERROR_NOT_FOUND;
- }
- else {
- dmalloc_errno = ERROR_ALREADY_FREE;
- }
-#if FREED_POINTER_DELAY
- }
-#endif
- log_error_info(file, line, user_pnt, NULL, "finding address in heap",
- "free");
- return FREE_ERROR;
- }
-
- if (! check_used_slot(slot_p, user_pnt, 1 /* exact pnt */, 0 /* no strlen */,
- 0 /* no min-size */)) {
- /* error set in check slot */
- log_error_info(file, line, user_pnt, slot_p, "checking pointer admin",
- "free");
- return FREE_ERROR;
- }
-
- if (! remove_slot(slot_p, update_p)) {
- /* error set and dumped in remove_slot */
- return FREE_ERROR;
- }
- if (BIT_IS_SET(slot_p->sa_flags, ALLOC_FLAG_FENCE)) {
- /*
- * We need to preserve the fence-post flag because we may need to
- * properly check for previously freed pointers in the future.
- */
- slot_p->sa_flags = ALLOC_FLAG_FREE | ALLOC_FLAG_FENCE;
- }
- else {
- slot_p->sa_flags = ALLOC_FLAG_FREE;
- }
-
- alloc_cur_pnts--;
-
- slot_p->sa_use_iter = _dmalloc_iter_c;
-#if LOG_PNT_SEEN_COUNT
- slot_p->sa_seen_c++;
-#endif
-
- /* do we need to print transaction info? */
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_LOG_TRANS)) {
- dmalloc_message("*** free: at '%s' pnt '%s': size %u, alloced at '%s'",
- _dmalloc_chunk_desc_pnt(where_buf, sizeof(where_buf), file,
- line),
- display_pnt(user_pnt, slot_p, disp_buf, sizeof(disp_buf)),
- slot_p->sa_user_size,
- _dmalloc_chunk_desc_pnt(where_buf2, sizeof(where_buf2),
- slot_p->sa_file, slot_p->sa_line));
- }
-
-#if MEMORY_TABLE_TOP_LOG
- _dmalloc_table_delete(mem_table_alloc, MEM_ALLOC_ENTRIES, slot_p->sa_file,
- slot_p->sa_line, slot_p->sa_user_size);
-#endif
-
- /* update the file/line -- must be after _dmalloc_table_delete */
- slot_p->sa_file = file;
- slot_p->sa_line = line;
-
- /* monitor current allocation level */
- alloc_current -= slot_p->sa_user_size;
- alloc_cur_given -= slot_p->sa_total_size;
- free_space_bytes += slot_p->sa_total_size;
-
- /* clear the memory */
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_FREE_BLANK)
- || BIT_IS_SET(_dmalloc_flags, DEBUG_CHECK_BLANK)) {
- memset(slot_p->sa_mem, FREE_BLANK_CHAR, slot_p->sa_total_size);
- /* set our slot blank flag */
- BIT_SET(slot_p->sa_flags, ALLOC_FLAG_BLANK);
- }
-
- /*
- * The question is should we combine multiple free chunks together
- * into one. This would help we with fragmentation but it would
- * screwup the seen counter.
- *
- * Check above and below the free bblock looking for neighbors that
- * are free so we can add them together and put them in a different
- * free slot.
- *
- * NOTE: all of these block's reuse-iter count will be moved ahead
- * because we are encorporating in this newly freed block.
- */
-
- if (! BIT_IS_SET(_dmalloc_flags, DEBUG_NEVER_REUSE)) {
-#if FREED_POINTER_DELAY
- slot_p->sa_next_p[0] = NULL;
- if (free_wait_list_head == NULL) {
- free_wait_list_head = slot_p;
- }
- else {
- free_wait_list_tail->sa_next_p[0] = slot_p;
- }
- free_wait_list_tail = slot_p;
-#else
- /* put slot on free list */
- if (! insert_slot(slot_p, 1 /* free list */)) {
- /* error dumped in insert_slot */
- return FREE_ERROR;
- }
-#endif
- }
-
- return FREE_NOERROR;
-}
-
-/*
- * void *_dmalloc_chunk_realloc
- *
- * DESCRIPTION:
- *
- * Re-allocate a chunk of memory either shrinking or expanding it.
- *
- * RETURNS:
- *
- * Success - Valid pointer.
- *
- * Failure - NULL
- *
- * ARGUMENTS:
- *
- * file -> File-name or return-address location of the allocation.
- *
- * line -> Line-number location of the allocation.
- *
- * old_user_pnt -> Old user pointer that we are reallocating.
- *
- * new_size -> New-size to change the pointer.
- *
- * func_id -> Calling function-id as defined in dmalloc.h.
- */
-void *_dmalloc_chunk_realloc(const char *file, const unsigned int line,
- void *old_user_pnt,
- const unsigned long new_size,
- const int func_id)
-{
- const char *old_file;
- skip_alloc_t *slot_p;
- pnt_info_t pnt_info;
- void *new_user_pnt;
- unsigned int old_size, old_line;
-
- /* counts calls to realloc */
- if (func_id == DMALLOC_FUNC_RECALLOC) {
- func_recalloc_c++;
- }
- else {
- func_realloc_c++;
- }
-
-#if ALLOW_ALLOC_ZERO_SIZE == 0
- if (new_size == 0) {
- dmalloc_errno = ERROR_BAD_SIZE;
- log_error_info(file, line, NULL, NULL, "bad zero byte allocation request",
- "realloc");
- return REALLOC_ERROR;
- }
-#endif
-
- /* by now malloc.c should have taken care of the realloc(NULL) case */
- if (old_user_pnt == NULL) {
- dmalloc_errno = ERROR_IS_NULL;
- log_error_info(file, line, old_user_pnt, NULL, "invalid pointer",
- "realloc");
- return REALLOC_ERROR;
- }
-
- /* find the old pointer with loose checking for fence post stuff */
- slot_p = find_address(old_user_pnt, 0 /* used list */,
- 0 /* not exact pointer */, skip_update);
- if (slot_p == NULL) {
- dmalloc_errno = ERROR_NOT_FOUND;
- log_error_info(file, line, old_user_pnt, NULL, "finding address in heap",
- "realloc");
- return 0;
- }
-
- /* get info about the pointer */
- get_pnt_info(slot_p, &pnt_info);
- old_file = slot_p->sa_file;
- old_line = slot_p->sa_line;
- old_size = slot_p->sa_user_size;
-
- /* if we are not realloc copying and the size is the same */
- if ((char *)pnt_info.pi_user_start + new_size >
- (char *)pnt_info.pi_upper_bounds
- || BIT_IS_SET(_dmalloc_flags, DEBUG_REALLOC_COPY)
- || BIT_IS_SET(_dmalloc_flags, DEBUG_NEVER_REUSE)) {
- int min_size;
-
- /* allocate space for new chunk */
- new_user_pnt = _dmalloc_chunk_malloc(file, line, new_size, func_id,
- 0 /* no align */);
- if (new_user_pnt == MALLOC_ERROR) {
- return REALLOC_ERROR;
- }
-
- /*
- * NOTE: _chunk_malloc() already took care of the fence stuff and
- * zeroing of memory.
- */
-
- /* copy stuff into new section of memory */
- min_size = MIN(new_size, old_size);
- if (min_size > 0) {
- memcpy(new_user_pnt, pnt_info.pi_user_start, min_size);
- }
-
- /* free old pointer */
- if (_dmalloc_chunk_free(file, line, old_user_pnt,
- func_id) != FREE_NOERROR) {
- return REALLOC_ERROR;
- }
- }
- else {
- /* new pointer is the same as the old one */
- new_user_pnt = pnt_info.pi_user_start;
-
- /*
- * monitor current allocation level
- *
- * NOTE: we do this here since the malloc/free used above take care
- * on if in that section
- */
- alloc_current += new_size - old_size;
- alloc_maximum = MAX(alloc_maximum, alloc_current);
- _dmalloc_alloc_total += new_size;
- alloc_one_max = MAX(alloc_one_max, new_size);
-
- /* monitor pointer usage */
- alloc_tot_pnts++;
-
- /* change the slot information */
- slot_p->sa_user_size = new_size;
- get_pnt_info(slot_p, &pnt_info);
-
- clear_alloc(slot_p, &pnt_info, old_size, func_id);
-
- slot_p->sa_use_iter = _dmalloc_iter_c;
-#if LOG_PNT_SEEN_COUNT
- /* we see in inbound and outbound so we need to increment by 2 */
- slot_p->sa_seen_c += 2;
-#endif
-
-#if MEMORY_TABLE_TOP_LOG
- _dmalloc_table_delete(mem_table_alloc, MEM_ALLOC_ENTRIES,
- slot_p->sa_file, slot_p->sa_line, old_size);
- _dmalloc_table_insert(mem_table_alloc, MEM_ALLOC_ENTRIES, file, line,
- new_size, &mem_table_alloc_c);
-#endif
-
- /*
- * finally, we update the file/line info -- must be after
- * _dmalloc_table functions
- */
- slot_p->sa_file = file;
- slot_p->sa_line = line;
- }
-
- if (BIT_IS_SET(_dmalloc_flags, DEBUG_LOG_TRANS)) {
- const char *trans_log;
- char where_buf[MAX_FILE_LENGTH + 64];
- char where_buf2[MAX_FILE_LENGTH + 64];
-
- if (func_id == DMALLOC_FUNC_RECALLOC) {
- trans_log = "recalloc";
- }
- else {
- trans_log = "realloc";
- }
- dmalloc_message("*** %s: at '%s' from '%#lx' (%u bytes) file '%s' to '%#lx' (%lu bytes)",
- trans_log,
- _dmalloc_chunk_desc_pnt(where_buf, sizeof(where_buf),
- file, line),
- (unsigned long)old_user_pnt, old_size,
- _dmalloc_chunk_desc_pnt(where_buf2, sizeof(where_buf2),
- old_file, old_line),
- (unsigned long)new_user_pnt, new_size);
- }
-
- return new_user_pnt;
-}
-
-/***************************** diagnostic routines ***************************/
-
-/*
- * void _dmalloc_chunk_log_stats
- *
- * DESCRIPTION:
- *
- * Log general statistics from the heap to the logfile.
- *
- * RETURNS:
- *
- * None.
- *
- * ARGUMENTS:
- *
- * None.
- */
-void _dmalloc_chunk_log_stats(void)
-{
- unsigned long overhead, user_space, tot_space;
-
- dmalloc_message("Dumping Chunk Statistics:");
-
- tot_space = (user_block_c + admin_block_c) * BLOCK_SIZE;
- user_space = alloc_current + free_space_bytes;
- overhead = admin_block_c * BLOCK_SIZE;
-
- /* version information */
- dmalloc_message("basic-block %d bytes, alignment %d bytes",
- BLOCK_SIZE, ALLOCATION_ALIGNMENT);
-
- /* general heap information with blocks */
- dmalloc_message("heap address range: %#lx to %#lx, %ld bytes",
- (unsigned long)_dmalloc_heap_low,
- (unsigned long)_dmalloc_heap_high,
- (unsigned long)_dmalloc_heap_high -
- (unsigned long)_dmalloc_heap_low);
- dmalloc_message(" user blocks: %ld blocks, %ld bytes (%ld%%)",
- user_block_c, user_space,
- (tot_space < 100 ? 0 : user_space / (tot_space / 100)));
- dmalloc_message(" admin blocks: %ld blocks, %ld bytes (%ld%%)",
- admin_block_c, overhead,
- (tot_space < 100 ? 0 : overhead / (tot_space / 100)));
- dmalloc_message(" total blocks: %ld blocks, %ld bytes",
- user_block_c + admin_block_c, tot_space);
-
- dmalloc_message("heap checked %ld", heap_check_c);
-
- /* log user allocation information */
- dmalloc_message("alloc calls: malloc %lu, calloc %lu, realloc %lu, free %lu",
- func_malloc_c, func_calloc_c, func_realloc_c, func_free_c);
- dmalloc_message("alloc calls: recalloc %lu, memalign %lu, valloc %lu",
- func_recalloc_c, func_memalign_c, func_valloc_c);
- dmalloc_message("alloc calls: new %lu, delete %lu",
- func_new_c, func_delete_c);
- dmalloc_message(" current memory in use: %lu bytes (%lu pnts)",
- alloc_current, alloc_cur_pnts);
- dmalloc_message(" total memory allocated: %lu bytes (%lu pnts)",
- _dmalloc_alloc_total, alloc_tot_pnts);
-
- /* maximum stats */
- dmalloc_message(" max in use at one time: %lu bytes (%lu pnts)",
- alloc_maximum, alloc_max_pnts);
- dmalloc_message("max alloced with 1 call: %lu bytes",
- alloc_one_max);
- dmalloc_message("max unused memory space: %lu bytes (%lu%%)",
- alloc_max_given - alloc_maximum,
- (alloc_max_given == 0 ? 0 :
- ((alloc_max_given - alloc_maximum) * 100) /
- alloc_max_given));
-
-#if MEMORY_TABLE_TOP_LOG
- dmalloc_message("top %d allocations:", MEMORY_TABLE_TOP_LOG);
- _dmalloc_table_log_info(mem_table_alloc, mem_table_alloc_c,
- MEM_ALLOC_ENTRIES, MEMORY_TABLE_TOP_LOG,
- 1 /* have in-use column */);
-#endif
-}
-
-/*
- * void _dmalloc_chunk_log_changed
- *
- * DESCRIPTION:
- *
- * Log the pointers that has changed since a pointer in time.
- *
- * RETURNS:
- *
- * None.
- *
- * ARGUMENTS:
- *
- * mark -> Dmalloc counter used to mark a specific time so that
- * servers can check on the changed pointers.
- *
- * log_non_free_b -> If set to 1 then log the new not-freed
- * (i.e. used) pointers.
- *
- * log_free_b -> If set to 1 then log the new freed pointers.
- *
- * details_b -> If set to 1 then dump the individual pointer entries
- * instead of just the summary.
- */
-void _dmalloc_chunk_log_changed(const unsigned long mark,
- const int log_not_freed_b,
- const int log_freed_b, const int details_b)
-{
- skip_alloc_t *slot_p;
- pnt_info_t pnt_info;
- int known_b, freed_b, used_b;
- char out[DUMP_SPACE * 4], *which_str;
- char where_buf[MAX_FILE_LENGTH + 64], disp_buf[64];
- int unknown_size_c = 0, unknown_block_c = 0, out_len;
- int size_c = 0, block_c = 0, checking_list_c = 0;
-
- if (log_not_freed_b && log_freed_b) {
- which_str = "Not-Freed and Freed";
- }
- else if (log_not_freed_b) {
- which_str = "Not-Freed";
- }
- else if (log_freed_b) {
- which_str = "Freed";
- }
- else {
- return;
- }
-
- if (mark == 0) {
- dmalloc_message("Dumping %s Pointers Changed Since Start:", which_str);
- }
- else {
- dmalloc_message("Dumping %s Pointers Changed Since Mark %lu:",
- which_str, mark);
- }
-
- /* clear out our memory table so we can fill it with pointer info */
- _dmalloc_table_clear(mem_table_changed, MEM_CHANGED_ENTRIES,
- &mem_table_changed_c);
-
- /* run through the blocks */
- for (slot_p = skip_address_list->sa_next_p[0];
- ;
- slot_p = slot_p->sa_next_p[0]) {
-
- /*
- * switch to the free list in the middle after we've checked the
- * used pointer slots
- */
- if (slot_p == NULL) {
- checking_list_c++;
- if (checking_list_c == 1) {
- slot_p = skip_free_list->sa_next_p[0];
- }
-#if FREED_POINTER_DELAY
- else if (checking_list_c == 2) {
- slot_p = free_wait_list_head;
- }
-#endif
- else {
- /* we are done */
- break;
- }
- if (slot_p == NULL) {
- break;
- }
- }
-
- freed_b = BIT_IS_SET(slot_p->sa_flags, ALLOC_FLAG_FREE);
- used_b = BIT_IS_SET(slot_p->sa_flags, ALLOC_FLAG_USER);
-
- /*
- * check for different types
- */
- if (! (freed_b || used_b)) {
- continue;
- }
-
- /* do we want to dump this one? */
- if (! ((log_not_freed_b && used_b) || (log_freed_b && freed_b))) {
- continue;
- }
- /* is it too long ago? */
- if (slot_p->sa_use_iter <= mark) {
- continue;
- }
-
- /* unknown pointer? */
- if (slot_p->sa_file == DMALLOC_DEFAULT_FILE
- || slot_p->sa_line == DMALLOC_DEFAULT_LINE) {
- unknown_block_c++;
- unknown_size_c += slot_p->sa_user_size;
- known_b = 0;
- }
- else {
- known_b = 1;
- }
-
- get_pnt_info(slot_p, &pnt_info);
-
- if (known_b || (! BIT_IS_SET(_dmalloc_flags, DEBUG_LOG_KNOWN))) {
- if (details_b) {
- dmalloc_message(" %s freed: '%s' (%u bytes) from '%s'",
- (freed_b ? " " : "not"),
- display_pnt(pnt_info.pi_user_start, slot_p, disp_buf,
- sizeof(disp_buf)),
- slot_p->sa_user_size,
- _dmalloc_chunk_desc_pnt(where_buf, sizeof(where_buf),
- slot_p->sa_file,
- slot_p->sa_line));
-
- if ((! freed_b)
- && BIT_IS_SET(_dmalloc_flags, DEBUG_LOG_NONFREE_SPACE)) {
- out_len = expand_chars((char *)pnt_info.pi_user_start, DUMP_SPACE,
- out, sizeof(out));
- dmalloc_message(" dump of '%#lx': '%.*s'",
- (unsigned long)pnt_info.pi_user_start, out_len, out);
- }
- }
- _dmalloc_table_insert(mem_table_changed, MEM_CHANGED_ENTRIES,
- slot_p->sa_file, slot_p->sa_line,
- slot_p->sa_user_size, &mem_table_changed_c);
- }
- }
-
- /* dump the summary from the table table */
- _dmalloc_table_log_info(mem_table_changed, mem_table_changed_c,
- MEM_CHANGED_ENTRIES, 0 /* log all entries */,
- 0 /* no in-use column */);
-
- /* copy out size of pointers */
- if (block_c > 0) {
- if (block_c - unknown_block_c > 0) {
- dmalloc_message(" known memory: %d pointer%s, %d bytes",
- block_c - unknown_block_c,
- (block_c - unknown_block_c == 1 ? "" : "s"),
- size_c - unknown_size_c);
- }
- if (unknown_block_c > 0) {
- dmalloc_message(" unknown memory: %d pointer%s, %d bytes",
- unknown_block_c, (unknown_block_c == 1 ? "" : "s"),
- unknown_size_c);
- }
- }
-}
-
-/*
- * unsigned long _dmalloc_chunk_count_changed
- *
- * DESCRIPTION:
- *
- * Return the pointers that has changed since a pointer in time.
- *
- * RETURNS:
- *
- * Number of bytes changed since mark.
- *
- * ARGUMENTS:
- *
- * mark -> Dmalloc counter used to mark a specific time so that
- * servers can check on the changed pointers.
- *
- * count_non_free_b -> If set to 1 then count the new not-freed
- * (i.e. used) pointers.
- *
- * count_free_b -> If set to 1 then count the new freed pointers.
- */
-unsigned long _dmalloc_chunk_count_changed(const unsigned long mark,
- const int count_not_freed_b,
- const int count_freed_b)
-{
- skip_alloc_t *slot_p;
- int freed_b, used_b;
- int checking_list_c = 0;
- unsigned int mem_count = 0;
-
- /* run through the blocks */
- for (slot_p = skip_address_list->sa_next_p[0];
- ;
- slot_p = slot_p->sa_next_p[0]) {
-
- /*
- * switch to the free list in the middle after we've checked the
- * used pointer slots
- */
- if (slot_p == NULL) {
- checking_list_c++;
- if (checking_list_c == 1) {
- slot_p = skip_free_list->sa_next_p[0];
- }
-#if FREED_POINTER_DELAY
- else if (checking_list_c == 2) {
- slot_p = free_wait_list_head;
- }
-#endif
- else {
- /* we are done */
- break;
- }
- if (slot_p == NULL) {
- break;
- }
- }
-
- freed_b = BIT_IS_SET(slot_p->sa_flags, ALLOC_FLAG_FREE);
- used_b = BIT_IS_SET(slot_p->sa_flags, ALLOC_FLAG_USER);
-
- /*
- * check for different types
- */
- if (! (freed_b || used_b)) {
- continue;
- }
- /* is it too long ago? */
- if (slot_p->sa_use_iter <= mark) {
- continue;
- }
-
- /* count the memory */
- if (count_not_freed_b && used_b) {
- mem_count += slot_p->sa_user_size;
- }
- else if (count_freed_b && freed_b) {
- mem_count += slot_p->sa_user_size;
- }
- }
-
- return mem_count;
-}
-
-/*
- * void _dmalloc_chunk_get_stats
- *
- * DESCRIPTION:
- *
- * Return a number of statistics about the current heap.
- *
- * RETURNS:
- *
- * None.
- *
- * ARGUMENTS:
- *
- * heap_low_p <- Pointer to pointer which, if not 0L, will be set to
- * the low address in the heap.
- *
- * heap_high_p <- Pointer to pointer which, if not 0L, will be set to
- * the high address in the heap.
- *
- * total_space_p <- Pointer to an unsigned long which, if not 0L, will
- * be set to the total space managed by the library including user
- * space, administrative space, and overhead.
- *
- * user_space_p <- Pointer to an unsigned long which, if not 0L, will
- * be set to the space given to the user process (allocated and free).
- *
- * current_allocated_p <- Pointer to an unsigned long which, if not
- * 0L, will be set to the current allocated space given to the user
- * process.
- *
- * current_pnt_np <- Pointer to an unsigned long which, if not 0L,
- * will be set to the current number of pointers allocated by the user
- * process.
- *
- * max_allocated_p <- Pointer to an unsigned long which, if not 0L,
- * will be set to the maximum allocated space given to the user
- * process.
- *
- * max_pnt_np <- Pointer to an unsigned long which, if not 0L, will be
- * set to the maximum number of pointers allocated by the user
- * process.
- *
- * max_one_p <- Pointer to an unsigned long which, if not 0L, will be
- * set to the maximum allocated with 1 call by the user process.
- */
-void _dmalloc_chunk_get_stats(void **heap_low_p, void **heap_high_p,
- unsigned long *total_space_p,
- unsigned long *user_space_p,
- unsigned long *current_allocated_p,
- unsigned long *current_pnt_np,
- unsigned long *max_allocated_p,
- unsigned long *max_pnt_np,
- unsigned long *max_one_p)
-{
- SET_POINTER(heap_low_p, _dmalloc_heap_low);
- SET_POINTER(heap_high_p, _dmalloc_heap_high);
- SET_POINTER(total_space_p, (user_block_c + admin_block_c) * BLOCK_SIZE);
- SET_POINTER(user_space_p, alloc_current + free_space_bytes);
- SET_POINTER(current_allocated_p, alloc_current);
- SET_POINTER(current_pnt_np, alloc_cur_pnts);
- SET_POINTER(max_allocated_p, alloc_maximum);
- SET_POINTER(max_pnt_np, alloc_max_pnts);
- SET_POINTER(max_one_p, alloc_one_max);
-}
diff --git a/dmalloc-5.5.2/.svn/text-base/chunk.h.svn-base b/dmalloc-5.5.2/.svn/text-base/chunk.h.svn-base
deleted file mode 100644
index 729c352..0000000
--- a/dmalloc-5.5.2/.svn/text-base/chunk.h.svn-base
+++ /dev/null
@@ -1,411 +0,0 @@
-/*
- * Defines for low level memory management routines
- *
- * Copyright 2000 by Gray Watson
- *
- * This file is part of the dmalloc package.
- *
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the
- * above copyright notice and this permission notice appear in all
- * copies, and that the name of Gray Watson not be used in advertising
- * or publicity pertaining to distribution of the document or software
- * without specific, written prior permission.
- *
- * Gray Watson makes no representations about the suitability of the
- * software described herein for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * The author may be contacted via http://dmalloc.com/
- *
- * $Id: chunk.h,v 1.72 2007/03/23 13:33:06 gray Exp $
- */
-
-#ifndef __CHUNK_H__
-#define __CHUNK_H__
-
-/*<<<<<<<<<< The below prototypes are auto-generated by fillproto */
-
-/* limit in how much memory we are allowed to allocate */
-extern
-unsigned long _dmalloc_memory_limit;
-
-/* total number of bytes that the heap has allocated */
-extern
-unsigned long _dmalloc_alloc_total;
-
-/*
- * int _dmalloc_chunk_startup
- *
- * DESCRIPTION:
- *
- * Startup the low level malloc routines.
- *
- * RETURNS:
- *
- * Success - 1
- *
- * Failure - 0
- *
- * ARGUMENTS:
- *
- * None.
- */
-extern
-int _dmalloc_chunk_startup(void);
-
-/*
- * char *_dmalloc_chunk_desc_pnt
- *
- * DESCRIPTION:
- *
- * Write into a buffer a pointer description with file and
- * line-number.
- *
- * RETURNS:
- *
- * Pointer to buffer 1st argument.
- *
- * ARGUMENTS:
- *
- * buf <-> Passed in buffer which will be filled with a description of
- * the pointer.
- *
- * buf_size -> Size of the buffer in bytes.
- *
- * file -> File name, return address, or NULL.
- *
- * line -> Line number or 0.
- */
-extern
-char *_dmalloc_chunk_desc_pnt(char *buf, const int buf_size,
- const char *file, const unsigned int line);
-
-/*
- * int _dmalloc_chunk_read_info
- *
- * DESCRIPTION:
- *
- * Return some information associated with a pointer.
- *
- * RETURNS:
- *
- * Success - 1 pointer is okay
- *
- * Failure - 0 problem with pointer
- *
- * ARGUMENTS:
- *
- * user_pnt -> Pointer we are checking.
- *
- * where <- Where the check is being made from.
- *
- * user_size_p <- Pointer to an unsigned int which, if not NULL, will
- * be set to the size of bytes that the user requested.
- *
- * alloc_size_p <- Pointer to an unsigned int which, if not NULL, will
- * be set to the total given size of bytes including block overhead.
- *
- * file_p <- Pointer to a character pointer which, if not NULL, will
- * be set to the file where the pointer was allocated.
- *
- * line_p <- Pointer to a character pointer which, if not NULL, will
- * be set to the line-number where the pointer was allocated.
- *
- * ret_attr_p <- Pointer to a void pointer, if not NULL, will be set
- * to the return-address where the pointer was allocated.
- *
- * seen_cp <- Pointer to an unsigned long which, if not NULL, will be
- * set to the number of times the pointer has been "seen".
- *
- * used_p <- Pointer to an unsigned long which, if not NULL, will be
- * set to the last time the pointer was "used".
- *
- * valloc_bp <- Pointer to an integer which, if not NULL, will be set
- * to 1 if the pointer was allocated with valloc otherwise 0.
- *
- * fence_bp <- Pointer to an integer which, if not NULL, will be set
- * to 1 if the pointer has the fence bit set otherwise 0.
- */
-extern
-int _dmalloc_chunk_read_info(const void *user_pnt, const char *where,
- unsigned int *user_size_p,
- unsigned int *alloc_size_p, char **file_p,
- unsigned int *line_p, void **ret_attr_p,
- unsigned long **seen_cp,
- unsigned long *used_p, int *valloc_bp,
- int *fence_bp);
-
-/*
- * int _dmalloc_chunk_heap_check
- *
- * DESCRIPTION:
- *
- * Run extensive tests on the entire heap.
- *
- * RETURNS:
- *
- * Success - 1 if the heap is okay
- *
- * Failure - 0 if a problem was detected
- *
- * ARGUMENTS:
- *
- * None.
- */
-extern
-int _dmalloc_chunk_heap_check(void);
-
-/*
- * int _dmalloc_chunk_pnt_check
- *
- * DESCRIPTION:
- *
- * Run extensive tests on a pointer.
- *
- * RETURNS:
- *
- * Success - 1 if the pointer is okay
- *
- * Failure - 0 if not
- *
- * ARGUMENTS:
- *
- * func -> Function string which is checking the pointer.
- *
- * user_pnt -> Pointer we are checking.
- *
- * exact_b -> Set to 1 to find the pointer specifically. Otherwise we
- * can find the pointer inside of an allocation.
- *
- * strlen_b -> Make sure that pnt can hold at least a strlen + 1
- * bytes. If 0 then ignore.
- *
- * min_size -> Make sure that pnt can hold at least that many bytes.
- * If 0 then ignore.
- */
-extern
-int _dmalloc_chunk_pnt_check(const char *func, const void *user_pnt,
- const int exact_b, const int strlen_b,
- const int min_size);
-
-/*
- * void *_dmalloc_chunk_malloc
- *
- * DESCRIPTION:
- *
- * Allocate a chunk of memory.
- *
- * RETURNS:
- *
- * Success - Valid pointer.
- *
- * Failure - NULL
- *
- * ARGUMENTS:
- *
- * file -> File-name or return-address location of the allocation.
- *
- * line -> Line-number location of the allocation.
- *
- * size -> Number of bytes to allocate.
- *
- * func_id -> Calling function-id as defined in dmalloc.h.
- *
- * alignment -> If greater than 0 then try to align the returned
- * block.
- */
-extern
-void *_dmalloc_chunk_malloc(const char *file, const unsigned int line,
- const unsigned long size, const int func_id,
- const unsigned int alignment);
-
-/*
- * int _dmalloc_chunk_free
- *
- * DESCRIPTION:
- *
- * Free a user pointer from the heap.
- *
- * RETURNS:
- *
- * Success - FREE_NOERROR
- *
- * Failure - FREE_ERROR
- *
- * ARGUMENTS:
- *
- * file -> File-name or return-address location of the allocation.
- *
- * line -> Line-number location of the allocation.
- *
- * user_pnt -> Pointer we are freeing.
- *
- * func_id -> Function ID
- */
-extern
-int _dmalloc_chunk_free(const char *file, const unsigned int line,
- void *user_pnt, const int func_id);
-
-/*
- * void *_dmalloc_chunk_realloc
- *
- * DESCRIPTION:
- *
- * Re-allocate a chunk of memory either shrinking or expanding it.
- *
- * RETURNS:
- *
- * Success - Valid pointer.
- *
- * Failure - NULL
- *
- * ARGUMENTS:
- *
- * file -> File-name or return-address location of the allocation.
- *
- * line -> Line-number location of the allocation.
- *
- * old_user_pnt -> Old user pointer that we are reallocating.
- *
- * new_size -> New-size to change the pointer.
- *
- * func_id -> Calling function-id as defined in dmalloc.h.
- */
-extern
-void *_dmalloc_chunk_realloc(const char *file, const unsigned int line,
- void *old_user_pnt,
- const unsigned long new_size,
- const int func_id);
-
-/*
- * void _dmalloc_chunk_log_stats
- *
- * DESCRIPTION:
- *
- * Log general statistics from the heap to the logfile.
- *
- * RETURNS:
- *
- * None.
- *
- * ARGUMENTS:
- *
- * None.
- */
-extern
-void _dmalloc_chunk_log_stats(void);
-
-/*
- * void _dmalloc_chunk_log_changed
- *
- * DESCRIPTION:
- *
- * Log the pointers that has changed since a pointer in time.
- *
- * RETURNS:
- *
- * None.
- *
- * ARGUMENTS:
- *
- * mark -> Dmalloc counter used to mark a specific time so that
- * servers can check on the changed pointers.
- *
- * log_non_free_b -> If set to 1 then log the new not-freed
- * (i.e. used) pointers.
- *
- * log_free_b -> If set to 1 then log the new freed pointers.
- *
- * details_b -> If set to 1 then dump the individual pointer entries
- * instead of just the summary.
- */
-extern
-void _dmalloc_chunk_log_changed(const unsigned long mark,
- const int log_not_freed_b,
- const int log_freed_b, const int details_b);
-
-/*
- * unsigned long _dmalloc_chunk_count_changed
- *
- * DESCRIPTION:
- *
- * Return the pointers that has changed since a pointer in time.
- *
- * RETURNS:
- *
- * Number of bytes changed since mark.
- *
- * ARGUMENTS:
- *
- * mark -> Dmalloc counter used to mark a specific time so that
- * servers can check on the changed pointers.
- *
- * count_non_free_b -> If set to 1 then count the new not-freed
- * (i.e. used) pointers.
- *
- * count_free_b -> If set to 1 then count the new freed pointers.
- */
-extern
-unsigned long _dmalloc_chunk_count_changed(const unsigned long mark,
- const int count_not_freed_b,
- const int count_freed_b);
-
-/*
- * void _dmalloc_chunk_get_stats
- *
- * DESCRIPTION:
- *
- * Return a number of statistics about the current heap.
- *
- * RETURNS:
- *
- * None.
- *
- * ARGUMENTS:
- *
- * heap_low_p <- Pointer to pointer which, if not 0L, will be set to
- * the low address in the heap.
- *
- * heap_high_p <- Pointer to pointer which, if not 0L, will be set to
- * the high address in the heap.
- *
- * total_space_p <- Pointer to an unsigned long which, if not 0L, will
- * be set to the total space managed by the library including user
- * space, administrative space, and overhead.
- *
- * user_space_p <- Pointer to an unsigned long which, if not 0L, will
- * be set to the space given to the user process (allocated and free).
- *
- * current_allocated_p <- Pointer to an unsigned long which, if not
- * 0L, will be set to the current allocated space given to the user
- * process.
- *
- * current_pnt_np <- Pointer to an unsigned long which, if not 0L,
- * will be set to the current number of pointers allocated by the user
- * process.
- *
- * max_allocated_p <- Pointer to an unsigned long which, if not 0L,
- * will be set to the maximum allocated space given to the user
- * process.
- *
- * max_pnt_np <- Pointer to an unsigned long which, if not 0L, will be
- * set to the maximum number of pointers allocated by the user
- * process.
- *
- * max_one_p <- Pointer to an unsigned long which, if not 0L, will be
- * set to the maximum allocated with 1 call by the user process.
- */
-extern
-void _dmalloc_chunk_get_stats(void **heap_low_p, void **heap_high_p,
- unsigned long *total_space_p,
- unsigned long *user_space_p,
- unsigned long *current_allocated_p,
- unsigned long *current_pnt_np,
- unsigned long *max_allocated_p,
- unsigned long *max_pnt_np,
- unsigned long *max_one_p);
-
-/*<<<<<<<<<< This is end of the auto-generated output from fillproto. */
-
-#endif /* ! __CHUNK_H__ */
diff --git a/dmalloc-5.5.2/.svn/text-base/chunk_loc.h.svn-base b/dmalloc-5.5.2/.svn/text-base/chunk_loc.h.svn-base
deleted file mode 100644
index f1c035b..0000000
--- a/dmalloc-5.5.2/.svn/text-base/chunk_loc.h.svn-base
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Local defines for the low level memory routines
- *
- * Copyright 2000 by Gray Watson
- *
- * This file is part of the dmalloc package.
- *
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the
- * above copyright notice and this permission notice appear in all
- * copies, and that the name of Gray Watson not be used in advertising
- * or publicity pertaining to distribution of the document or software
- * without specific, written prior permission.
- *
- * Gray Watson makes no representations about the suitability of the
- * software described herein for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * The author may be contacted via http://dmalloc.com/
- *
- * $Id: chunk_loc.h,v 1.70 2003/06/09 23:14:17 gray Exp $
- */
-
-#ifndef __CHUNK_LOC_H__
-#define __CHUNK_LOC_H__
-
-#include "conf.h" /* up here for _INCLUDE */
-#include "dmalloc_loc.h" /* for DMALLOC_SIZE */
-
-/* for thread-id types -- see conf.h */
-#if LOG_THREAD_ID
-#ifdef THREAD_INCLUDE
-#include THREAD_INCLUDE
-#endif
-#endif
-
-/* for time type -- see settings.h */
-#if LOG_PNT_TIMEVAL
-# ifdef TIMEVAL_INCLUDE
-# include TIMEVAL_INCLUDE
-# endif
-#else
-# if LOG_PNT_TIME
-# ifdef TIME_INCLUDE
-# include TIME_INCLUDE
-# endif
-# endif
-#endif
-
-/* log-bad-space info */
-#define SPECIAL_CHARS "\"\"''\\\\n\nr\rt\tb\bf\fa\007"
-
-/*
- * Maximum level in the skip list. This implies that we can only
- * store 2^32 entries optimally. Needless to say this is plenty.
- */
-#define MAX_SKIP_LEVEL 32
-
-/* memory table settings */
-#define MEM_ALLOC_ENTRIES (MEMORY_TABLE_SIZE * 2)
-#define MEM_CHANGED_ENTRIES (MEMORY_TABLE_SIZE * 2)
-
-/* NOTE: FENCE_BOTTOM_SIZE and FENCE_TOP_SIZE defined in settings.h */
-#define FENCE_OVERHEAD_SIZE (FENCE_BOTTOM_SIZE + FENCE_TOP_SIZE)
-#define FENCE_MAGIC_BOTTOM 0xC0C0AB1B
-#define FENCE_MAGIC_TOP 0xFACADE69
-/* smallest allocated block */
-#define CHUNK_SMALLEST_BLOCK \
- (FENCE_BOTTOM_SIZE + DEFAULT_SMALLEST_ALLOCATION)
-
-/* flags associated with the skip_alloc_t type's sa_flags field */
-#define ALLOC_FLAG_USER BIT_FLAG(0) /* slot is user allocated */
-#define ALLOC_FLAG_FREE BIT_FLAG(1) /* slot is free */
-#define ALLOC_FLAG_EXTERN BIT_FLAG(2) /* slot allocated externally */
-#define ALLOC_FLAG_ADMIN BIT_FLAG(3) /* administrative space */
-#define ALLOC_FLAG_BLANK BIT_FLAG(4) /* slot has been blanked */
-#define ALLOC_FLAG_FENCE BIT_FLAG(5) /* slot is fence posted */
-#define ALLOC_FLAG_VALLOC BIT_FLAG(6) /* slot is block aligned */
-
-/*
- * Below defines an allocation structure either on the free or used
- * list. It tracks allocations that fit in partial, one, or many
- * basic-blocks. It stores some optional fields for recording
- * information about the pointer.
- */
-typedef struct skip_alloc_st {
-
- unsigned char sa_flags; /* what it is */
-
- /* some small data types up front to save on space */
- unsigned char sa_level_n; /* how tall our node is */
- unsigned short sa_line; /* line where it was allocated */
-
- unsigned int sa_user_size; /* size requested by user (wo fence) */
- unsigned int sa_total_size; /* total size of the block */
-
- void *sa_mem; /* pointer to the memory in question */
- const char *sa_file; /* .c filename where allocated */
- unsigned long sa_use_iter; /* when last ``used'' */
-
-#if LOG_PNT_SEEN_COUNT
- unsigned long sa_seen_c; /* times pointer was seen */
-#endif
-#if LOG_PNT_ITERATION
- unsigned long sa_iteration; /* interation when pointer alloced */
-#endif
-#if LOG_PNT_TIMEVAL
- TIMEVAL_TYPE sa_timeval; /* time when pointer alloced */
-#else
-#if LOG_PNT_TIME
- TIME_TYPE sa_time; /* time when pointer alloced */
-#endif
-#endif
-#if LOG_PNT_THREAD_ID
- THREAD_TYPE sa_thread_id; /* thread id which allocaed pnt */
-#endif
-
- /*
- * Array of next pointers. This may extend past the end of the
- * function if we allocate for space larger than the structure.
- */
- struct skip_alloc_st *sa_next_p[1];
-
-} skip_alloc_t;
-
-/*
- * This macro helps us determine how much memory we need to store to
- * hold all of the next pointers in the skip-list entry. So if we are
- * at level 0 then this will have no extra next pointers since there
- * already is one inside of skip_alloc_t.
- */
-#define SKIP_SLOT_SIZE(next_n) \
- (sizeof(skip_alloc_t) + sizeof(skip_alloc_t *) * (next_n))
-
-/* entry block magic numbers */
-#define ENTRY_BLOCK_MAGIC1 0xEBEB1111 /* for the eb_magic1 field */
-#define ENTRY_BLOCK_MAGIC2 0xEBEB2222 /* for the eb_magic2 field */
-#define ENTRY_BLOCK_MAGIC3 0xEBEB3333 /* written at end of eb block*/
-
-/*
- * The following structure is written at the front of a skip-list
- * entry administrative block.
- */
-typedef struct entry_block_st {
- unsigned int eb_magic1; /* magic number */
- unsigned int eb_level_n; /* the levels which are stored here */
- struct entry_block_st *eb_next_p; /* pointer to next block */
- unsigned int eb_magic2; /* magic number */
-
- skip_alloc_t eb_first_slot; /* first slot in the block */
-
- /*
- * the rest are after this one but we don't really know the size
- * because it is based on the skip-level.
- */
-
- /*
- * At the end of the block is the MAGIC3 value but we can't define
- * it in a structure.
- */
-} entry_block_t;
-
-/*
- * The following structure is used to figure out a number of bits of
- * information about a user allocation.
- */
-typedef struct {
- int pi_fence_b; /* fence-posts are on for pointer */
- int pi_valloc_b; /* pointer is valloc-aligned */
- int pi_blanked_b; /* pointer was blanked */
- void *pi_alloc_start; /* pnt to start of allocation */
- void *pi_fence_bottom; /* pnt to the bottom fence area */
- void *pi_user_start; /* pnt to start of user allocation */
- void *pi_user_bounds; /* pnt past end of user allocation */
- void *pi_fence_top; /* pnt to the top fence area */
- void *pi_upper_bounds; /* pnt to highest available user area*/
- void *pi_alloc_bounds; /* pnt past end of total allocation */
-} pnt_info_t;
-
-#endif /* ! __CHUNK_LOC_H__ */
diff --git a/dmalloc-5.5.2/.svn/text-base/compat.c.svn-base b/dmalloc-5.5.2/.svn/text-base/compat.c.svn-base
deleted file mode 100644
index bc1953d..0000000
--- a/dmalloc-5.5.2/.svn/text-base/compat.c.svn-base
+++ /dev/null
@@ -1,494 +0,0 @@
-/*
- * Compatibility functions for those systems who are missing them.
- *
- * Copyright 2000 by Gray Watson
- *
- * This file is part of the dmalloc package.
- *
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the
- * above copyright notice and this permission notice appear in all
- * copies, and that the name of Gray Watson not be used in advertising
- * or publicity pertaining to distribution of the document or software
- * without specific, written prior permission.
- *
- * Gray Watson makes no representations about the suitability of the
- * software described herein for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * The author may be contacted via http://dmalloc.com/
- *
- * $Id: compat.c,v 1.57 2007/05/14 15:53:11 gray Exp $
- */
-
-/*
- * This file holds the compatibility routines necessary for the library to
- * function just in case your system does not have them.
- */
-
-#include /* for vsprintf */
-
-#if HAVE_STDARG_H
-# include /* for ... */
-#endif
-
-#define DMALLOC_DISABLE
-
-#include "conf.h"
-#include "dmalloc.h"
-
-#include "compat.h"
-#include "dmalloc_loc.h"
-
-#if HAVE_ATOI == 0
-/*
- * Turn a ascii-string into an integer which is returned
- */
-int atoi(const char *str)
-{
- const char *str_p;
- int sign = 1, result = 0;
-
- /* skip opening white space */
- for (str_p = str; *str_p == ' ' || *str_p == '\t'; str_p++) {
- }
-
- /* handle sign */
- if (*str_p == '-') {
- sign = -1;
- str_p++;
- }
- else if (*str_p == '+') {
- /* sign is already 1 */
- str_p++;
- }
-
- /* skip more white space */
- for (; *str_p == ' ' || *str_p == '\t'; str_p++) {
- }
-
- /* now add up all digits */
- for (; *str_p >= '0' && *str_p <= '9'; str_p++) {
- result = result * 10 + *str_p - '0';
- }
-
- return result * sign;
-}
-#endif /* HAVE_ATOI == 0 */
-
-#if HAVE_ATOL == 0
-/*
- * Turn a ascii-string into an integer which is returned
- */
-long atol(const char *str)
-{
- const char *str_p;
- long sign = 1, result = 0;
-
- /* skip opening white space */
- for (str_p = str; *str_p == ' ' || *str_p == '\t'; str_p++) {
- }
-
- /* handle sign */
- if (*str_p == '-') {
- sign = -1;
- str_p++;
- }
- else if (*str_p == '+') {
- /* sign is already 1 */
- str_p++;
- }
-
- /* skip more white space */
- for (; *str_p == ' ' || *str_p == '\t'; str_p++) {
- }
-
- /* now add up all digits */
- for (; *str_p >= '0' && *str_p <= '9'; str_p++) {
- result = result * (long)10 + (long)(*str_p - '0');
- }
-
- return result * sign;
-}
-#endif /* HAVE_ATOL == 0 */
-
-/*
- * Local ascii to unsigned long function
- */
-unsigned long loc_atoul(const char *str)
-{
- const char *str_p;
- unsigned long result = 0;
-
- /* skip opening white space */
- for (str_p = str; *str_p == ' ' || *str_p == '\t'; str_p++) {
- }
-
- /* now add up all digits */
- for (; *str_p >= '0' && *str_p <= '9'; str_p++) {
- result = result * (unsigned long)10 + (unsigned long)(*str_p - '0');
- }
-
- return result;
-}
-
-/*
- * Local vsnprintf which handles the buffer-size or not. Returns the
- * number of characters copied into BUF.
- */
-int loc_vsnprintf(char *buf, const int buf_size, const char *format,
- va_list args)
-{
- char *buf_p;
-
-#if HAVE_VSNPRINTF
- (void)vsnprintf(buf, buf_size, format, args);
-#else
-#if HAVE_VPRINTF
- (void)vsprintf(buf, format, args);
-#else
- /* Oh well. Just do a strcpy of the format */
- (void)strncpy(buf, format, buf_size - 1);
- buf[buf_size - 1] = '\0';
-#endif
-#endif
-
- /* now find the end of the buffer */
- for (buf_p = buf; *buf_p != '\0'; buf_p++) {
- }
-
- return buf_p - buf;
-}
-
-/*
- * Local snprintf which handles the buf-size not. Returns the number
- * of characters copied into BUF.
- */
-int loc_snprintf(char *buf, const int buf_size, const char *format, ...)
-{
- va_list args;
- int len;
-
- va_start(args, format);
- len = loc_vsnprintf(buf, buf_size, format, args);
- va_end(args);
-
- return len;
-}
-
-#if HAVE_MEMCMP == 0
-/*
- * Compare LEN characters, return -1,0,1 if STR1 is <,==,> STR2
- */
-int memcmp(const void *str1, const void *str2, DMALLOC_SIZE len)
-{
- const unsigned char *str1_p, *str2_p;
-
- for (str1_p = str1, str2_p = str2; len > 0; len--, str1_p++, str2_p++) {
- if (*str1_p != *str2_p) {
- return *str1_p - *str2_p;
- }
- }
-
- return 0;
-}
-#endif /* HAVE_MEMCMP == 0 */
-
-#if HAVE_MEMCPY == 0
-/*
- * Copy LEN characters from SRC to DEST
- */
-void *memcpy(void *dest, const void *src, DMALLOC_SIZE len)
-{
- unsigned char *dest_p;
- const unsigned char *src_p;
- int byte_c;
-
- if (len <= 0) {
- return;
- }
-
- /*
- * NOTE: should we check to make sure that it's not overlapped but
- * there may be times where people want this, albeit bizarre,
- * behavior.
- */
-
- src_p = src;
- dest_p = dest;
-
- if (src_p <= dest_p && src_p + (len - 1) >= dest_p) {
- /* overlap, must copy right-to-left. */
- src_p += len - 1;
- dest_p += len - 1;
- for (byte_c = 0; byte_c < len; byte_c++) {
- *dest_p-- = *src_p--;
- }
- } else {
- for (byte_c = 0; byte_c < len; byte_c++) {
- *dest_p++ = *src_p++;
- }
- }
-
- return dest;
-}
-#endif /* HAVE_MEMCPY == 0 */
-
-#if HAVE_MEMMOVE == 0
-/*
- * Copy LEN characters from SRC to DEST
- */
-void *memmove(void *dest, const void *src, DMALLOC_SIZE len)
-{
- unsigned char *dest_p;
- const unsigned char *src_p;
- int byte_c;
-
- if (len <= 0) {
- return;
- }
-
- src_p = src;
- dest_p = dest;
-
- if (src_p <= dest_p && src_p + (len - 1) >= dest_p) {
- /* overlap, must copy right-to-left. */
- src_p += len - 1;
- dest_p += len - 1;
- for (byte_c = 0; byte_c < len; byte_c++) {
- *dest_p-- = *src_p--;
- }
- } else {
- for (byte_c = 0; byte_c < len; byte_c++) {
- *dest_p++ = *src_p++;
- }
- }
-
- return dest;
-}
-#endif /* HAVE_MEMMOVE == 0 */
-
-#if HAVE_MEMSET == 0
-/*
- * Set LEN characters in STR to character CH
- */
-void *memset(void *str, const int ch, DMALLOC_SIZE len)
-{
- unsigned char *str_p = str;
-
- for (; len > 0; len--, str_p++) {
- *(unsigned char *)str_p = (unsigned char)ch;
- }
-
- return str;
-}
-#endif /* HAVE_MEMSET == 0 */
-
-#if HAVE_STRCHR == 0
-/*
- * Find CH in STR by searching backwards through the string
- */
-char *strchr(const char *str, const int ch)
-{
- const char *str_p;
-
- for (str_p = str; *str_p != '\0'; str_p++) {
- if (*str_p == (char)ch) {
- return (char *)str_p;
- }
- }
-
- if (ch == '\0') {
- return (char *)str_p;
- }
- else {
- return NULL;
- }
-}
-#endif /* HAVE_STRCHR == 0 */
-
-#if HAVE_STRCMP == 0
-/*
- * Returns -1,0,1 on whether STR1 is <,==,> STR2
- */
-int strcmp(const char *str1, const char *str2)
-{
- for (; *str1 != '\0' && *str1 == *str2; str1++, str2++) {
- }
- return *str1 - *str2;
-}
-#endif /* HAVE_STRCMP == 0 */
-
-#if HAVE_STRCPY == 0
-/*
- * Copies STR2 to STR1. Returns STR1.
- */
-char *strcpy(char *str1, const char *str2)
-{
- char *str_p;
-
- for (str_p = str1; *str2 != '\0'; str_p++, str2++) {
- *str_p = *str2;
- }
- *str_p = '\0';
-
- return str1;
-}
-#endif /* HAVE_STRCPY == 0 */
-
-#if HAVE_STRLEN == 0
-/*
- * Return the length in characters of STR
- */
-int strlen(const char *str)
-{
- int len;
-
- for (len = 0; *str != '\0'; str++, len++) {
- }
-
- return len;
-}
-#endif /* HAVE_STRLEN == 0 */
-
-#if HAVE_STRNCMP == 0
-/*
- * Compare at most LEN chars in STR1 and STR2 and return -1,0,1 or
- * STR1 - STR2
- */
-int strncmp(const char *str1, const char *str2, const int len)
-{
- int len_c;
-
- for (len_c = 0; len_c < len; len_c++, str1++, str2++) {
- if (*str1 != *str2 || *str1 == '\0') {
- return *str1 - *str2;
- }
- }
-
- return 0;
-}
-#endif /* HAVE_STRNCMP == 0 */
-
-#if HAVE_STRNCPY == 0
-/*
- * Copy STR2 to STR1 until LEN or null
- */
-char *strncpy(char *str1, const char *str2, const int len)
-{
- char *str1_p, null_reached_b = 0;
- int len_c;
-
- for (len_c = 0, str1_p = str1; len_c < len; len_c++, str1_p++, str2++) {
- if (null_reached || *str2 == '\0') {
- null_reached = 1;
- *str1_p = '\0';
- }
- else {
- *str1_p = *str2;
- }
- }
-
- return str1;
-}
-#endif /* HAVE_STRNCPY == 0 */
-
-#if HAVE_STRRCHR == 0
-/*
- * Find CH in STR by searching backwards through the string
- */
-char *strrchr(const char *str, const int ch)
-{
- const char *str_p, *pnt = NULL;
-
- for (str_p = str; *str_p != '\0'; str_p++) {
- if (*str_p == (char)ch) {
- pnt = str_p;
- }
- }
-
- if (ch == '\0') {
- return (char *)str_p;
- }
- else {
- return (char *)pnt_p;
- }
-}
-#endif /* HAVE_STRRCHR == 0 */
-
-#if HAVE_STRSEP == 0
-/*
- * char *strsep
- *
- * DESCRIPTION:
- *
- * This is a function which should be in libc in every Unix. Grumble.
- * It basically replaces the strtok function because it is reentrant.
- * This tokenizes a string by returning the next token in a string and
- * punching a \0 on the first delimiter character past the token. The
- * difference from strtok is that you pass in the address of a string
- * pointer which will be shifted allong the buffer being processed.
- * With strtok you passed in a 0L for subsequant calls. Yeach.
- *
- * This will count the true number of delimiter characters in the string
- * and will return an empty token (one with \0 in the zeroth position)
- * if there are two delimiter characters in a row.
- *
- * Consider the following example:
- *
- * char *tok, *str_p = "1,2,3, hello there ";
- *
- * while (1) { tok = strsep(&str_p, " ,"); if (tok == 0L) { break; } }
- *
- * strsep will return as tokens: "1", "2", "3", "", "hello", "there", "".
- * Notice the two empty "" tokens where there were two delimiter
- * characters in a row ", " and at the end of the string where there
- * was an extra delimiter character. If you want to ignore these
- * tokens then add a test to see if the first character of the token
- * is \0.
- *
- * RETURNS:
- *
- * Success - Pointer to the next delimited token in the string.
- *
- * Failure - 0L if there are no more tokens.
- *
- * ARGUMENTS:
- *
- * string_p - Pointer to a string pointer which will be searched for
- * delimiters. \0's will be added to this buffer.
- *
- * delim - List of delimiter characters which separate our tokens. It
- * does not have to remain constant through all calls across the same
- * string.
- */
-char *strsep(char **string_p, const char *delim)
-{
- char *str_p, *tok;
- const char *delim_p;
-
- /* no tokens left? */
- str_p = *string_p;
- if (str_p == 0L) {
- return 0L;
- }
-
- /* now find end of token */
- tok = str_p;
- for (; *str_p != '\0'; str_p++) {
-
- for (delim_p = delim; *delim_p != '\0'; delim_p++) {
- if (*delim_p == *str_p) {
- /* punch the '\0' */
- *str_p = '\0';
- *string_p = str_p + 1;
- return tok;
- }
- }
- }
-
- /* there are no more delimiter characters */
- *string_p = 0L;
- return tok;
-}
-#endif /* HAVE_STRSEP == 0 */
diff --git a/dmalloc-5.5.2/.svn/text-base/compat.h.svn-base b/dmalloc-5.5.2/.svn/text-base/compat.h.svn-base
deleted file mode 100644
index 8699b5b..0000000
--- a/dmalloc-5.5.2/.svn/text-base/compat.h.svn-base
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * Header file for compatibility functions.
- *
- * Copyright 2000 by Gray Watson
- *
- * This file is part of the dmalloc package.
- *
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the
- * above copyright notice and this permission notice appear in all
- * copies, and that the name of Gray Watson not be used in advertising
- * or publicity pertaining to distribution of the document or software
- * without specific, written prior permission.
- *
- * Gray Watson makes no representations about the suitability of the
- * software described herein for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * The author may be contacted via http://dmalloc.com/
- *
- * $Id: compat.h,v 1.42 2007/05/14 15:53:11 gray Exp $
- */
-
-#ifndef __COMPAT_H__
-#define __COMPAT_H__
-
-#if HAVE_STDARG_H
-# include /* for ... */
-#endif
-
-#include "conf.h" /* for HAVE... */
-
-/*<<<<<<<<<< The below prototypes are auto-generated by fillproto */
-
-#if HAVE_ATOI == 0
-/*
- * Turn a ascii-string into an integer which is returned
- */
-extern
-int atoi(const char *str);
-#endif /* if HAVE_ATOI == 0 */
-
-#if HAVE_ATOL == 0
-/*
- * Turn a ascii-string into an integer which is returned
- */
-extern
-long atol(const char *str);
-#endif /* if HAVE_ATOL == 0 */
-
-/*
- * Local ascii to unsigned long function
- */
-extern
-unsigned long loc_atoul(const char *str);
-
-/*
- * Local vsnprintf which handles the buffer-size or not. Returns the
- * number of characters copied into BUF.
- */
-extern
-int loc_vsnprintf(char *buf, const int buf_size, const char *format,
- va_list args);
-
-/*
- * Local snprintf which handles the buf-size not. Returns the number
- * of characters copied into BUF.
- */
-extern
-int loc_snprintf(char *buf, const int buf_size, const char *format, ...);
-
-#if HAVE_MEMCMP == 0
-/*
- * Compare LEN characters, return -1,0,1 if STR1 is <,==,> STR2
- */
-extern
-int memcmp(const void *str1, const void *str2, DMALLOC_SIZE len);
-#endif /* if HAVE_MEMCMP == 0 */
-
-#if HAVE_MEMCPY == 0
-/*
- * Copy LEN characters from SRC to DEST
- */
-extern
-void *memcpy(void *dest, const void *src, DMALLOC_SIZE len);
-#endif /* if HAVE_MEMCPY == 0 */
-
-#if HAVE_MEMMOVE == 0
-/*
- * Copy LEN characters from SRC to DEST
- */
-extern
-void *memmove(void *dest, const void *src, DMALLOC_SIZE len);
-#endif /* if HAVE_MEMMOVE == 0 */
-
-#if HAVE_MEMSET == 0
-/*
- * Set LEN characters in STR to character CH
- */
-extern
-void *memset(void *str, const int ch, DMALLOC_SIZE len);
-#endif /* if HAVE_MEMSET == 0 */
-
-#if HAVE_STRCHR == 0
-/*
- * Find CH in STR by searching backwards through the string
- */
-extern
-char *strchr(const char *str, const int ch);
-#endif /* if HAVE_STRCHR == 0 */
-
-#if HAVE_STRCMP == 0
-/*
- * Returns -1,0,1 on whether STR1 is <,==,> STR2
- */
-extern
-int strcmp(const char *str1, const char *str2);
-#endif /* if HAVE_STRCMP == 0 */
-
-#if HAVE_STRCPY == 0
-/*
- * Copies STR2 to STR1. Returns STR1.
- */
-extern
-char *strcpy(char *str1, const char *str2);
-#endif /* if HAVE_STRCPY == 0 */
-
-#if HAVE_STRLEN == 0
-/*
- * Return the length in characters of STR
- */
-extern
-int strlen(const char *str);
-#endif /* if HAVE_STRLEN == 0 */
-
-#if HAVE_STRNCMP == 0
-/*
- * Compare at most LEN chars in STR1 and STR2 and return -1,0,1 or
- * STR1 - STR2
- */
-extern
-int strncmp(const char *str1, const char *str2, const int len);
-#endif /* if HAVE_STRNCMP == 0 */
-
-#if HAVE_STRNCPY == 0
-/*
- * Copy STR2 to STR1 until LEN or null
- */
-extern
-char *strncpy(char *str1, const char *str2, const int len);
-#endif /* if HAVE_STRNCPY == 0 */
-
-#if HAVE_STRRCHR == 0
-/*
- * Find CH in STR by searching backwards through the string
- */
-extern
-char *strrchr(const char *str, const int ch);
-#endif /* if HAVE_STRRCHR == 0 */
-
-#if HAVE_STRSEP == 0
-/*
- * char *strsep
- *
- * DESCRIPTION:
- *
- * This is a function which should be in libc in every Unix. Grumble.
- * It basically replaces the strtok function because it is reentrant.
- * This tokenizes a string by returning the next token in a string and
- * punching a \0 on the first delimiter character past the token. The
- * difference from strtok is that you pass in the address of a string
- * pointer which will be shifted allong the buffer being processed.
- * With strtok you passed in a 0L for subsequant calls. Yeach.
- *
- * This will count the true number of delimiter characters in the string
- * and will return an empty token (one with \0 in the zeroth position)
- * if there are two delimiter characters in a row.
- *
- * Consider the following example:
- *
- * char *tok, *str_p = "1,2,3, hello there ";
- *
- * while (1) { tok = strsep(&str_p, " ,"); if (tok == 0L) { break; } }
- *
- * strsep will return as tokens: "1", "2", "3", "", "hello", "there", "".
- * Notice the two empty "" tokens where there were two delimiter
- * characters in a row ", " and at the end of the string where there
- * was an extra delimiter character. If you want to ignore these
- * tokens then add a test to see if the first character of the token
- * is \0.
- *
- * RETURNS:
- *
- * Success - Pointer to the next delimited token in the string.
- *
- * Failure - 0L if there are no more tokens.
- *
- * ARGUMENTS:
- *
- * string_p - Pointer to a string pointer which will be searched for
- * delimiters. \0's will be added to this buffer.
- *
- * delim - List of delimiter characters which separate our tokens. It
- * does not have to remain constant through all calls across the same
- * string.
- */
-extern
-char *strsep(char **string_p, const char *delim);
-#endif /* if HAVE_STRSEP == 0 */
-
-/*<<<<<<<<<< This is end of the auto-generated output from fillproto. */
-
-#endif /* ! __COMPAT_H__ */
diff --git a/dmalloc-5.5.2/.svn/text-base/conf.h.in.svn-base b/dmalloc-5.5.2/.svn/text-base/conf.h.in.svn-base
deleted file mode 100644
index 3245483..0000000
--- a/dmalloc-5.5.2/.svn/text-base/conf.h.in.svn-base
+++ /dev/null
@@ -1,273 +0,0 @@
-/*
- * Automatic configuration flags
- *
- * Copyright 2000 by Gray Watson
- *
- * This file is part of the dmalloc package.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose and without fee is hereby granted, provided
- * that the above copyright notice and this permission notice appear
- * in all copies, and that the name of Gray Watson not be used in
- * advertising or publicity pertaining to distribution of the document
- * or software without specific, written prior permission.
- *
- * Gray Watson makes no representations about the suitability of the
- * software described herein for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * The author may be contacted via http://dmalloc.com/
- *
- * $Id: conf.h.in,v 1.99 2005/12/21 13:40:27 gray Exp $
- */
-
-#ifndef __CONF_H__
-#define __CONF_H__
-
-/* please see settings.h for manual configuration options */
-
-/*
- * NOTE: The following settings should not need to be tuned by hand.
- */
-
-/*
- * Set to 1 if the mprotect function was found and the PROT_NONE,
- * PROT_READ, and PROT_WRITE defines were found in sys/mman.h. This
- * is so that we can restrict access to certain blocks of memory.
- */
-#define PROTECT_ALLOWED 0
-
-/*
- * (char *)sbrk(const int incr) is the main heap-memory allocation
- * routine that most systems employ. This extends the program's data
- * space by INCR number of bytes.
- *
- * NOTE: If configure generates a 0 for this and HAVE_MMAP on your
- * system, you should see the INTERNAL_MEMORY_SPACE setting in the
- * settings.h file which is created from the settings.dist file.
- */
-#define HAVE_SBRK 0
-
-/*
- * (void *)mmap(...) is another heap-memory allocation routine that
- * systems employ. On newer systems it is often preferable over sbrk.
- * It allocates a block of memory in the virtual-memory system. The
- * USE_MMAP define is set if the standard mmap call works.
- *
- * NOTE: If configure generates a 0 for this and HAVE_SBRK on your
- * system, you should see the INTERNAL_MEMORY_SPACE setting in the
- * settings.h file which is created from the settings.dist file.
- */
-#define HAVE_MMAP 0
-#define USE_MMAP 0
-
-/*
- * This is the basic block size in bits. If possible, the configure
- * script will set this to be the value returned by the getpagesize()
- * function. If not then some sort of best guess will be necessary.
- * 15 (meaning basic block size of 32k) will probably be good.
- *
- * NOTE: some sbrk functions round to the correct page-size. No
- * problems aside from a possible small increase in the administration
- * overhead should happen if this value is too high.
- */
-#define BASIC_BLOCK 15
-
-/*
- * The alignment value of all allocations in number of bytes for
- * loading admin information before an allocation. If possible, the
- * configure script will set this to be the value returned by
- * sizeof(long) which in most systems is the register width.
- *
- * NOTE: the value will never be auto-configured to be less than 8
- * because some system (like sparc for instance) report the sizeof(long)
- * == 4 while the register size is 8 bytes. Certain memory needs to be of
- * the same base as the register size (stack frames, code, etc.). Any
- * ideas how I can determine the register size in a better (and portable)
- * fashion?
- *
- * NOTE: larger the number the more memory may be wasted by certain
- * debugging settings like fence-post checking.
- */
-#define ALLOCATION_ALIGNMENT 8
-
-/*
- * This checks to see if the abort routine does extensive cleaning up
- * before halting a program. If so then it may call malloc functions
- * making the library go recursive. If abort is set to not okay then
- * you should tune the KILL_PROCESS and SIGNAL_INCLUDE options in
- * settings.h if you want the library to be able to dump core.
- */
-#define ABORT_OKAY 0
-
-/*
- * This checks to see if we can include signal.h and get SIGHUP,
- * SIGINT, and SIGTERM for the catch-signals token. With this token,
- * you can have the library do an automatic shutdown if we see the
- * above signals.
- */
-#define SIGNAL_OKAY 0
-#define RETSIGTYPE void
-
-/*
- * This checks to see if we can include return.h and use the assembly
- * macros there to call the callers address for logging. If you do
- * not want this behavior, then set the USE_RETURN_MACROS to 0 in the
- * settings.h file.
- */
-#define RETURN_MACROS_WORK 0
-
-/*
- * Why can't the compiler folks agree about this. I really hate Unix
- * sometimes for its blatant disregard for anything approaching a
- * standard.
- */
-#define IDENT_WORKS 0
-
-/*
- * Which pthread include file to use.
- */
-#define HAVE_PTHREAD_H 0
-#define HAVE_PTHREADS_H 0
-
-/*
- * What pthread functions do we have?
- */
-#define HAVE_PTHREAD_MUTEX_INIT 0
-#define HAVE_PTHREAD_MUTEX_LOCK 0
-#define HAVE_PTHREAD_MUTEX_UNLOCK 0
-
-/*
- * What is the pthread mutex type? Usually (always?) it is
- * pthread_mutex_t.
- */
-#define THREAD_MUTEX_T pthread_mutex_t
-
-/*
- * On some systems, you initialize mutex variables with NULL. Others
- * require various stupid non-portable incantations. The OSF 3.2 guys
- * should be ashamed of themselves. This only is used if the
- * LOCK_THREADS setting is enabled in the settings.h.
- */
-#define THREAD_LOCK_INIT_VAL 0L
-
-/*
- * Under the Cygwin environment, when malloc calls getenv, it core
- * dumps. This is because Cygwin, as far as I know, is loading the
- * shared libraries for the various system functions and goes
- * recursive with a call to getenv. Ugh.
- *
- * So we have to delay the getenv call. This sets when we can do the
- * getenv call so the environmental processing is delayed.
- */
-#define GETENV_SAFE 0
-
-/*
- * See whether support exists for the constructor attribute which
- * allows the library to run code before main() is called. I know
- * that later versions of gcc have support for this and maybe other
- * compilers do as well.
- */
-#define CONSTRUCTOR_WORKS 0
-
-/*
- * See whether support exists for the destructor attribute which
- * allows the library to run code after main() is exited. I know
- * that later versions of gcc have support for this and maybe other
- * compilers do as well.
- */
-#define DESTRUCTOR_WORKS 0
-
-/*
- * See if we have the GetEnvironmentVariableA Cygwin function. This
- * is used as a getenv replacement.
- */
-#define HAVE_GETENVIRONMENTVARIABLEA 0
-
-/*
- * LIBRARY DEFINES:
- */
-
-/*
- * Whether the compiler and OS has standard C headers.
- */
-#undef STDC_HEADERS
-
-/*
- * Some systems have functions which can register routines to be
- * called by exit(3) (or when the program returns from main). This
- * functionality allows the dmalloc_shutdown() routine to be called
- * automatically upon program completion so that the library can log
- * statistics. Use the AUTO_SHUTDOWN define above to disable this.
- * Please send me mail if this functionality exists on your system but
- * in another name.
- *
- * NOTE: If neither is available, take a look at atexit.c in the
- * contrib directory which may provide this useful functionality for
- * your system.
- */
-#define HAVE_ATEXIT 0
-#define HAVE_ON_EXIT 0
-
-/* Is the DMALLOC_SIZE type unsigned? */
-#define DMALLOC_SIZE_UNSIGNED 0
-
-/*
- * The dmalloc library provides its own versions of the following
- * functions, or knows how to work around their absence.
- */
-/* bells and whistles */
-#define HAVE_FORK 0
-#define HAVE_GETHOSTNAME 0
-#define HAVE_GETPID 0
-#define HAVE_GETUID 0
-#define HAVE_TIME 0
-#define HAVE_CTIME 0
-
-#define HAVE_VPRINTF 0
-#define HAVE_SNPRINTF 0
-#define HAVE_VSNPRINTF 0
-
-#define HAVE_RECALLOC 0
-#define HAVE_MEMALIGN 0
-#define HAVE_VALLOC 0
-
-/* various functions for arg checking and/or internal use */
-
-#define HAVE_ATOI 0
-#define HAVE_ATOL 0
-#define HAVE_BCMP 0
-#define HAVE_BCOPY 0
-#define HAVE_BZERO 0
-#define HAVE_INDEX 0
-#define HAVE_MEMCCPY 0
-#define HAVE_MEMCHR 0
-#define HAVE_MEMCMP 0
-#define HAVE_MEMCPY 0
-#define HAVE_MEMMOVE 0
-#define HAVE_MEMSET 0
-#define HAVE_RINDEX 0
-#define HAVE_STRCASECMP 0
-#define HAVE_STRCAT 0
-#define HAVE_STRCHR 0
-#define HAVE_STRCMP 0
-#define HAVE_STRCPY 0
-#define HAVE_STRCSPN 0
-#define HAVE_STRDUP 0
-#define HAVE_STRLEN 0
-#define HAVE_STRNCASECMP 0
-#define HAVE_STRNCAT 0
-#define HAVE_STRNCMP 0
-#define HAVE_STRNCPY 0
-#define HAVE_STRNDUP 0
-#define HAVE_STRPBRK 0
-#define HAVE_STRRCHR 0
-#define HAVE_STRSEP 0
-#define HAVE_STRSPN 0
-#define HAVE_STRSTR 0
-#define HAVE_STRTOK 0
-
-/* manual settings */
-#include "settings.h"
-
-#endif /* ! __CONF_H__ */
diff --git a/dmalloc-5.5.2/.svn/text-base/conf.h.svn-base b/dmalloc-5.5.2/.svn/text-base/conf.h.svn-base
deleted file mode 100644
index eee2926..0000000
--- a/dmalloc-5.5.2/.svn/text-base/conf.h.svn-base
+++ /dev/null
@@ -1,274 +0,0 @@
-/* conf.h. Generated by configure. */
-/*
- * Automatic configuration flags
- *
- * Copyright 2000 by Gray Watson
- *
- * This file is part of the dmalloc package.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose and without fee is hereby granted, provided
- * that the above copyright notice and this permission notice appear
- * in all copies, and that the name of Gray Watson not be used in
- * advertising or publicity pertaining to distribution of the document
- * or software without specific, written prior permission.
- *
- * Gray Watson makes no representations about the suitability of the
- * software described herein for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * The author may be contacted via http://dmalloc.com/
- *
- * $Id: conf.h.in,v 1.99 2005/12/21 13:40:27 gray Exp $
- */
-
-#ifndef __CONF_H__
-#define __CONF_H__
-
-/* please see settings.h for manual configuration options */
-
-/*
- * NOTE: The following settings should not need to be tuned by hand.
- */
-
-/*
- * Set to 1 if the mprotect function was found and the PROT_NONE,
- * PROT_READ, and PROT_WRITE defines were found in sys/mman.h. This
- * is so that we can restrict access to certain blocks of memory.
- */
-#define PROTECT_ALLOWED 1
-
-/*
- * (char *)sbrk(const int incr) is the main heap-memory allocation
- * routine that most systems employ. This extends the program's data
- * space by INCR number of bytes.
- *
- * NOTE: If configure generates a 0 for this and HAVE_MMAP on your
- * system, you should see the INTERNAL_MEMORY_SPACE setting in the
- * settings.h file which is created from the settings.dist file.
- */
-#define HAVE_SBRK 1
-
-/*
- * (void *)mmap(...) is another heap-memory allocation routine that
- * systems employ. On newer systems it is often preferable over sbrk.
- * It allocates a block of memory in the virtual-memory system. The
- * USE_MMAP define is set if the standard mmap call works.
- *
- * NOTE: If configure generates a 0 for this and HAVE_SBRK on your
- * system, you should see the INTERNAL_MEMORY_SPACE setting in the
- * settings.h file which is created from the settings.dist file.
- */
-#define HAVE_MMAP 1
-#define USE_MMAP 1
-
-/*
- * This is the basic block size in bits. If possible, the configure
- * script will set this to be the value returned by the getpagesize()
- * function. If not then some sort of best guess will be necessary.
- * 15 (meaning basic block size of 32k) will probably be good.
- *
- * NOTE: some sbrk functions round to the correct page-size. No
- * problems aside from a possible small increase in the administration
- * overhead should happen if this value is too high.
- */
-#define BASIC_BLOCK 12
-
-/*
- * The alignment value of all allocations in number of bytes for
- * loading admin information before an allocation. If possible, the
- * configure script will set this to be the value returned by
- * sizeof(long) which in most systems is the register width.
- *
- * NOTE: the value will never be auto-configured to be less than 8
- * because some system (like sparc for instance) report the sizeof(long)
- * == 4 while the register size is 8 bytes. Certain memory needs to be of
- * the same base as the register size (stack frames, code, etc.). Any
- * ideas how I can determine the register size in a better (and portable)
- * fashion?
- *
- * NOTE: larger the number the more memory may be wasted by certain
- * debugging settings like fence-post checking.
- */
-#define ALLOCATION_ALIGNMENT 8
-
-/*
- * This checks to see if the abort routine does extensive cleaning up
- * before halting a program. If so then it may call malloc functions
- * making the library go recursive. If abort is set to not okay then
- * you should tune the KILL_PROCESS and SIGNAL_INCLUDE options in
- * settings.h if you want the library to be able to dump core.
- */
-#define ABORT_OKAY 1
-
-/*
- * This checks to see if we can include signal.h and get SIGHUP,
- * SIGINT, and SIGTERM for the catch-signals token. With this token,
- * you can have the library do an automatic shutdown if we see the
- * above signals.
- */
-#define SIGNAL_OKAY 1
-#define RETSIGTYPE void
-
-/*
- * This checks to see if we can include return.h and use the assembly
- * macros there to call the callers address for logging. If you do
- * not want this behavior, then set the USE_RETURN_MACROS to 0 in the
- * settings.h file.
- */
-#define RETURN_MACROS_WORK 1
-
-/*
- * Why can't the compiler folks agree about this. I really hate Unix
- * sometimes for its blatant disregard for anything approaching a
- * standard.
- */
-#define IDENT_WORKS 1
-
-/*
- * Which pthread include file to use.
- */
-#define HAVE_PTHREAD_H 1
-#define HAVE_PTHREADS_H 0
-
-/*
- * What pthread functions do we have?
- */
-#define HAVE_PTHREAD_MUTEX_INIT 1
-#define HAVE_PTHREAD_MUTEX_LOCK 1
-#define HAVE_PTHREAD_MUTEX_UNLOCK 1
-
-/*
- * What is the pthread mutex type? Usually (always?) it is
- * pthread_mutex_t.
- */
-#define THREAD_MUTEX_T pthread_mutex_t
-
-/*
- * On some systems, you initialize mutex variables with NULL. Others
- * require various stupid non-portable incantations. The OSF 3.2 guys
- * should be ashamed of themselves. This only is used if the
- * LOCK_THREADS setting is enabled in the settings.h.
- */
-#define THREAD_LOCK_INIT_VAL 0
-
-/*
- * Under the Cygwin environment, when malloc calls getenv, it core
- * dumps. This is because Cygwin, as far as I know, is loading the
- * shared libraries for the various system functions and goes
- * recursive with a call to getenv. Ugh.
- *
- * So we have to delay the getenv call. This sets when we can do the
- * getenv call so the environmental processing is delayed.
- */
-#define GETENV_SAFE 1
-
-/*
- * See whether support exists for the constructor attribute which
- * allows the library to run code before main() is called. I know
- * that later versions of gcc have support for this and maybe other
- * compilers do as well.
- */
-#define CONSTRUCTOR_WORKS 1
-
-/*
- * See whether support exists for the destructor attribute which
- * allows the library to run code after main() is exited. I know
- * that later versions of gcc have support for this and maybe other
- * compilers do as well.
- */
-#define DESTRUCTOR_WORKS 1
-
-/*
- * See if we have the GetEnvironmentVariableA Cygwin function. This
- * is used as a getenv replacement.
- */
-#define HAVE_GETENVIRONMENTVARIABLEA 0
-
-/*
- * LIBRARY DEFINES:
- */
-
-/*
- * Whether the compiler and OS has standard C headers.
- */
-#define STDC_HEADERS 1
-
-/*
- * Some systems have functions which can register routines to be
- * called by exit(3) (or when the program returns from main). This
- * functionality allows the dmalloc_shutdown() routine to be called
- * automatically upon program completion so that the library can log
- * statistics. Use the AUTO_SHUTDOWN define above to disable this.
- * Please send me mail if this functionality exists on your system but
- * in another name.
- *
- * NOTE: If neither is available, take a look at atexit.c in the
- * contrib directory which may provide this useful functionality for
- * your system.
- */
-#define HAVE_ATEXIT 1
-#define HAVE_ON_EXIT 0
-
-/* Is the DMALLOC_SIZE type unsigned? */
-#define DMALLOC_SIZE_UNSIGNED 1
-
-/*
- * The dmalloc library provides its own versions of the following
- * functions, or knows how to work around their absence.
- */
-/* bells and whistles */
-#define HAVE_FORK 1
-#define HAVE_GETHOSTNAME 1
-#define HAVE_GETPID 1
-#define HAVE_GETUID 1
-#define HAVE_TIME 1
-#define HAVE_CTIME 1
-
-#define HAVE_VPRINTF 1
-#define HAVE_SNPRINTF 1
-#define HAVE_VSNPRINTF 1
-
-#define HAVE_RECALLOC 0
-#define HAVE_MEMALIGN 0
-#define HAVE_VALLOC 1
-
-/* various functions for arg checking and/or internal use */
-
-#define HAVE_ATOI 1
-#define HAVE_ATOL 1
-#define HAVE_BCMP 1
-#define HAVE_BCOPY 1
-#define HAVE_BZERO 1
-#define HAVE_INDEX 1
-#define HAVE_MEMCCPY 1
-#define HAVE_MEMCHR 1
-#define HAVE_MEMCMP 1
-#define HAVE_MEMCPY 1
-#define HAVE_MEMMOVE 1
-#define HAVE_MEMSET 1
-#define HAVE_RINDEX 1
-#define HAVE_STRCASECMP 1
-#define HAVE_STRCAT 1
-#define HAVE_STRCHR 1
-#define HAVE_STRCMP 1
-#define HAVE_STRCPY 1
-#define HAVE_STRCSPN 1
-#define HAVE_STRDUP 0
-#define HAVE_STRLEN 1
-#define HAVE_STRNCASECMP 1
-#define HAVE_STRNCAT 1
-#define HAVE_STRNCMP 1
-#define HAVE_STRNCPY 1
-#define HAVE_STRNDUP 0
-#define HAVE_STRPBRK 1
-#define HAVE_STRRCHR 1
-#define HAVE_STRSEP 1
-#define HAVE_STRSPN 1
-#define HAVE_STRSTR 1
-#define HAVE_STRTOK 1
-
-/* manual settings */
-#include "settings.h"
-
-#endif /* ! __CONF_H__ */
diff --git a/dmalloc-5.5.2/.svn/text-base/config.help.svn-base b/dmalloc-5.5.2/.svn/text-base/config.help.svn-base
deleted file mode 100644
index 1b15d61..0000000
--- a/dmalloc-5.5.2/.svn/text-base/config.help.svn-base
+++ /dev/null
@@ -1,81 +0,0 @@
-This file provides more information about the "configure" script
-and how you can personalize it for your local environment.
-
-The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation, and
-creates the Makefile. It also creates a file `config.status'
-that you can run in the future to recreate the current configuration.
-
-Running `configure' takes a minute or two. While it is running, it
-prints some messages that tell what it is doing. If you don't want to
-see the messages, run `configure' with its standard output redirected
-to `/dev/null'; for example, `./configure >/dev/null'.
-
-To compile the package in a different directory from the one
-containing the source code, you must use a version of make that
-supports the VPATH variable, such as GNU make. `cd' to the directory
-where you want the object files and executables to go and run
-`configure'. `configure' automatically checks for the source code in
-the directory that `configure' is in and in `..'. If for some reason
-`configure' is not in the source code directory that you are
-configuring, then it will report that it can't find the source code.
-In that case, run `configure' with the option `--srcdir=DIR', where
-DIR is the directory that contains the source code.
-
-By default, `make install' will install the package's files in
-/usr/local/bin, /usr/local/lib, /usr/local/man, etc. You can specify
-an installation prefix other than /usr/local by giving `configure' the
-option `--prefix=PATH'. Alternately, you can do so by giving a value
-for the `prefix' variable when you run `make', e.g.,
- make prefix=/usr/gnu
-
-You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files. If
-you give `configure' the option `--exec_prefix=PATH' or set the
-`make' variable `exec_prefix' to PATH, the package will use PATH as
-the prefix for installing programs and libraries. Data files and
-documentation will still use the regular prefix. Normally, all files
-are installed using the regular prefix.
-
-You can tell `configure' to figure out the configuration for your
-system, and record it in `config.status', without actually configuring
-the package (creating `Makefile's and perhaps a configuration header
-file). To do this, give `configure' the `--no-create' option. Later,
-you can run `./config.status' to actually configure the package. This
-option is useful mainly in `Makefile' rules for updating `config.status'
-and `Makefile'. You can also give `config.status' the `--recheck'
-option, which makes it re-run `configure' with the same arguments you
-used before. This is useful if you change `configure'.
-
-`configure' ignores any other arguments that you give it.
-
-If your system requires unusual options for compilation or linking
-that `configure' doesn't know about, you can give `configure' initial
-values for some variables by setting them in the environment. In
-Bourne-compatible shells, you can do that on the command line like
-this:
- CC='gcc -traditional' DEFS=-D_POSIX_SOURCE ./configure
-
-The `make' variables that you might want to override with environment
-variables when running `configure' are:
-
-(For these variables, any value given in the environment overrides the
-value that `configure' would choose:)
-CC C compiler program.
- Default is `cc', or `gcc' if `gcc' is in your PATH.
-INSTALL Program to use to install files.
- Default is `install' if you have it, `cp' otherwise.
-
-(For these variables, any value given in the environment is added to
-the value that `configure' chooses:)
-DEFS Configuration options, in the form `-Dfoo -Dbar ...'
-LIBS Libraries to link with, in the form `-lfoo -lbar ...'
-
-If you need to do unusual things to compile the package, we encourage
-you to figure out how `configure' could check whether to do them, and
-mail diffs or instructions to the address given in the README so we
-can include them in the next release.
-
-The file `configure.in' is used as a template to create `configure' by
-a program called `autoconf'. You will only need it if you want to
-regenerate `configure' using a newer version of `autoconf'.
diff --git a/dmalloc-5.5.2/.svn/text-base/config.log.svn-base b/dmalloc-5.5.2/.svn/text-base/config.log.svn-base
deleted file mode 100644
index 2b03492..0000000
--- a/dmalloc-5.5.2/.svn/text-base/config.log.svn-base
+++ /dev/null
@@ -1,2684 +0,0 @@
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by dmalloc configure 5.5.2, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- $ ./configure
-
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = AtenMBP-2.local
-uname -m = i386
-uname -r = 10.3.0
-uname -s = Darwin
-uname -v = Darwin Kernel Version 10.3.0: Fri Feb 26 11:58:09 PST 2010; root:xnu-1504.3.12~1/RELEASE_I386
-
-/usr/bin/uname -p = i386
-/bin/uname -X = unknown
-
-/bin/arch = unknown
-/usr/bin/arch -k = unknown
-/usr/convex/getsysinfo = unknown
-hostinfo = Mach kernel version:
- Darwin Kernel Version 10.3.0: Fri Feb 26 11:58:09 PST 2010; root:xnu-1504.3.12~1/RELEASE_I386
-Kernel configured for up to 2 processors.
-2 processors are physically available.
-2 processors are logically available.
-Processor type: i486 (Intel 80486)
-Processors active: 0 1
-Primary memory available: 4.00 gigabytes
-Default processor set: 102 tasks, 405 threads, 2 processors
-Load average: 1.73, Mach factor: 0.80
-/bin/machine = unknown
-/usr/bin/oslevel = unknown
-/bin/universe = unknown
-
-PATH: /Users/jaten/pkg/rubinius/rubinius/bin
-PATH: /Users/jaten/pkg/llvm+lldb+ldc/ldc2/bin
-PATH: /home/jaten/pkg/tundra
-PATH: /home/jaten/pkg/nesl/nesl/bin
-PATH: /opt/godi/bin
-PATH: /Library/Frameworks/GHC.framework/Versions/Current/usr/bin
-PATH: /usr/local/bin
-PATH: /Users/jaten/.cabal/bin
-PATH: /usr/local/Gambit-C/v4.6.0/bin
-PATH: /opt/local/bin
-PATH: /opt/local/sbin
-PATH: /opt/local/bin
-PATH: /opt/local/sbin
-PATH: /opt/godi/bin
-PATH: /Users/jaten/android_sdk/tools
-PATH: /Users/jaten/bin
-PATH: /sw/bin
-PATH: /sw64/bin
-PATH: /usr/local/bin
-PATH: /opt/godi/bin
-PATH: /opt/godi/sbin
-PATH: /Users/jaten/src/rts/build-tools
-PATH: /Users/jaten/pkg/rubinius/rubinius/bin
-PATH: /Users/jaten/pkg/llvm+lldb+ldc/ldc2/bin
-PATH: /home/jaten/pkg/tundra
-PATH: /home/jaten/pkg/nesl/nesl/bin
-PATH: /opt/godi/bin
-PATH: /Library/Frameworks/GHC.framework/Versions/Current/usr/bin
-PATH: /usr/local/bin
-PATH: /Users/jaten/.cabal/bin
-PATH: /usr/local/Gambit-C/v4.6.0/bin
-PATH: /opt/local/bin
-PATH: /opt/local/sbin
-PATH: /opt/local/bin
-PATH: /opt/local/sbin
-PATH: /opt/godi/bin
-PATH: /Users/jaten/android_sdk/tools
-PATH: /Users/jaten/bin
-PATH: /sw/bin
-PATH: /sw64/bin
-PATH: /usr/local/bin
-PATH: /opt/godi/bin
-PATH: /opt/godi/sbin
-PATH: /Users/jaten/src/rts/build-tools
-PATH: /usr/bin
-PATH: /bin
-PATH: /usr/sbin
-PATH: /sbin
-PATH: /usr/local/bin
-PATH: /usr/local/git/bin
-PATH: /usr/X11/bin
-PATH: /Users/jaten/pkg/rubinius/rubinius/bin
-PATH: /Users/jaten/pkg/llvm+lldb+ldc/ldc2/bin
-PATH: /home/jaten/pkg/tundra
-PATH: /home/jaten/pkg/nesl/nesl/bin
-PATH: /opt/godi/bin
-PATH: /Library/Frameworks/GHC.framework/Versions/Current/usr/bin
-PATH: /Users/jaten/.cabal/bin
-PATH: /usr/local/Gambit-C/v4.6.0/bin
-PATH: /opt/local/bin
-PATH: /opt/local/sbin
-PATH: /Users/jaten/android_sdk/tools
-PATH: /sw64/bin
-PATH: /sw64/sbin
-PATH: /Users/jaten/bin
-PATH: /sw/bin
-PATH: /opt/godi/sbin
-PATH: /Users/jaten/src/rts/build-tools
-PATH: /usr/X11R6/bin
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-configure:1324: configurations for the dmalloc library
-configure:1356: build utilities
-configure:1405: checking for gcc
-configure:1421: found /usr/bin/gcc
-configure:1431: result: gcc
-configure:1675: checking for C compiler version
-configure:1678: gcc --version &5
-i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5659)
-Copyright (C) 2007 Free Software Foundation, Inc.
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-configure:1681: $? = 0
-configure:1683: gcc -v &5
-Using built-in specs.
-Target: i686-apple-darwin10
-Configured with: /var/tmp/gcc/gcc-5659~1/src/configure --disable-checking --enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --target=i686-apple-darwin10 --with-gxx-include-dir=/include/c++/4.2.1
-Thread model: posix
-gcc version 4.2.1 (Apple Inc. build 5659)
-configure:1686: $? = 0
-configure:1688: gcc -V &5
-gcc-4.2: argument to `-V' is missing
-configure:1691: $? = 1
-configure:1714: checking for C compiler default output file name
-configure:1717: gcc conftest.c >&5
-configure:1720: $? = 0
-configure:1766: result: a.out
-configure:1771: checking whether the C compiler works
-configure:1777: ./a.out
-configure:1780: $? = 0
-configure:1797: result: yes
-configure:1804: checking whether we are cross compiling
-configure:1806: result: no
-configure:1809: checking for suffix of executables
-configure:1811: gcc -o conftest conftest.c >&5
-configure:1814: $? = 0
-configure:1839: result:
-configure:1845: checking for suffix of object files
-configure:1866: gcc -c conftest.c >&5
-configure:1869: $? = 0
-configure:1891: result: o
-configure:1895: checking whether we are using the GNU C compiler
-configure:1919: gcc -c conftest.c >&5
-configure:1925: $? = 0
-configure:1929: test -z
- || test ! -s conftest.err
-configure:1932: $? = 0
-configure:1935: test -s conftest.o
-configure:1938: $? = 0
-configure:1951: result: yes
-configure:1957: checking whether gcc accepts -g
-configure:1978: gcc -c -g conftest.c >&5
-configure:1984: $? = 0
-configure:1988: test -z
- || test ! -s conftest.err
-configure:1991: $? = 0
-configure:1994: test -s conftest.o
-configure:1997: $? = 0
-configure:2008: result: yes
-configure:2025: checking for gcc option to accept ANSI C
-configure:2095: gcc -c -g -O2 conftest.c >&5
-configure:2101: $? = 0
-configure:2105: test -z
- || test ! -s conftest.err
-configure:2108: $? = 0
-configure:2111: test -s conftest.o
-configure:2114: $? = 0
-configure:2132: result: none needed
-configure:2150: gcc -c -g -O2 conftest.c >&5
-conftest.c:2: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'me'
-configure:2156: $? = 1
-configure: failed program was:
-| #ifndef __cplusplus
-| choke me
-| #endif
-configure:2341: checking for g++
-configure:2357: found /usr/bin/g++
-configure:2367: result: g++
-configure:2383: checking for C++ compiler version
-configure:2386: g++ --version &5
-i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5659)
-Copyright (C) 2007 Free Software Foundation, Inc.
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-configure:2389: $? = 0
-configure:2391: g++ -v &5
-Using built-in specs.
-Target: i686-apple-darwin10
-Configured with: /var/tmp/gcc/gcc-5659~1/src/configure --disable-checking --enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --target=i686-apple-darwin10 --with-gxx-include-dir=/include/c++/4.2.1
-Thread model: posix
-gcc version 4.2.1 (Apple Inc. build 5659)
-configure:2394: $? = 0
-configure:2396: g++ -V &5
-g++-4.2: argument to `-V' is missing
-configure:2399: $? = 1
-configure:2402: checking whether we are using the GNU C++ compiler
-configure:2426: g++ -c conftest.cc >&5
-configure:2432: $? = 0
-configure:2436: test -z
- || test ! -s conftest.err
-configure:2439: $? = 0
-configure:2442: test -s conftest.o
-configure:2445: $? = 0
-configure:2458: result: yes
-configure:2464: checking whether g++ accepts -g
-configure:2485: g++ -c -g conftest.cc >&5
-configure:2491: $? = 0
-configure:2495: test -z
- || test ! -s conftest.err
-configure:2498: $? = 0
-configure:2501: test -s conftest.o
-configure:2504: $? = 0
-configure:2515: result: yes
-configure:2557: g++ -c -g -O2 conftest.cc >&5
-configure:2563: $? = 0
-configure:2567: test -z
- || test ! -s conftest.err
-configure:2570: $? = 0
-configure:2573: test -s conftest.o
-configure:2576: $? = 0
-configure:2602: g++ -c -g -O2 conftest.cc >&5
-conftest.cc: In function 'int main()':
-conftest.cc:13: error: 'exit' was not declared in this scope
-configure:2608: $? = 1
-configure: failed program was:
-| /* confdefs.h. */
-|
-| #define PACKAGE_NAME "dmalloc"
-| #define PACKAGE_TARNAME "dmalloc"
-| #define PACKAGE_VERSION "5.5.2"
-| #define PACKAGE_STRING "dmalloc 5.5.2"
-| #define PACKAGE_BUGREPORT "http://dmalloc.com/"
-| /* end confdefs.h. */
-|
-| int
-| main ()
-| {
-| exit (42);
-| ;
-| return 0;
-| }
-configure:2557: g++ -c -g -O2 conftest.cc >&5
-conftest.cc:9: error: 'void std::exit(int)' should have been declared inside 'std'
-In file included from conftest.cc:10:
-/usr/include/stdlib.h:159: error: declaration of 'void std::exit(int)' throws different exceptions
-conftest.cc:9: error: from previous declaration 'void std::exit(int) throw ()'
-configure:2563: $? = 1
-configure: failed program was:
-| /* confdefs.h. */
-|
-| #define PACKAGE_NAME "dmalloc"
-| #define PACKAGE_TARNAME "dmalloc"
-| #define PACKAGE_VERSION "5.5.2"
-| #define PACKAGE_STRING "dmalloc 5.5.2"
-| #define PACKAGE_BUGREPORT "http://dmalloc.com/"
-| /* end confdefs.h. */
-| extern "C" void std::exit (int) throw (); using std::exit;
-| #include
-| int
-| main ()
-| {
-| exit (42);
-| ;
-| return 0;
-| }
-configure:2557: g++ -c -g -O2 conftest.cc >&5
-conftest.cc:9: error: 'void std::exit(int)' should have been declared inside 'std'
-configure:2563: $? = 1
-configure: failed program was:
-| /* confdefs.h. */
-|
-| #define PACKAGE_NAME "dmalloc"
-| #define PACKAGE_TARNAME "dmalloc"
-| #define PACKAGE_VERSION "5.5.2"
-| #define PACKAGE_STRING "dmalloc 5.5.2"
-| #define PACKAGE_BUGREPORT "http://dmalloc.com/"
-| /* end confdefs.h. */
-| extern "C" void std::exit (int); using std::exit;
-| #include
-| int
-| main ()
-| {
-| exit (42);
-| ;
-| return 0;
-| }
-configure:2557: g++ -c -g -O2 conftest.cc >&5
-In file included from conftest.cc:10:
-/usr/include/stdlib.h:159: error: declaration of 'void exit(int)' throws different exceptions
-conftest.cc:9: error: from previous declaration 'void exit(int) throw ()'
-configure:2563: $? = 1
-configure: failed program was:
-| /* confdefs.h. */
-|
-| #define PACKAGE_NAME "dmalloc"
-| #define PACKAGE_TARNAME "dmalloc"
-| #define PACKAGE_VERSION "5.5.2"
-| #define PACKAGE_STRING "dmalloc 5.5.2"
-| #define PACKAGE_BUGREPORT "http://dmalloc.com/"
-| /* end confdefs.h. */
-| extern "C" void exit (int) throw ();
-| #include
-| int
-| main ()
-| {
-| exit (42);
-| ;
-| return 0;
-| }
-configure:2557: g++ -c -g -O2 conftest.cc >&5
-configure:2563: $? = 0
-configure:2567: test -z
- || test ! -s conftest.err
-configure:2570: $? = 0
-configure:2573: test -s conftest.o
-configure:2576: $? = 0
-configure:2602: g++ -c -g -O2 conftest.cc >&5
-configure:2608: $? = 0
-configure:2612: test -z
- || test ! -s conftest.err
-configure:2615: $? = 0
-configure:2618: test -s conftest.o
-configure:2621: $? = 0
-configure:2647: WARNING: could not find C++ compiler
-configure:2699: checking for a BSD-compatible install
-configure:2754: result: /opt/local/bin/ginstall -c
-configure:2806: checking for ranlib
-configure:2822: found /usr/bin/ranlib
-configure:2833: result: ranlib
-configure:2846: checking for an ANSI C-conforming const
-configure:2913: gcc -c -g -O2 conftest.c >&5
-configure:2919: $? = 0
-configure:2923: test -z
- || test ! -s conftest.err
-configure:2926: $? = 0
-configure:2929: test -s conftest.o
-configure:2932: $? = 0
-configure:2943: result: yes
-configure:2960: checking how to run the C preprocessor
-configure:2995: gcc -E conftest.c
-configure:3001: $? = 0
-configure:3033: gcc -E conftest.c
-conftest.c:12:28: error: ac_nonexistent.h: No such file or directory
-configure:3039: $? = 1
-configure: failed program was:
-| /* confdefs.h. */
-|
-| #define PACKAGE_NAME "dmalloc"
-| #define PACKAGE_TARNAME "dmalloc"
-| #define PACKAGE_VERSION "5.5.2"
-| #define PACKAGE_STRING "dmalloc 5.5.2"
-| #define PACKAGE_BUGREPORT "http://dmalloc.com/"
-| #ifdef __cplusplus
-| extern "C" void exit (int);
-| #endif
-| /* end confdefs.h. */
-| #include
-configure:3078: result: gcc -E
-configure:3102: gcc -E conftest.c
-configure:3108: $? = 0
-configure:3140: gcc -E conftest.c
-conftest.c:12:28: error: ac_nonexistent.h: No such file or directory
-configure:3146: $? = 1
-configure: failed program was:
-| /* confdefs.h. */
-|
-| #define PACKAGE_NAME "dmalloc"
-| #define PACKAGE_TARNAME "dmalloc"
-| #define PACKAGE_VERSION "5.5.2"
-| #define PACKAGE_STRING "dmalloc 5.5.2"
-| #define PACKAGE_BUGREPORT "http://dmalloc.com/"
-| #ifdef __cplusplus
-| extern "C" void exit (int);
-| #endif
-| /* end confdefs.h. */
-| #include
-configure:3190: checking for egrep
-configure:3200: result: grep -E
-configure:3205: checking for ANSI C header files
-configure:3230: gcc -c -g -O2 conftest.c >&5
-configure:3236: $? = 0
-configure:3240: test -z
- || test ! -s conftest.err
-configure:3243: $? = 0
-configure:3246: test -s conftest.o
-configure:3249: $? = 0
-configure:3338: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c: In function 'main':
-conftest.c:29: warning: incompatible implicit declaration of built-in function 'exit'
-configure:3341: $? = 0
-configure:3343: ./conftest
-configure:3346: $? = 0
-configure:3361: result: yes
-configure:3385: checking for sys/types.h
-configure:3401: gcc -c -g -O2 conftest.c >&5
-configure:3407: $? = 0
-configure:3411: test -z
- || test ! -s conftest.err
-configure:3414: $? = 0
-configure:3417: test -s conftest.o
-configure:3420: $? = 0
-configure:3431: result: yes
-configure:3385: checking for sys/stat.h
-configure:3401: gcc -c -g -O2 conftest.c >&5
-configure:3407: $? = 0
-configure:3411: test -z
- || test ! -s conftest.err
-configure:3414: $? = 0
-configure:3417: test -s conftest.o
-configure:3420: $? = 0
-configure:3431: result: yes
-configure:3385: checking for stdlib.h
-configure:3401: gcc -c -g -O2 conftest.c >&5
-configure:3407: $? = 0
-configure:3411: test -z
- || test ! -s conftest.err
-configure:3414: $? = 0
-configure:3417: test -s conftest.o
-configure:3420: $? = 0
-configure:3431: result: yes
-configure:3385: checking for string.h
-configure:3401: gcc -c -g -O2 conftest.c >&5
-configure:3407: $? = 0
-configure:3411: test -z
- || test ! -s conftest.err
-configure:3414: $? = 0
-configure:3417: test -s conftest.o
-configure:3420: $? = 0
-configure:3431: result: yes
-configure:3385: checking for memory.h
-configure:3401: gcc -c -g -O2 conftest.c >&5
-configure:3407: $? = 0
-configure:3411: test -z
- || test ! -s conftest.err
-configure:3414: $? = 0
-configure:3417: test -s conftest.o
-configure:3420: $? = 0
-configure:3431: result: yes
-configure:3385: checking for strings.h
-configure:3401: gcc -c -g -O2 conftest.c >&5
-configure:3407: $? = 0
-configure:3411: test -z
- || test ! -s conftest.err
-configure:3414: $? = 0
-configure:3417: test -s conftest.o
-configure:3420: $? = 0
-configure:3431: result: yes
-configure:3385: checking for inttypes.h
-configure:3401: gcc -c -g -O2 conftest.c >&5
-configure:3407: $? = 0
-configure:3411: test -z
- || test ! -s conftest.err
-configure:3414: $? = 0
-configure:3417: test -s conftest.o
-configure:3420: $? = 0
-configure:3431: result: yes
-configure:3385: checking for stdint.h
-configure:3401: gcc -c -g -O2 conftest.c >&5
-configure:3407: $? = 0
-configure:3411: test -z
- || test ! -s conftest.err
-configure:3414: $? = 0
-configure:3417: test -s conftest.o
-configure:3420: $? = 0
-configure:3431: result: yes
-configure:3385: checking for unistd.h
-configure:3401: gcc -c -g -O2 conftest.c >&5
-configure:3407: $? = 0
-configure:3411: test -z
- || test ! -s conftest.err
-configure:3414: $? = 0
-configure:3417: test -s conftest.o
-configure:3420: $? = 0
-configure:3431: result: yes
-configure:3453: checking stdarg.h usability
-configure:3465: gcc -c -g -O2 conftest.c >&5
-configure:3471: $? = 0
-configure:3475: test -z
- || test ! -s conftest.err
-configure:3478: $? = 0
-configure:3481: test -s conftest.o
-configure:3484: $? = 0
-configure:3494: result: yes
-configure:3498: checking stdarg.h presence
-configure:3508: gcc -E conftest.c
-configure:3514: $? = 0
-configure:3534: result: yes
-configure:3569: checking for stdarg.h
-configure:3576: result: yes
-configure:3596: checking for stdlib.h
-configure:3601: result: yes
-configure:3748: checking for string.h
-configure:3753: result: yes
-configure:3900: checking for unistd.h
-configure:3905: result: yes
-configure:4052: checking for sys/types.h
-configure:4057: result: yes
-configure:4213: checking sys/mman.h usability
-configure:4225: gcc -c -g -O2 conftest.c >&5
-configure:4231: $? = 0
-configure:4235: test -z
- || test ! -s conftest.err
-configure:4238: $? = 0
-configure:4241: test -s conftest.o
-configure:4244: $? = 0
-configure:4254: result: yes
-configure:4258: checking sys/mman.h presence
-configure:4268: gcc -E conftest.c
-configure:4274: $? = 0
-configure:4294: result: yes
-configure:4329: checking for sys/mman.h
-configure:4336: result: yes
-configure:4392: checking shared library link args
-configure:4398: gcc -c -g -O2 conftest.c >&5
-configure:4404: $? = 0
-configure:4408: test -z
- || test ! -s conftest.err
-configure:4411: $? = 0
-configure:4414: test -s conftest.o
-configure:4417: $? = 0
-ld: warning: -arch not specified
-configure:4472: result: $(CXX) -dynamiclib -install_name $@ -compatibility_version 1 -current_version 1 -o $@.t objectfiles...
-configure:4481: checking shared library extension
-configure:4491: result: dylib
-configure:4497: checking C++ support
-configure:4509: result: disabled
-configure:4513: checking thread support
-configure:4525: result: disabled
-configure:4530: checking shlib support
-configure:4542: result: disabled
-configure:4550: checking for size_t
-configure:4574: gcc -c -g -O2 conftest.c >&5
-configure:4580: $? = 0
-configure:4584: test -z
- || test ! -s conftest.err
-configure:4587: $? = 0
-configure:4590: test -s conftest.o
-configure:4593: $? = 0
-configure:4604: result: yes
-configure:4631: checking dmalloc size unsigned
-configure:4658: gcc -o conftest -g -O2 conftest.c >&5
-configure:4661: $? = 0
-configure:4663: ./conftest
-configure:4666: $? = 0
-configure:4671: result: yes
-configure:4691: checking strdup macro
-configure:4716: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c: In function 'main':
-conftest.c:38: warning: incompatible implicit declaration of built-in function 'exit'
-configure:4719: $? = 0
-configure:4721: ./conftest
-configure:4724: $? = 1
-configure: program exited with status 1
-configure: failed program was:
-| /* confdefs.h. */
-|
-| #define PACKAGE_NAME "dmalloc"
-| #define PACKAGE_TARNAME "dmalloc"
-| #define PACKAGE_VERSION "5.5.2"
-| #define PACKAGE_STRING "dmalloc 5.5.2"
-| #define PACKAGE_BUGREPORT "http://dmalloc.com/"
-| #ifdef __cplusplus
-| extern "C" void exit (int);
-| #endif
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_STDARG_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_MMAN_H 1
-| #define DMALLOC_SIZE size_t
-| #define DMALLOC_SIZE_UNSIGNED 1
-| /* end confdefs.h. */
-|
-| #if HAVE_STDLIB_H
-| # include
-| #endif
-|
-| #ifdef strdup
-| main() { exit(0); }
-| #else
-| main() { exit(1); }
-| #endif
-|
-configure:4737: result: no
-configure:4747: checking for mprotect
-configure:4804: gcc -o conftest -g -O2 conftest.c >&5
-configure:4810: $? = 0
-configure:4814: test -z
- || test ! -s conftest.err
-configure:4817: $? = 0
-configure:4820: test -s conftest
-configure:4823: $? = 0
-configure:4835: result: yes
-configure:4845: checking mprotect works
-configure:4873: gcc -o conftest -g -O2 conftest.c >&5
-configure:4879: $? = 0
-configure:4883: test -z
- || test ! -s conftest.err
-configure:4886: $? = 0
-configure:4889: test -s conftest
-configure:4892: $? = 0
-configure:4897: result: yes
-configure:4914: important functionality
-configure:4921: checking for mmap
-configure:4978: gcc -o conftest -g -O2 conftest.c >&5
-configure:4984: $? = 0
-configure:4988: test -z
- || test ! -s conftest.err
-configure:4991: $? = 0
-configure:4994: test -s conftest
-configure:4997: $? = 0
-configure:5009: result: yes
-configure:5023: checking for sbrk
-configure:5080: gcc -o conftest -g -O2 conftest.c >&5
-configure:5086: $? = 0
-configure:5090: test -z
- || test ! -s conftest.err
-configure:5093: $? = 0
-configure:5096: test -s conftest
-configure:5099: $? = 0
-configure:5111: result: yes
-configure:5131: checking mmap usage
-configure:5172: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c: In function 'main':
-conftest.c:53: warning: incompatible implicit declaration of built-in function 'exit'
-conftest.c:55: warning: incompatible implicit declaration of built-in function 'exit'
-configure:5175: $? = 0
-configure:5177: ./conftest
-configure:5180: $? = 0
-configure:5199: result: yes
-configure:5209: checking for getpagesize
-configure:5266: gcc -o conftest -g -O2 conftest.c >&5
-configure:5272: $? = 0
-configure:5276: test -z
- || test ! -s conftest.err
-configure:5279: $? = 0
-configure:5282: test -s conftest
-configure:5285: $? = 0
-configure:5297: result: yes
-configure:5307: checking basic-block size
-configure:5322: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c: In function 'main':
-conftest.c:1: warning: incompatible implicit declaration of built-in function 'exit'
-configure:5325: $? = 0
-configure:5327: ./conftest
-configure:5330: $? = 1
-configure: program exited with status 1
-configure: failed program was:
-| main() { if (getpagesize()<=2048) exit(0); else exit(1); }
-configure:5354: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c: In function 'main':
-conftest.c:1: warning: incompatible implicit declaration of built-in function 'exit'
-configure:5357: $? = 0
-configure:5359: ./conftest
-configure:5362: $? = 0
-configure:5445: result: 12
-configure:5451: checking for long
-configure:5475: gcc -c -g -O2 conftest.c >&5
-configure:5481: $? = 0
-configure:5485: test -z
- || test ! -s conftest.err
-configure:5488: $? = 0
-configure:5491: test -s conftest.o
-configure:5494: $? = 0
-configure:5505: result: yes
-configure:5508: checking size of long
-configure:5827: gcc -o conftest -g -O2 conftest.c >&5
-configure:5830: $? = 0
-configure:5832: ./conftest
-configure:5835: $? = 0
-configure:5858: result: 8
-configure:5865: checking data-alignment size
-configure:5877: result: 8
-configure:5887: checking for abort
-configure:5944: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:63: warning: conflicting types for built-in function 'abort'
-configure:5950: $? = 0
-configure:5954: test -z
- || test ! -s conftest.err
-configure:5957: $? = 0
-configure:5960: test -s conftest
-configure:5963: $? = 0
-configure:5975: result: yes
-configure:5985: checking abort safe
-configure:6030: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c: In function 'free':
-conftest.c:4: warning: incompatible implicit declaration of built-in function '_exit'
-conftest.c: At top level:
-conftest.c:5: warning: conflicting types for built-in function 'malloc'
-conftest.c: In function 'malloc':
-conftest.c:7: warning: incompatible implicit declaration of built-in function '_exit'
-conftest.c: At top level:
-conftest.c:12: warning: conflicting types for built-in function 'calloc'
-conftest.c: In function 'calloc':
-conftest.c:14: warning: incompatible implicit declaration of built-in function '_exit'
-conftest.c: In function 'realloc':
-conftest.c:24: warning: incompatible implicit declaration of built-in function '_exit'
-conftest.c: In function 'main':
-conftest.c:31: warning: incompatible implicit declaration of built-in function 'abort'
-conftest.c:31: warning: incompatible implicit declaration of built-in function '_exit'
-configure:6033: $? = 0
-configure:6035: ./conftest
-./configure: line 6036: 17231 Abort trap ./conftest$ac_exeext
-configure:6038: $? = 134
-configure: program exited with status 134
-configure: failed program was:
-|
-| static int main_b = 0;
-| static char heap_mem[102400], *heap_p = heap_mem;
-| free () { if (main_b) _exit(0); }
-| char *malloc (int size) {
-| char *pnt;
-| if (main_b) _exit(0);
-| pnt = heap_p;
-| heap_p += size;
-| return pnt;
-| }
-| char *calloc (int number, int size) {
-| char *start, *pnt, *end;
-| if (main_b) _exit(0);
-| /* it should be already 0s */
-| start = malloc (number * size);
-| pnt = start;
-| end = start + size;
-| while (pnt < end) { *pnt++ = '\0'; }
-| return start;
-| }
-| char *realloc (char *old_pnt, int new_size) {
-| char *start, *pnt, *end;
-| if (main_b) _exit(0);
-| start = malloc (new_size);
-| pnt = start;
-| end = start + new_size;
-| while (pnt < end) { *pnt++ = *old_pnt++; }
-| return start;
-| }
-| main() { main_b = 1; abort(); _exit(1); }
-|
-configure:6057: result: yes
-configure:6063: checking return type of signal handlers
-configure:6094: gcc -c -g -O2 conftest.c >&5
-configure:6100: $? = 0
-configure:6104: test -z
- || test ! -s conftest.err
-configure:6107: $? = 0
-configure:6110: test -s conftest.o
-configure:6113: $? = 0
-configure:6124: result: void
-configure:6132: checking signal works
-configure:6144: checking signal.h usability
-configure:6156: gcc -c -g -O2 conftest.c >&5
-configure:6162: $? = 0
-configure:6166: test -z
- || test ! -s conftest.err
-configure:6169: $? = 0
-configure:6172: test -s conftest.o
-configure:6175: $? = 0
-configure:6185: result: yes
-configure:6189: checking signal.h presence
-configure:6199: gcc -E conftest.c
-configure:6205: $? = 0
-configure:6225: result: yes
-configure:6260: checking for signal.h
-configure:6267: result: yes
-configure:6310: gcc -o conftest -g -O2 conftest.c >&5
-configure:6316: $? = 0
-configure:6320: test -z
- || test ! -s conftest.err
-configure:6323: $? = 0
-configure:6326: test -s conftest
-configure:6329: $? = 0
-configure:6334: result: yes
-configure:6357: checking for getenv
-configure:6414: gcc -o conftest -g -O2 conftest.c >&5
-configure:6420: $? = 0
-configure:6424: test -z
- || test ! -s conftest.err
-configure:6427: $? = 0
-configure:6430: test -s conftest
-configure:6433: $? = 0
-configure:6445: result: yes
-configure:6455: checking getenv safe
-configure:6502: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:5: warning: conflicting types for built-in function 'malloc'
-conftest.c:12: warning: conflicting types for built-in function 'calloc'
-conftest.c: In function 'main':
-conftest.c:31: warning: incompatible implicit declaration of built-in function '_exit'
-configure:6505: $? = 0
-configure:6507: ./conftest
-configure:6510: $? = 0
-configure:6516: result: yes
-configure:6548: checking sys/cygwin.h usability
-configure:6560: gcc -c -g -O2 conftest.c >&5
-conftest.c:80:24: error: sys/cygwin.h: No such file or directory
-configure:6566: $? = 1
-configure: failed program was:
-| /* confdefs.h. */
-|
-| #define PACKAGE_NAME "dmalloc"
-| #define PACKAGE_TARNAME "dmalloc"
-| #define PACKAGE_VERSION "5.5.2"
-| #define PACKAGE_STRING "dmalloc 5.5.2"
-| #define PACKAGE_BUGREPORT "http://dmalloc.com/"
-| #ifdef __cplusplus
-| extern "C" void exit (int);
-| #endif
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_STDARG_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_MMAN_H 1
-| #define DMALLOC_SIZE size_t
-| #define DMALLOC_SIZE_UNSIGNED 1
-| #define HAVE_MPROTECT 1
-| #define PROTECT_ALLOWED 1
-| #define HAVE_MMAP 1
-| #define HAVE_SBRK 1
-| #define USE_MMAP 1
-| #define HAVE_GETPAGESIZE 1
-| #define BASIC_BLOCK 12
-| #define SIZEOF_LONG 8
-| #define ALLOCATION_ALIGNMENT 8
-| #define HAVE_ABORT 1
-| #define ABORT_OKAY 1
-| #define RETSIGTYPE void
-| #define HAVE_SIGNAL_H 1
-| #define SIGNAL_OKAY 1
-| #define HAVE_GETENV 1
-| #define GETENV_SAFE 1
-| /* end confdefs.h. */
-| #include
-| #if HAVE_SYS_TYPES_H
-| # include
-| #endif
-| #if HAVE_SYS_STAT_H
-| # include
-| #endif
-| #if STDC_HEADERS
-| # include
-| # include
-| #else
-| # if HAVE_STDLIB_H
-| # include
-| # endif
-| #endif
-| #if HAVE_STRING_H
-| # if !STDC_HEADERS && HAVE_MEMORY_H
-| # include
-| # endif
-| # include
-| #endif
-| #if HAVE_STRINGS_H
-| # include
-| #endif
-| #if HAVE_INTTYPES_H
-| # include
-| #else
-| # if HAVE_STDINT_H
-| # include
-| # endif
-| #endif
-| #if HAVE_UNISTD_H
-| # include
-| #endif
-| #include
-configure:6589: result: no
-configure:6593: checking sys/cygwin.h presence
-configure:6603: gcc -E conftest.c
-conftest.c:46:24: error: sys/cygwin.h: No such file or directory
-configure:6609: $? = 1
-configure: failed program was:
-| /* confdefs.h. */
-|
-| #define PACKAGE_NAME "dmalloc"
-| #define PACKAGE_TARNAME "dmalloc"
-| #define PACKAGE_VERSION "5.5.2"
-| #define PACKAGE_STRING "dmalloc 5.5.2"
-| #define PACKAGE_BUGREPORT "http://dmalloc.com/"
-| #ifdef __cplusplus
-| extern "C" void exit (int);
-| #endif
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_STDARG_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_MMAN_H 1
-| #define DMALLOC_SIZE size_t
-| #define DMALLOC_SIZE_UNSIGNED 1
-| #define HAVE_MPROTECT 1
-| #define PROTECT_ALLOWED 1
-| #define HAVE_MMAP 1
-| #define HAVE_SBRK 1
-| #define USE_MMAP 1
-| #define HAVE_GETPAGESIZE 1
-| #define BASIC_BLOCK 12
-| #define SIZEOF_LONG 8
-| #define ALLOCATION_ALIGNMENT 8
-| #define HAVE_ABORT 1
-| #define ABORT_OKAY 1
-| #define RETSIGTYPE void
-| #define HAVE_SIGNAL_H 1
-| #define SIGNAL_OKAY 1
-| #define HAVE_GETENV 1
-| #define GETENV_SAFE 1
-| /* end confdefs.h. */
-| #include
-configure:6629: result: no
-configure:6664: checking for sys/cygwin.h
-configure:6671: result: no
-configure:6700: checking w32api/windef.h usability
-configure:6712: gcc -c -g -O2 conftest.c >&5
-conftest.c:81:27: error: w32api/windef.h: No such file or directory
-configure:6718: $? = 1
-configure: failed program was:
-| /* confdefs.h. */
-|
-| #define PACKAGE_NAME "dmalloc"
-| #define PACKAGE_TARNAME "dmalloc"
-| #define PACKAGE_VERSION "5.5.2"
-| #define PACKAGE_STRING "dmalloc 5.5.2"
-| #define PACKAGE_BUGREPORT "http://dmalloc.com/"
-| #ifdef __cplusplus
-| extern "C" void exit (int);
-| #endif
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_STDARG_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_MMAN_H 1
-| #define DMALLOC_SIZE size_t
-| #define DMALLOC_SIZE_UNSIGNED 1
-| #define HAVE_MPROTECT 1
-| #define PROTECT_ALLOWED 1
-| #define HAVE_MMAP 1
-| #define HAVE_SBRK 1
-| #define USE_MMAP 1
-| #define HAVE_GETPAGESIZE 1
-| #define BASIC_BLOCK 12
-| #define SIZEOF_LONG 8
-| #define ALLOCATION_ALIGNMENT 8
-| #define HAVE_ABORT 1
-| #define ABORT_OKAY 1
-| #define RETSIGTYPE void
-| #define HAVE_SIGNAL_H 1
-| #define SIGNAL_OKAY 1
-| #define HAVE_GETENV 1
-| #define GETENV_SAFE 1
-| #define HAVE_SYS_CYGWIN_H 0
-| /* end confdefs.h. */
-| #include
-| #if HAVE_SYS_TYPES_H
-| # include
-| #endif
-| #if HAVE_SYS_STAT_H
-| # include
-| #endif
-| #if STDC_HEADERS
-| # include
-| # include
-| #else
-| # if HAVE_STDLIB_H
-| # include
-| # endif
-| #endif
-| #if HAVE_STRING_H
-| # if !STDC_HEADERS && HAVE_MEMORY_H
-| # include
-| # endif
-| # include
-| #endif
-| #if HAVE_STRINGS_H
-| # include
-| #endif
-| #if HAVE_INTTYPES_H
-| # include
-| #else
-| # if HAVE_STDINT_H
-| # include
-| # endif
-| #endif
-| #if HAVE_UNISTD_H
-| # include
-| #endif
-| #include
-configure:6741: result: no
-configure:6745: checking w32api/windef.h presence
-configure:6755: gcc -E conftest.c
-conftest.c:47:27: error: w32api/windef.h: No such file or directory
-configure:6761: $? = 1
-configure: failed program was:
-| /* confdefs.h. */
-|
-| #define PACKAGE_NAME "dmalloc"
-| #define PACKAGE_TARNAME "dmalloc"
-| #define PACKAGE_VERSION "5.5.2"
-| #define PACKAGE_STRING "dmalloc 5.5.2"
-| #define PACKAGE_BUGREPORT "http://dmalloc.com/"
-| #ifdef __cplusplus
-| extern "C" void exit (int);
-| #endif
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_STDARG_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_MMAN_H 1
-| #define DMALLOC_SIZE size_t
-| #define DMALLOC_SIZE_UNSIGNED 1
-| #define HAVE_MPROTECT 1
-| #define PROTECT_ALLOWED 1
-| #define HAVE_MMAP 1
-| #define HAVE_SBRK 1
-| #define USE_MMAP 1
-| #define HAVE_GETPAGESIZE 1
-| #define BASIC_BLOCK 12
-| #define SIZEOF_LONG 8
-| #define ALLOCATION_ALIGNMENT 8
-| #define HAVE_ABORT 1
-| #define ABORT_OKAY 1
-| #define RETSIGTYPE void
-| #define HAVE_SIGNAL_H 1
-| #define SIGNAL_OKAY 1
-| #define HAVE_GETENV 1
-| #define GETENV_SAFE 1
-| #define HAVE_SYS_CYGWIN_H 0
-| /* end confdefs.h. */
-| #include
-configure:6781: result: no
-configure:6816: checking for w32api/windef.h
-configure:6823: result: no
-configure:6842: checking for w32api/winbase.h
-configure:6861: gcc -c -g -O2 conftest.c >&5
-conftest.c:53:28: error: w32api/winbase.h: No such file or directory
-configure:6867: $? = 1
-configure: failed program was:
-| /* confdefs.h. */
-|
-| #define PACKAGE_NAME "dmalloc"
-| #define PACKAGE_TARNAME "dmalloc"
-| #define PACKAGE_VERSION "5.5.2"
-| #define PACKAGE_STRING "dmalloc 5.5.2"
-| #define PACKAGE_BUGREPORT "http://dmalloc.com/"
-| #ifdef __cplusplus
-| extern "C" void exit (int);
-| #endif
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_STDARG_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_MMAN_H 1
-| #define DMALLOC_SIZE size_t
-| #define DMALLOC_SIZE_UNSIGNED 1
-| #define HAVE_MPROTECT 1
-| #define PROTECT_ALLOWED 1
-| #define HAVE_MMAP 1
-| #define HAVE_SBRK 1
-| #define USE_MMAP 1
-| #define HAVE_GETPAGESIZE 1
-| #define BASIC_BLOCK 12
-| #define SIZEOF_LONG 8
-| #define ALLOCATION_ALIGNMENT 8
-| #define HAVE_ABORT 1
-| #define ABORT_OKAY 1
-| #define RETSIGTYPE void
-| #define HAVE_SIGNAL_H 1
-| #define SIGNAL_OKAY 1
-| #define HAVE_GETENV 1
-| #define GETENV_SAFE 1
-| #define HAVE_SYS_CYGWIN_H 0
-| #define HAVE_W32API_WINDEF_H 0
-| /* end confdefs.h. */
-|
-| #if HAVE_W32API_WINDEF_H
-| # include
-| #endif
-|
-| #include
-configure:6891: result: no
-configure:6908: checking for GetEnvironmentVariableA
-configure:6941: gcc -o conftest -g -O2 conftest.c >&5
-Undefined symbols:
- "_GetEnvironmentVariableA", referenced from:
- _main in ccXHLfXr.o
-ld: symbol(s) not found
-collect2: ld returned 1 exit status
-configure:6944: $? = 1
-configure: program exited with status 1
-configure: failed program was:
-|
-| #if HAVE_SYS_CYGWIN_H
-| # include
-| #endif
-| #if HAVE_STDARG_H
-| # include
-| #endif
-| #if HAVE_W32API_WINDEF_H
-| # include
-| #endif
-| #if HAVE_W32API_WINBASE_H
-| # include
-| #endif
-| main() {
-| char env_buf[256];
-| GetEnvironmentVariableA("PATH", env_buf, sizeof(env_buf));
-| }
-|
-configure:6968: result: no
-configure:6995: checking constructor attribute
-configure:7014: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c: In function 'loc_con':
-conftest.c:4: warning: incompatible implicit declaration of built-in function 'exit'
-conftest.c: In function 'main':
-conftest.c:5: warning: incompatible implicit declaration of built-in function 'exit'
-configure:7017: $? = 0
-configure:7019: ./conftest
-configure:7022: $? = 0
-configure:7027: result: yes
-configure:7047: checking destructor attribute
-configure:7067: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c: In function 'loc_decon':
-conftest.c:4: warning: incompatible implicit declaration of built-in function 'exit'
-configure:7070: $? = 0
-configure:7072: ./conftest
-configure:7075: $? = 0
-configure:7081: result: yes
-configure:7106: checking return.h macros work
-configure:7139: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c: In function 'main':
-conftest.c:18: warning: incompatible implicit declaration of built-in function 'exit'
-configure:7142: $? = 0
-configure:7144: ./conftest
-configure:7147: $? = 0
-configure:7152: result: yes
-configure:7174: checking if ident works
-configure:7183: gcc -c -g -O2 conftest.c >&5
-configure:7189: $? = 0
-configure:7193: test -z
- || test ! -s conftest.err
-configure:7196: $? = 0
-configure:7199: test -s conftest.o
-configure:7202: $? = 0
-configure:7207: result: yes
-configure:7223: pthread particulars
-configure:7228: checking for library containing pthread_mutex_init
-configure:7258: gcc -o conftest -g -O2 conftest.c >&5
-configure:7264: $? = 0
-configure:7268: test -z
- || test ! -s conftest.err
-configure:7271: $? = 0
-configure:7274: test -s conftest
-configure:7277: $? = 0
-configure:7347: result: none required
-configure:7364: checking pthread.h usability
-configure:7376: gcc -c -g -O2 conftest.c >&5
-configure:7382: $? = 0
-configure:7386: test -z
- || test ! -s conftest.err
-configure:7389: $? = 0
-configure:7392: test -s conftest.o
-configure:7395: $? = 0
-configure:7405: result: yes
-configure:7409: checking pthread.h presence
-configure:7419: gcc -E conftest.c
-configure:7425: $? = 0
-configure:7445: result: yes
-configure:7480: checking for pthread.h
-configure:7487: result: yes
-configure:7516: checking pthreads.h usability
-configure:7528: gcc -c -g -O2 conftest.c >&5
-conftest.c:89:22: error: pthreads.h: No such file or directory
-configure:7534: $? = 1
-configure: failed program was:
-| /* confdefs.h. */
-|
-| #define PACKAGE_NAME "dmalloc"
-| #define PACKAGE_TARNAME "dmalloc"
-| #define PACKAGE_VERSION "5.5.2"
-| #define PACKAGE_STRING "dmalloc 5.5.2"
-| #define PACKAGE_BUGREPORT "http://dmalloc.com/"
-| #ifdef __cplusplus
-| extern "C" void exit (int);
-| #endif
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_STDARG_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_MMAN_H 1
-| #define DMALLOC_SIZE size_t
-| #define DMALLOC_SIZE_UNSIGNED 1
-| #define HAVE_MPROTECT 1
-| #define PROTECT_ALLOWED 1
-| #define HAVE_MMAP 1
-| #define HAVE_SBRK 1
-| #define USE_MMAP 1
-| #define HAVE_GETPAGESIZE 1
-| #define BASIC_BLOCK 12
-| #define SIZEOF_LONG 8
-| #define ALLOCATION_ALIGNMENT 8
-| #define HAVE_ABORT 1
-| #define ABORT_OKAY 1
-| #define RETSIGTYPE void
-| #define HAVE_SIGNAL_H 1
-| #define SIGNAL_OKAY 1
-| #define HAVE_GETENV 1
-| #define GETENV_SAFE 1
-| #define HAVE_SYS_CYGWIN_H 0
-| #define HAVE_W32API_WINDEF_H 0
-| #define HAVE_W32API_WINBASE_H 0
-| #define HAVE_GETENVIRONMENTVARIABLEA 0
-| #define CONSTRUCTOR_WORKS 1
-| #define DESTRUCTOR_WORKS 1
-| #define RETURN_MACROS_WORK 1
-| #define IDENT_WORKS 1
-| #define HAVE_PTHREAD_H 1
-| /* end confdefs.h. */
-| #include
-| #if HAVE_SYS_TYPES_H
-| # include
-| #endif
-| #if HAVE_SYS_STAT_H
-| # include
-| #endif
-| #if STDC_HEADERS
-| # include
-| # include
-| #else
-| # if HAVE_STDLIB_H
-| # include
-| # endif
-| #endif
-| #if HAVE_STRING_H
-| # if !STDC_HEADERS && HAVE_MEMORY_H
-| # include
-| # endif
-| # include
-| #endif
-| #if HAVE_STRINGS_H
-| # include
-| #endif
-| #if HAVE_INTTYPES_H
-| # include
-| #else
-| # if HAVE_STDINT_H
-| # include
-| # endif
-| #endif
-| #if HAVE_UNISTD_H
-| # include
-| #endif
-| #include
-configure:7557: result: no
-configure:7561: checking pthreads.h presence
-configure:7571: gcc -E conftest.c
-conftest.c:55:22: error: pthreads.h: No such file or directory
-configure:7577: $? = 1
-configure: failed program was:
-| /* confdefs.h. */
-|
-| #define PACKAGE_NAME "dmalloc"
-| #define PACKAGE_TARNAME "dmalloc"
-| #define PACKAGE_VERSION "5.5.2"
-| #define PACKAGE_STRING "dmalloc 5.5.2"
-| #define PACKAGE_BUGREPORT "http://dmalloc.com/"
-| #ifdef __cplusplus
-| extern "C" void exit (int);
-| #endif
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_STDARG_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_MMAN_H 1
-| #define DMALLOC_SIZE size_t
-| #define DMALLOC_SIZE_UNSIGNED 1
-| #define HAVE_MPROTECT 1
-| #define PROTECT_ALLOWED 1
-| #define HAVE_MMAP 1
-| #define HAVE_SBRK 1
-| #define USE_MMAP 1
-| #define HAVE_GETPAGESIZE 1
-| #define BASIC_BLOCK 12
-| #define SIZEOF_LONG 8
-| #define ALLOCATION_ALIGNMENT 8
-| #define HAVE_ABORT 1
-| #define ABORT_OKAY 1
-| #define RETSIGTYPE void
-| #define HAVE_SIGNAL_H 1
-| #define SIGNAL_OKAY 1
-| #define HAVE_GETENV 1
-| #define GETENV_SAFE 1
-| #define HAVE_SYS_CYGWIN_H 0
-| #define HAVE_W32API_WINDEF_H 0
-| #define HAVE_W32API_WINBASE_H 0
-| #define HAVE_GETENVIRONMENTVARIABLEA 0
-| #define CONSTRUCTOR_WORKS 1
-| #define DESTRUCTOR_WORKS 1
-| #define RETURN_MACROS_WORK 1
-| #define IDENT_WORKS 1
-| #define HAVE_PTHREAD_H 1
-| /* end confdefs.h. */
-| #include
-configure:7597: result: no
-configure:7632: checking for pthreads.h
-configure:7639: result: no
-configure:7665: checking for pthread_mutex_init
-configure:7722: gcc -o conftest -g -O2 conftest.c >&5
-configure:7728: $? = 0
-configure:7732: test -z
- || test ! -s conftest.err
-configure:7735: $? = 0
-configure:7738: test -s conftest
-configure:7741: $? = 0
-configure:7753: result: yes
-configure:7665: checking for pthread_mutex_lock
-configure:7722: gcc -o conftest -g -O2 conftest.c >&5
-configure:7728: $? = 0
-configure:7732: test -z
- || test ! -s conftest.err
-configure:7735: $? = 0
-configure:7738: test -s conftest
-configure:7741: $? = 0
-configure:7753: result: yes
-configure:7665: checking for pthread_mutex_unlock
-configure:7722: gcc -o conftest -g -O2 conftest.c >&5
-configure:7728: $? = 0
-configure:7732: test -z
- || test ! -s conftest.err
-configure:7735: $? = 0
-configure:7738: test -s conftest
-configure:7741: $? = 0
-configure:7753: result: yes
-configure:7764: checking pthread mutex type
-configure:7791: gcc -o conftest -g -O2 conftest.c >&5
-configure:7797: $? = 0
-configure:7801: test -z
- || test ! -s conftest.err
-configure:7804: $? = 0
-configure:7807: test -s conftest
-configure:7810: $? = 0
-configure:7815: result: pthread_mutex_t
-configure:7828: checking pthread attribute initialization
-configure:7856: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c: In function 'main':
-conftest.c:73: error: 'pthread_mutexattr_default' undeclared (first use in this function)
-conftest.c:73: error: (Each undeclared identifier is reported only once
-conftest.c:73: error: for each function it appears in.)
-configure:7862: $? = 1
-configure: failed program was:
-| /* confdefs.h. */
-|
-| #define PACKAGE_NAME "dmalloc"
-| #define PACKAGE_TARNAME "dmalloc"
-| #define PACKAGE_VERSION "5.5.2"
-| #define PACKAGE_STRING "dmalloc 5.5.2"
-| #define PACKAGE_BUGREPORT "http://dmalloc.com/"
-| #ifdef __cplusplus
-| extern "C" void exit (int);
-| #endif
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_STDARG_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_MMAN_H 1
-| #define DMALLOC_SIZE size_t
-| #define DMALLOC_SIZE_UNSIGNED 1
-| #define HAVE_MPROTECT 1
-| #define PROTECT_ALLOWED 1
-| #define HAVE_MMAP 1
-| #define HAVE_SBRK 1
-| #define USE_MMAP 1
-| #define HAVE_GETPAGESIZE 1
-| #define BASIC_BLOCK 12
-| #define SIZEOF_LONG 8
-| #define ALLOCATION_ALIGNMENT 8
-| #define HAVE_ABORT 1
-| #define ABORT_OKAY 1
-| #define RETSIGTYPE void
-| #define HAVE_SIGNAL_H 1
-| #define SIGNAL_OKAY 1
-| #define HAVE_GETENV 1
-| #define GETENV_SAFE 1
-| #define HAVE_SYS_CYGWIN_H 0
-| #define HAVE_W32API_WINDEF_H 0
-| #define HAVE_W32API_WINBASE_H 0
-| #define HAVE_GETENVIRONMENTVARIABLEA 0
-| #define CONSTRUCTOR_WORKS 1
-| #define DESTRUCTOR_WORKS 1
-| #define RETURN_MACROS_WORK 1
-| #define IDENT_WORKS 1
-| #define HAVE_PTHREAD_H 1
-| #define HAVE_PTHREADS_H 0
-| #define HAVE_PTHREAD_MUTEX_INIT 1
-| #define HAVE_PTHREAD_MUTEX_LOCK 1
-| #define HAVE_PTHREAD_MUTEX_UNLOCK 1
-| #define THREAD_MUTEX_T pthread_mutex_t
-| /* end confdefs.h. */
-|
-| #if HAVE_PTHREAD_H
-| # include
-| #endif
-| #if HAVE_PTHREADS_H
-| # include
-| #endif
-|
-| int
-| main ()
-| {
-|
-| THREAD_MUTEX_T dmalloc_mutex;
-| pthread_mutex_init(&dmalloc_mutex, pthread_mutexattr_default);
-|
-| ;
-| return 0;
-| }
-configure:7891: result: 0
-configure:7901: functions
-configure:7910: checking for atexit
-configure:7967: gcc -o conftest -g -O2 conftest.c >&5
-configure:7973: $? = 0
-configure:7977: test -z
- || test ! -s conftest.err
-configure:7980: $? = 0
-configure:7983: test -s conftest
-configure:7986: $? = 0
-configure:7998: result: yes
-configure:7910: checking for on_exit
-configure:7967: gcc -o conftest -g -O2 conftest.c >&5
-Undefined symbols:
- "_on_exit", referenced from:
- _main in ccixMU45.o
- _f in ccixMU45.o
-ld: symbol(s) not found
-collect2: ld returned 1 exit status
-configure:7973: $? = 1
-configure: failed program was:
-| /* confdefs.h. */
-|
-| #define PACKAGE_NAME "dmalloc"
-| #define PACKAGE_TARNAME "dmalloc"
-| #define PACKAGE_VERSION "5.5.2"
-| #define PACKAGE_STRING "dmalloc 5.5.2"
-| #define PACKAGE_BUGREPORT "http://dmalloc.com/"
-| #ifdef __cplusplus
-| extern "C" void exit (int);
-| #endif
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_STDARG_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_MMAN_H 1
-| #define DMALLOC_SIZE size_t
-| #define DMALLOC_SIZE_UNSIGNED 1
-| #define HAVE_MPROTECT 1
-| #define PROTECT_ALLOWED 1
-| #define HAVE_MMAP 1
-| #define HAVE_SBRK 1
-| #define USE_MMAP 1
-| #define HAVE_GETPAGESIZE 1
-| #define BASIC_BLOCK 12
-| #define SIZEOF_LONG 8
-| #define ALLOCATION_ALIGNMENT 8
-| #define HAVE_ABORT 1
-| #define ABORT_OKAY 1
-| #define RETSIGTYPE void
-| #define HAVE_SIGNAL_H 1
-| #define SIGNAL_OKAY 1
-| #define HAVE_GETENV 1
-| #define GETENV_SAFE 1
-| #define HAVE_SYS_CYGWIN_H 0
-| #define HAVE_W32API_WINDEF_H 0
-| #define HAVE_W32API_WINBASE_H 0
-| #define HAVE_GETENVIRONMENTVARIABLEA 0
-| #define CONSTRUCTOR_WORKS 1
-| #define DESTRUCTOR_WORKS 1
-| #define RETURN_MACROS_WORK 1
-| #define IDENT_WORKS 1
-| #define HAVE_PTHREAD_H 1
-| #define HAVE_PTHREADS_H 0
-| #define HAVE_PTHREAD_MUTEX_INIT 1
-| #define HAVE_PTHREAD_MUTEX_LOCK 1
-| #define HAVE_PTHREAD_MUTEX_UNLOCK 1
-| #define THREAD_MUTEX_T pthread_mutex_t
-| #define THREAD_LOCK_INIT_VAL 0
-| #define HAVE_ATEXIT 1
-| /* end confdefs.h. */
-| /* Define on_exit to an innocuous variant, in case declares on_exit.
-| For example, HP-UX 11i declares gettimeofday. */
-| #define on_exit innocuous_on_exit
-|
-| /* System header to define __stub macros and hopefully few prototypes,
-| which can conflict with char on_exit (); below.
-| Prefer to if __STDC__ is defined, since
-| exists even on freestanding compilers. */
-|
-| #ifdef __STDC__
-| # include
-| #else
-| # include
-| #endif
-|
-| #undef on_exit
-|
-| /* Override any gcc2 internal prototype to avoid an error. */
-| #ifdef __cplusplus
-| extern "C"
-| {
-| #endif
-| /* We use char because int might match the return type of a gcc2
-| builtin and then its argument prototype would still apply. */
-| char on_exit ();
-| /* The GNU C library defines this for functions which it implements
-| to always fail with ENOSYS. Some functions are actually named
-| something starting with __ and the normal name is an alias. */
-| #if defined (__stub_on_exit) || defined (__stub___on_exit)
-| choke me
-| #else
-| char (*f) () = on_exit;
-| #endif
-| #ifdef __cplusplus
-| }
-| #endif
-|
-| int
-| main ()
-| {
-| return f != on_exit;
-| ;
-| return 0;
-| }
-configure:7998: result: no
-configure:8035: checking for fork
-configure:8092: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:86: warning: conflicting types for built-in function 'fork'
-configure:8098: $? = 0
-configure:8102: test -z
- || test ! -s conftest.err
-configure:8105: $? = 0
-configure:8108: test -s conftest
-configure:8111: $? = 0
-configure:8123: result: yes
-configure:8035: checking for gethostname
-configure:8092: gcc -o conftest -g -O2 conftest.c >&5
-configure:8098: $? = 0
-configure:8102: test -z
- || test ! -s conftest.err
-configure:8105: $? = 0
-configure:8108: test -s conftest
-configure:8111: $? = 0
-configure:8123: result: yes
-configure:8035: checking for getpid
-configure:8092: gcc -o conftest -g -O2 conftest.c >&5
-configure:8098: $? = 0
-configure:8102: test -z
- || test ! -s conftest.err
-configure:8105: $? = 0
-configure:8108: test -s conftest
-configure:8111: $? = 0
-configure:8123: result: yes
-configure:8035: checking for getuid
-configure:8092: gcc -o conftest -g -O2 conftest.c >&5
-configure:8098: $? = 0
-configure:8102: test -z
- || test ! -s conftest.err
-configure:8105: $? = 0
-configure:8108: test -s conftest
-configure:8111: $? = 0
-configure:8123: result: yes
-configure:8035: checking for time
-configure:8092: gcc -o conftest -g -O2 conftest.c >&5
-configure:8098: $? = 0
-configure:8102: test -z
- || test ! -s conftest.err
-configure:8105: $? = 0
-configure:8108: test -s conftest
-configure:8111: $? = 0
-configure:8123: result: yes
-configure:8035: checking for ctime
-configure:8092: gcc -o conftest -g -O2 conftest.c >&5
-configure:8098: $? = 0
-configure:8102: test -z
- || test ! -s conftest.err
-configure:8105: $? = 0
-configure:8108: test -s conftest
-configure:8111: $? = 0
-configure:8123: result: yes
-configure:8139: checking for vprintf
-configure:8196: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:92: warning: conflicting types for built-in function 'vprintf'
-configure:8202: $? = 0
-configure:8206: test -z
- || test ! -s conftest.err
-configure:8209: $? = 0
-configure:8212: test -s conftest
-configure:8215: $? = 0
-configure:8227: result: yes
-configure:8139: checking for snprintf
-configure:8196: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:93: warning: conflicting types for built-in function 'snprintf'
-configure:8202: $? = 0
-configure:8206: test -z
- || test ! -s conftest.err
-configure:8209: $? = 0
-configure:8212: test -s conftest
-configure:8215: $? = 0
-configure:8227: result: yes
-configure:8139: checking for vsnprintf
-configure:8196: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:94: warning: conflicting types for built-in function 'vsnprintf'
-configure:8202: $? = 0
-configure:8206: test -z
- || test ! -s conftest.err
-configure:8209: $? = 0
-configure:8212: test -s conftest
-configure:8215: $? = 0
-configure:8227: result: yes
-configure:8243: checking for recalloc
-configure:8300: gcc -o conftest -g -O2 conftest.c >&5
-Undefined symbols:
- "_recalloc", referenced from:
- _main in ccorMo4q.o
- _f in ccorMo4q.o
-ld: symbol(s) not found
-collect2: ld returned 1 exit status
-configure:8306: $? = 1
-configure: failed program was:
-| /* confdefs.h. */
-|
-| #define PACKAGE_NAME "dmalloc"
-| #define PACKAGE_TARNAME "dmalloc"
-| #define PACKAGE_VERSION "5.5.2"
-| #define PACKAGE_STRING "dmalloc 5.5.2"
-| #define PACKAGE_BUGREPORT "http://dmalloc.com/"
-| #ifdef __cplusplus
-| extern "C" void exit (int);
-| #endif
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_STDARG_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_MMAN_H 1
-| #define DMALLOC_SIZE size_t
-| #define DMALLOC_SIZE_UNSIGNED 1
-| #define HAVE_MPROTECT 1
-| #define PROTECT_ALLOWED 1
-| #define HAVE_MMAP 1
-| #define HAVE_SBRK 1
-| #define USE_MMAP 1
-| #define HAVE_GETPAGESIZE 1
-| #define BASIC_BLOCK 12
-| #define SIZEOF_LONG 8
-| #define ALLOCATION_ALIGNMENT 8
-| #define HAVE_ABORT 1
-| #define ABORT_OKAY 1
-| #define RETSIGTYPE void
-| #define HAVE_SIGNAL_H 1
-| #define SIGNAL_OKAY 1
-| #define HAVE_GETENV 1
-| #define GETENV_SAFE 1
-| #define HAVE_SYS_CYGWIN_H 0
-| #define HAVE_W32API_WINDEF_H 0
-| #define HAVE_W32API_WINBASE_H 0
-| #define HAVE_GETENVIRONMENTVARIABLEA 0
-| #define CONSTRUCTOR_WORKS 1
-| #define DESTRUCTOR_WORKS 1
-| #define RETURN_MACROS_WORK 1
-| #define IDENT_WORKS 1
-| #define HAVE_PTHREAD_H 1
-| #define HAVE_PTHREADS_H 0
-| #define HAVE_PTHREAD_MUTEX_INIT 1
-| #define HAVE_PTHREAD_MUTEX_LOCK 1
-| #define HAVE_PTHREAD_MUTEX_UNLOCK 1
-| #define THREAD_MUTEX_T pthread_mutex_t
-| #define THREAD_LOCK_INIT_VAL 0
-| #define HAVE_ATEXIT 1
-| #define HAVE_FORK 1
-| #define HAVE_GETHOSTNAME 1
-| #define HAVE_GETPID 1
-| #define HAVE_GETUID 1
-| #define HAVE_TIME 1
-| #define HAVE_CTIME 1
-| #define HAVE_VPRINTF 1
-| #define HAVE_SNPRINTF 1
-| #define HAVE_VSNPRINTF 1
-| /* end confdefs.h. */
-| /* Define recalloc to an innocuous variant, in case declares recalloc.
-| For example, HP-UX 11i declares gettimeofday. */
-| #define recalloc innocuous_recalloc
-|
-| /* System header to define __stub macros and hopefully few prototypes,
-| which can conflict with char recalloc (); below.
-| Prefer to if __STDC__ is defined, since
-| exists even on freestanding compilers. */
-|
-| #ifdef __STDC__
-| # include
-| #else
-| # include
-| #endif
-|
-| #undef recalloc
-|
-| /* Override any gcc2 internal prototype to avoid an error. */
-| #ifdef __cplusplus
-| extern "C"
-| {
-| #endif
-| /* We use char because int might match the return type of a gcc2
-| builtin and then its argument prototype would still apply. */
-| char recalloc ();
-| /* The GNU C library defines this for functions which it implements
-| to always fail with ENOSYS. Some functions are actually named
-| something starting with __ and the normal name is an alias. */
-| #if defined (__stub_recalloc) || defined (__stub___recalloc)
-| choke me
-| #else
-| char (*f) () = recalloc;
-| #endif
-| #ifdef __cplusplus
-| }
-| #endif
-|
-| int
-| main ()
-| {
-| return f != recalloc;
-| ;
-| return 0;
-| }
-configure:8331: result: no
-configure:8243: checking for memalign
-configure:8300: gcc -o conftest -g -O2 conftest.c >&5
-Undefined symbols:
- "_memalign", referenced from:
- _main in ccvDKuVA.o
- _f in ccvDKuVA.o
-ld: symbol(s) not found
-collect2: ld returned 1 exit status
-configure:8306: $? = 1
-configure: failed program was:
-| /* confdefs.h. */
-|
-| #define PACKAGE_NAME "dmalloc"
-| #define PACKAGE_TARNAME "dmalloc"
-| #define PACKAGE_VERSION "5.5.2"
-| #define PACKAGE_STRING "dmalloc 5.5.2"
-| #define PACKAGE_BUGREPORT "http://dmalloc.com/"
-| #ifdef __cplusplus
-| extern "C" void exit (int);
-| #endif
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_STDARG_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_MMAN_H 1
-| #define DMALLOC_SIZE size_t
-| #define DMALLOC_SIZE_UNSIGNED 1
-| #define HAVE_MPROTECT 1
-| #define PROTECT_ALLOWED 1
-| #define HAVE_MMAP 1
-| #define HAVE_SBRK 1
-| #define USE_MMAP 1
-| #define HAVE_GETPAGESIZE 1
-| #define BASIC_BLOCK 12
-| #define SIZEOF_LONG 8
-| #define ALLOCATION_ALIGNMENT 8
-| #define HAVE_ABORT 1
-| #define ABORT_OKAY 1
-| #define RETSIGTYPE void
-| #define HAVE_SIGNAL_H 1
-| #define SIGNAL_OKAY 1
-| #define HAVE_GETENV 1
-| #define GETENV_SAFE 1
-| #define HAVE_SYS_CYGWIN_H 0
-| #define HAVE_W32API_WINDEF_H 0
-| #define HAVE_W32API_WINBASE_H 0
-| #define HAVE_GETENVIRONMENTVARIABLEA 0
-| #define CONSTRUCTOR_WORKS 1
-| #define DESTRUCTOR_WORKS 1
-| #define RETURN_MACROS_WORK 1
-| #define IDENT_WORKS 1
-| #define HAVE_PTHREAD_H 1
-| #define HAVE_PTHREADS_H 0
-| #define HAVE_PTHREAD_MUTEX_INIT 1
-| #define HAVE_PTHREAD_MUTEX_LOCK 1
-| #define HAVE_PTHREAD_MUTEX_UNLOCK 1
-| #define THREAD_MUTEX_T pthread_mutex_t
-| #define THREAD_LOCK_INIT_VAL 0
-| #define HAVE_ATEXIT 1
-| #define HAVE_FORK 1
-| #define HAVE_GETHOSTNAME 1
-| #define HAVE_GETPID 1
-| #define HAVE_GETUID 1
-| #define HAVE_TIME 1
-| #define HAVE_CTIME 1
-| #define HAVE_VPRINTF 1
-| #define HAVE_SNPRINTF 1
-| #define HAVE_VSNPRINTF 1
-| /* end confdefs.h. */
-| /* Define memalign to an innocuous variant, in case declares memalign.
-| For example, HP-UX 11i declares gettimeofday. */
-| #define memalign innocuous_memalign
-|
-| /* System header to define __stub macros and hopefully few prototypes,
-| which can conflict with char memalign (); below.
-| Prefer to if __STDC__ is defined, since
-| exists even on freestanding compilers. */
-|
-| #ifdef __STDC__
-| # include
-| #else
-| # include
-| #endif
-|
-| #undef memalign
-|
-| /* Override any gcc2 internal prototype to avoid an error. */
-| #ifdef __cplusplus
-| extern "C"
-| {
-| #endif
-| /* We use char because int might match the return type of a gcc2
-| builtin and then its argument prototype would still apply. */
-| char memalign ();
-| /* The GNU C library defines this for functions which it implements
-| to always fail with ENOSYS. Some functions are actually named
-| something starting with __ and the normal name is an alias. */
-| #if defined (__stub_memalign) || defined (__stub___memalign)
-| choke me
-| #else
-| char (*f) () = memalign;
-| #endif
-| #ifdef __cplusplus
-| }
-| #endif
-|
-| int
-| main ()
-| {
-| return f != memalign;
-| ;
-| return 0;
-| }
-configure:8331: result: no
-configure:8243: checking for valloc
-configure:8300: gcc -o conftest -g -O2 conftest.c >&5
-configure:8306: $? = 0
-configure:8310: test -z
- || test ! -s conftest.err
-configure:8313: $? = 0
-configure:8316: test -s conftest
-configure:8319: $? = 0
-configure:8331: result: yes
-configure:8350: checking for memcmp
-configure:8407: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:96: warning: conflicting types for built-in function 'memcmp'
-configure:8413: $? = 0
-configure:8417: test -z
- || test ! -s conftest.err
-configure:8420: $? = 0
-configure:8423: test -s conftest
-configure:8426: $? = 0
-configure:8438: result: yes
-configure:8350: checking for memcpy
-configure:8407: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:97: warning: conflicting types for built-in function 'memcpy'
-configure:8413: $? = 0
-configure:8417: test -z
- || test ! -s conftest.err
-configure:8420: $? = 0
-configure:8423: test -s conftest
-configure:8426: $? = 0
-configure:8438: result: yes
-configure:8350: checking for memmove
-configure:8407: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:98: warning: conflicting types for built-in function 'memmove'
-configure:8413: $? = 0
-configure:8417: test -z
- || test ! -s conftest.err
-configure:8420: $? = 0
-configure:8423: test -s conftest
-configure:8426: $? = 0
-configure:8438: result: yes
-configure:8350: checking for memset
-configure:8407: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:99: warning: conflicting types for built-in function 'memset'
-configure:8413: $? = 0
-configure:8417: test -z
- || test ! -s conftest.err
-configure:8420: $? = 0
-configure:8423: test -s conftest
-configure:8426: $? = 0
-configure:8438: result: yes
-configure:8453: checking for strchr
-configure:8510: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:100: warning: conflicting types for built-in function 'strchr'
-configure:8516: $? = 0
-configure:8520: test -z
- || test ! -s conftest.err
-configure:8523: $? = 0
-configure:8526: test -s conftest
-configure:8529: $? = 0
-configure:8541: result: yes
-configure:8453: checking for strrchr
-configure:8510: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:101: warning: conflicting types for built-in function 'strrchr'
-configure:8516: $? = 0
-configure:8520: test -z
- || test ! -s conftest.err
-configure:8523: $? = 0
-configure:8526: test -s conftest
-configure:8529: $? = 0
-configure:8541: result: yes
-configure:8558: checking for strlen
-configure:8615: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:102: warning: conflicting types for built-in function 'strlen'
-configure:8621: $? = 0
-configure:8625: test -z
- || test ! -s conftest.err
-configure:8628: $? = 0
-configure:8631: test -s conftest
-configure:8634: $? = 0
-configure:8646: result: yes
-configure:8558: checking for strcmp
-configure:8615: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:103: warning: conflicting types for built-in function 'strcmp'
-configure:8621: $? = 0
-configure:8625: test -z
- || test ! -s conftest.err
-configure:8628: $? = 0
-configure:8631: test -s conftest
-configure:8634: $? = 0
-configure:8646: result: yes
-configure:8558: checking for strcpy
-configure:8615: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:104: warning: conflicting types for built-in function 'strcpy'
-configure:8621: $? = 0
-configure:8625: test -z
- || test ! -s conftest.err
-configure:8628: $? = 0
-configure:8631: test -s conftest
-configure:8634: $? = 0
-configure:8646: result: yes
-configure:8558: checking for strsep
-configure:8615: gcc -o conftest -g -O2 conftest.c >&5
-configure:8621: $? = 0
-configure:8625: test -z
- || test ! -s conftest.err
-configure:8628: $? = 0
-configure:8631: test -s conftest
-configure:8634: $? = 0
-configure:8646: result: yes
-configure:8658: various functions for argv files
-configure:8668: checking for atoi
-configure:8725: gcc -o conftest -g -O2 conftest.c >&5
-configure:8731: $? = 0
-configure:8735: test -z
- || test ! -s conftest.err
-configure:8738: $? = 0
-configure:8741: test -s conftest
-configure:8744: $? = 0
-configure:8756: result: yes
-configure:8668: checking for atol
-configure:8725: gcc -o conftest -g -O2 conftest.c >&5
-configure:8731: $? = 0
-configure:8735: test -z
- || test ! -s conftest.err
-configure:8738: $? = 0
-configure:8741: test -s conftest
-configure:8744: $? = 0
-configure:8756: result: yes
-configure:8668: checking for getenv
-configure:8756: result: yes
-configure:8776: checking for strchr
-configure:8864: result: yes
-configure:8776: checking for strcmp
-configure:8864: result: yes
-configure:8776: checking for strcpy
-configure:8864: result: yes
-configure:8776: checking for strlen
-configure:8864: result: yes
-configure:8776: checking for strncmp
-configure:8833: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:113: warning: conflicting types for built-in function 'strncmp'
-configure:8839: $? = 0
-configure:8843: test -z
- || test ! -s conftest.err
-configure:8846: $? = 0
-configure:8849: test -s conftest
-configure:8852: $? = 0
-configure:8864: result: yes
-configure:8776: checking for strncpy
-configure:8833: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:114: warning: conflicting types for built-in function 'strncpy'
-configure:8839: $? = 0
-configure:8843: test -z
- || test ! -s conftest.err
-configure:8846: $? = 0
-configure:8849: test -s conftest
-configure:8852: $? = 0
-configure:8864: result: yes
-configure:8776: checking for strsep
-configure:8864: result: yes
-configure:8876: various functions for argument checking
-configure:8885: checking for atoi
-configure:8973: result: yes
-configure:8885: checking for atol
-configure:8973: result: yes
-configure:8989: checking for bcmp
-configure:9046: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:118: warning: conflicting types for built-in function 'bcmp'
-configure:9052: $? = 0
-configure:9056: test -z
- || test ! -s conftest.err
-configure:9059: $? = 0
-configure:9062: test -s conftest
-configure:9065: $? = 0
-configure:9077: result: yes
-configure:8989: checking for bcopy
-configure:9046: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:119: warning: conflicting types for built-in function 'bcopy'
-configure:9052: $? = 0
-configure:9056: test -z
- || test ! -s conftest.err
-configure:9059: $? = 0
-configure:9062: test -s conftest
-configure:9065: $? = 0
-configure:9077: result: yes
-configure:8989: checking for bzero
-configure:9046: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:120: warning: conflicting types for built-in function 'bzero'
-configure:9052: $? = 0
-configure:9056: test -z
- || test ! -s conftest.err
-configure:9059: $? = 0
-configure:9062: test -s conftest
-configure:9065: $? = 0
-configure:9077: result: yes
-configure:9091: checking for index
-configure:9148: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:121: warning: conflicting types for built-in function 'index'
-configure:9154: $? = 0
-configure:9158: test -z
- || test ! -s conftest.err
-configure:9161: $? = 0
-configure:9164: test -s conftest
-configure:9167: $? = 0
-configure:9179: result: yes
-configure:9198: checking for memccpy
-configure:9255: gcc -o conftest -g -O2 conftest.c >&5
-configure:9261: $? = 0
-configure:9265: test -z
- || test ! -s conftest.err
-configure:9268: $? = 0
-configure:9271: test -s conftest
-configure:9274: $? = 0
-configure:9286: result: yes
-configure:9198: checking for memchr
-configure:9255: gcc -o conftest -g -O2 conftest.c >&5
-configure:9261: $? = 0
-configure:9265: test -z
- || test ! -s conftest.err
-configure:9268: $? = 0
-configure:9271: test -s conftest
-configure:9274: $? = 0
-configure:9286: result: yes
-configure:9198: checking for memcmp
-configure:9286: result: yes
-configure:9198: checking for memcpy
-configure:9286: result: yes
-configure:9198: checking for memmove
-configure:9286: result: yes
-configure:9198: checking for memset
-configure:9286: result: yes
-configure:9300: checking for rindex
-configure:9357: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:128: warning: conflicting types for built-in function 'rindex'
-configure:9363: $? = 0
-configure:9367: test -z
- || test ! -s conftest.err
-configure:9370: $? = 0
-configure:9373: test -s conftest
-configure:9376: $? = 0
-configure:9388: result: yes
-configure:9408: checking for strcasecmp
-configure:9465: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:129: warning: conflicting types for built-in function 'strcasecmp'
-configure:9471: $? = 0
-configure:9475: test -z
- || test ! -s conftest.err
-configure:9478: $? = 0
-configure:9481: test -s conftest
-configure:9484: $? = 0
-configure:9496: result: yes
-configure:9408: checking for strcat
-configure:9465: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:130: warning: conflicting types for built-in function 'strcat'
-configure:9471: $? = 0
-configure:9475: test -z
- || test ! -s conftest.err
-configure:9478: $? = 0
-configure:9481: test -s conftest
-configure:9484: $? = 0
-configure:9496: result: yes
-configure:9408: checking for strchr
-configure:9496: result: yes
-configure:9408: checking for strcmp
-configure:9496: result: yes
-configure:9408: checking for strcpy
-configure:9496: result: yes
-configure:9408: checking for strcspn
-configure:9465: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:134: warning: conflicting types for built-in function 'strcspn'
-configure:9471: $? = 0
-configure:9475: test -z
- || test ! -s conftest.err
-configure:9478: $? = 0
-configure:9481: test -s conftest
-configure:9484: $? = 0
-configure:9496: result: yes
-configure:9408: checking for strlen
-configure:9496: result: yes
-configure:9513: checking for strncasecmp
-configure:9570: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:136: warning: conflicting types for built-in function 'strncasecmp'
-configure:9576: $? = 0
-configure:9580: test -z
- || test ! -s conftest.err
-configure:9583: $? = 0
-configure:9586: test -s conftest
-configure:9589: $? = 0
-configure:9601: result: yes
-configure:9513: checking for strncat
-configure:9570: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:137: warning: conflicting types for built-in function 'strncat'
-configure:9576: $? = 0
-configure:9580: test -z
- || test ! -s conftest.err
-configure:9583: $? = 0
-configure:9586: test -s conftest
-configure:9589: $? = 0
-configure:9601: result: yes
-configure:9513: checking for strncmp
-configure:9601: result: yes
-configure:9513: checking for strncpy
-configure:9601: result: yes
-configure:9619: checking for strpbrk
-configure:9676: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:140: warning: conflicting types for built-in function 'strpbrk'
-configure:9682: $? = 0
-configure:9686: test -z
- || test ! -s conftest.err
-configure:9689: $? = 0
-configure:9692: test -s conftest
-configure:9695: $? = 0
-configure:9707: result: yes
-configure:9619: checking for strrchr
-configure:9707: result: yes
-configure:9619: checking for strspn
-configure:9676: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:142: warning: conflicting types for built-in function 'strspn'
-configure:9682: $? = 0
-configure:9686: test -z
- || test ! -s conftest.err
-configure:9689: $? = 0
-configure:9692: test -s conftest
-configure:9695: $? = 0
-configure:9707: result: yes
-configure:9619: checking for strstr
-configure:9676: gcc -o conftest -g -O2 conftest.c >&5
-conftest.c:143: warning: conflicting types for built-in function 'strstr'
-configure:9682: $? = 0
-configure:9686: test -z
- || test ! -s conftest.err
-configure:9689: $? = 0
-configure:9692: test -s conftest
-configure:9695: $? = 0
-configure:9707: result: yes
-configure:9619: checking for strtok
-configure:9676: gcc -o conftest -g -O2 conftest.c >&5
-configure:9682: $? = 0
-configure:9686: test -z
- || test ! -s conftest.err
-configure:9689: $? = 0
-configure:9692: test -s conftest
-configure:9695: $? = 0
-configure:9707: result: yes
-configure:9821: creating ./config.status
-
-## ---------------------- ##
-## Running config.status. ##
-## ---------------------- ##
-
-This file was extended by dmalloc config.status 5.5.2, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- CONFIG_FILES =
- CONFIG_HEADERS =
- CONFIG_LINKS =
- CONFIG_COMMANDS =
- $ ./config.status
-
-on AtenMBP-2.local
-
-config.status:694: creating Makefile
-config.status:798: creating conf.h
-config.status:1301: executing dmalloc.h.2 commands
-config.status:1301: executing settings.h commands
-configure:11087:
-configure:11089: Please check-out Makefile and conf.h to make sure that
-configure:11091: sane configuration values were a result.
-configure:11093:
-configure:11095: You may want to change values in settings.h before
-configure:11097: running 'make'.
-configure:11099:
-configure:11101: To run the basic library tests, you can execute:
-configure:11103: make light
-configure:11105: or
-configure:11107: make heavy
-configure:11109:
-
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-
-ac_cv_c_compiler_gnu=yes
-ac_cv_c_const=yes
-ac_cv_cxx_compiler_gnu=yes
-ac_cv_data_align=8
-ac_cv_env_CC_set=
-ac_cv_env_CC_value=
-ac_cv_env_CFLAGS_set=
-ac_cv_env_CFLAGS_value=
-ac_cv_env_CPPFLAGS_set=
-ac_cv_env_CPPFLAGS_value=
-ac_cv_env_CPP_set=
-ac_cv_env_CPP_value=
-ac_cv_env_CXXFLAGS_set=
-ac_cv_env_CXXFLAGS_value=
-ac_cv_env_CXX_set=
-ac_cv_env_CXX_value=
-ac_cv_env_LDFLAGS_set=
-ac_cv_env_LDFLAGS_value=
-ac_cv_env_build_alias_set=
-ac_cv_env_build_alias_value=
-ac_cv_env_host_alias_set=
-ac_cv_env_host_alias_value=
-ac_cv_env_target_alias_set=
-ac_cv_env_target_alias_value=
-ac_cv_exeext=
-ac_cv_func_abort=yes
-ac_cv_func_atexit=yes
-ac_cv_func_atoi=yes
-ac_cv_func_atol=yes
-ac_cv_func_bcmp=yes
-ac_cv_func_bcopy=yes
-ac_cv_func_bzero=yes
-ac_cv_func_ctime=yes
-ac_cv_func_fork=yes
-ac_cv_func_getenv=yes
-ac_cv_func_gethostname=yes
-ac_cv_func_getpagesize=yes
-ac_cv_func_getpid=yes
-ac_cv_func_getuid=yes
-ac_cv_func_index=yes
-ac_cv_func_memalign=no
-ac_cv_func_memccpy=yes
-ac_cv_func_memchr=yes
-ac_cv_func_memcmp=yes
-ac_cv_func_memcpy=yes
-ac_cv_func_memmove=yes
-ac_cv_func_memset=yes
-ac_cv_func_mmap=yes
-ac_cv_func_mprotect=yes
-ac_cv_func_on_exit=no
-ac_cv_func_pthread_mutex_init=yes
-ac_cv_func_pthread_mutex_lock=yes
-ac_cv_func_pthread_mutex_unlock=yes
-ac_cv_func_recalloc=no
-ac_cv_func_rindex=yes
-ac_cv_func_sbrk=yes
-ac_cv_func_snprintf=yes
-ac_cv_func_strcasecmp=yes
-ac_cv_func_strcat=yes
-ac_cv_func_strchr=yes
-ac_cv_func_strcmp=yes
-ac_cv_func_strcpy=yes
-ac_cv_func_strcspn=yes
-ac_cv_func_strlen=yes
-ac_cv_func_strncasecmp=yes
-ac_cv_func_strncat=yes
-ac_cv_func_strncmp=yes
-ac_cv_func_strncpy=yes
-ac_cv_func_strpbrk=yes
-ac_cv_func_strrchr=yes
-ac_cv_func_strsep=yes
-ac_cv_func_strspn=yes
-ac_cv_func_strstr=yes
-ac_cv_func_strtok=yes
-ac_cv_func_time=yes
-ac_cv_func_valloc=yes
-ac_cv_func_vprintf=yes
-ac_cv_func_vsnprintf=yes
-ac_cv_header_inttypes_h=yes
-ac_cv_header_memory_h=yes
-ac_cv_header_pthread_h=yes
-ac_cv_header_pthreads_h=no
-ac_cv_header_signal_h=yes
-ac_cv_header_stdarg_h=yes
-ac_cv_header_stdc=yes
-ac_cv_header_stdint_h=yes
-ac_cv_header_stdlib_h=yes
-ac_cv_header_string_h=yes
-ac_cv_header_strings_h=yes
-ac_cv_header_sys_cygwin_h=no
-ac_cv_header_sys_mman_h=yes
-ac_cv_header_sys_stat_h=yes
-ac_cv_header_sys_types_h=yes
-ac_cv_header_unistd_h=yes
-ac_cv_header_w32api_winbase_h=no
-ac_cv_header_w32api_windef_h=no
-ac_cv_objext=o
-ac_cv_page_size=12
-ac_cv_path_INTLTOOL_PERL=/usr/bin/perl
-ac_cv_path_install='/opt/local/bin/ginstall -c'
-ac_cv_prog_CPP='gcc -E'
-ac_cv_prog_ac_ct_CC=gcc
-ac_cv_prog_ac_ct_CXX=g++
-ac_cv_prog_ac_ct_RANLIB=ranlib
-ac_cv_prog_cc_g=yes
-ac_cv_prog_cc_stdc=
-ac_cv_prog_cxx_g=yes
-ac_cv_prog_egrep='grep -E'
-ac_cv_search_pthread_mutex_init='none required'
-ac_cv_shared_lib_link_objs=yes
-ac_cv_shared_lib_suffix=dylib
-ac_cv_shared_link_args='$(CXX) -dynamiclib -install_name $@ -compatibility_version 1 -current_version 1 -o $@.t'
-ac_cv_sizeof_long=8
-ac_cv_strdup_macro=no
-ac_cv_type_long=yes
-ac_cv_type_signal=void
-ac_cv_type_size_t=yes
-ac_cv_use_mmap=yes
-
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-
-CC='gcc'
-CFLAGS='-g -O2'
-CPP='gcc -E'
-CPPFLAGS=''
-CXX='g++'
-CXXFLAGS='-g -O2'
-CXX_OFF=''
-CXX_ON='#'
-DEFS='-DHAVE_CONFIG_H'
-ECHO_C='ECHO_N=''
-ECHO_T=''
-EGREP='grep -E'
-EXEEXT=''
-HAVE_PTHREADS_H='0'
-HAVE_PTHREAD_H='1'
-HAVE_SIGNAL_H='1'
-HAVE_STDARG_H='1'
-HAVE_STDLIB_H='1'
-HAVE_STRING_H='1'
-HAVE_SYS_CYGWIN_H='0'
-HAVE_SYS_MMAN_H='1'
-HAVE_SYS_TYPES_H='1'
-HAVE_UNISTD_H='1'
-HAVE_W32API_WINBASE_H='0'
-HAVE_W32API_WINDEF_H='0'
-INSTALL_DATA='${INSTALL} -m 644'
-INSTALL_PROGRAM='${INSTALL}'
-INSTALL_SCRIPT='${INSTALL}'
-LDFLAGS=''
-LIBOBJS=''
-LIBS=''
-LTLIBOBJS=''
-OBJEXT='o'
-PACKAGE_BUGREPORT='http://dmalloc.com/'
-PACKAGE_NAME='dmalloc'
-PACKAGE_STRING='dmalloc 5.5.2'
-PACKAGE_TARNAME='dmalloc'
-PACKAGE_VERSION='5.5.2'
-PATH_SEPARATOR=':'
-RANLIB='ranlib'
-SHELL='/bin/sh'
-SL_OFF=''
-SL_ON='#'
-TH_OFF=''
-TH_ON='#'
-ac_ct_CC='gcc'
-ac_ct_CXX='g++'
-ac_ct_RANLIB='ranlib'
-bindir='${exec_prefix}/bin'
-build_alias=''
-datadir='${prefix}/share'
-exec_prefix='${prefix}'
-host_alias=''
-includedir='${prefix}/include'
-infodir='${prefix}/info'
-libdir='${exec_prefix}/lib'
-libexecdir='${exec_prefix}/libexec'
-localstatedir='${prefix}/var'
-mandir='${prefix}/man'
-oldincludedir='/usr/include'
-prefix='/usr/local'
-program_transform_name='s,x,x,'
-sbindir='${exec_prefix}/sbin'
-sharedstatedir='${prefix}/com'
-shlibdir='${exec_prefix}/lib'
-shlibext='dylib'
-shlinkargs='$(CXX) -dynamiclib -install_name $@ -compatibility_version 1 -current_version 1 -o $@.t'
-sysconfdir='${prefix}/etc'
-target_alias=''
-
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-
-#define ABORT_OKAY 1
-#define ALLOCATION_ALIGNMENT 8
-#define BASIC_BLOCK 12
-#define CONSTRUCTOR_WORKS 1
-#define DESTRUCTOR_WORKS 1
-#define DMALLOC_SIZE size_t
-#define DMALLOC_SIZE_UNSIGNED 1
-#define GETENV_SAFE 1
-#define HAVE_ABORT 1
-#define HAVE_ATEXIT 1
-#define HAVE_ATOI 1
-#define HAVE_ATOI 1
-#define HAVE_ATOL 1
-#define HAVE_ATOL 1
-#define HAVE_BCMP 1
-#define HAVE_BCOPY 1
-#define HAVE_BZERO 1
-#define HAVE_CTIME 1
-#define HAVE_FORK 1
-#define HAVE_GETENV 1
-#define HAVE_GETENV 1
-#define HAVE_GETENVIRONMENTVARIABLEA 0
-#define HAVE_GETHOSTNAME 1
-#define HAVE_GETPAGESIZE 1
-#define HAVE_GETPID 1
-#define HAVE_GETUID 1
-#define HAVE_INDEX 1
-#define HAVE_INTTYPES_H 1
-#define HAVE_MEMCCPY 1
-#define HAVE_MEMCHR 1
-#define HAVE_MEMCMP 1
-#define HAVE_MEMCMP 1
-#define HAVE_MEMCPY 1
-#define HAVE_MEMCPY 1
-#define HAVE_MEMMOVE 1
-#define HAVE_MEMMOVE 1
-#define HAVE_MEMORY_H 1
-#define HAVE_MEMSET 1
-#define HAVE_MEMSET 1
-#define HAVE_MMAP 1
-#define HAVE_MPROTECT 1
-#define HAVE_PTHREADS_H 0
-#define HAVE_PTHREAD_H 1
-#define HAVE_PTHREAD_MUTEX_INIT 1
-#define HAVE_PTHREAD_MUTEX_LOCK 1
-#define HAVE_PTHREAD_MUTEX_UNLOCK 1
-#define HAVE_RINDEX 1
-#define HAVE_SBRK 1
-#define HAVE_SIGNAL_H 1
-#define HAVE_SNPRINTF 1
-#define HAVE_STDARG_H 1
-#define HAVE_STDINT_H 1
-#define HAVE_STDLIB_H 1
-#define HAVE_STDLIB_H 1
-#define HAVE_STRCASECMP 1
-#define HAVE_STRCAT 1
-#define HAVE_STRCHR 1
-#define HAVE_STRCHR 1
-#define HAVE_STRCHR 1
-#define HAVE_STRCMP 1
-#define HAVE_STRCMP 1
-#define HAVE_STRCMP 1
-#define HAVE_STRCPY 1
-#define HAVE_STRCPY 1
-#define HAVE_STRCPY 1
-#define HAVE_STRCSPN 1
-#define HAVE_STRINGS_H 1
-#define HAVE_STRING_H 1
-#define HAVE_STRING_H 1
-#define HAVE_STRLEN 1
-#define HAVE_STRLEN 1
-#define HAVE_STRLEN 1
-#define HAVE_STRNCASECMP 1
-#define HAVE_STRNCAT 1
-#define HAVE_STRNCMP 1
-#define HAVE_STRNCMP 1
-#define HAVE_STRNCPY 1
-#define HAVE_STRNCPY 1
-#define HAVE_STRPBRK 1
-#define HAVE_STRRCHR 1
-#define HAVE_STRRCHR 1
-#define HAVE_STRSEP 1
-#define HAVE_STRSEP 1
-#define HAVE_STRSPN 1
-#define HAVE_STRSTR 1
-#define HAVE_STRTOK 1
-#define HAVE_SYS_CYGWIN_H 0
-#define HAVE_SYS_MMAN_H 1
-#define HAVE_SYS_STAT_H 1
-#define HAVE_SYS_TYPES_H 1
-#define HAVE_SYS_TYPES_H 1
-#define HAVE_TIME 1
-#define HAVE_UNISTD_H 1
-#define HAVE_UNISTD_H 1
-#define HAVE_VALLOC 1
-#define HAVE_VPRINTF 1
-#define HAVE_VSNPRINTF 1
-#define HAVE_W32API_WINBASE_H 0
-#define HAVE_W32API_WINDEF_H 0
-#define IDENT_WORKS 1
-#define PACKAGE_BUGREPORT "http://dmalloc.com/"
-#define PACKAGE_NAME "dmalloc"
-#define PACKAGE_STRING "dmalloc 5.5.2"
-#define PACKAGE_TARNAME "dmalloc"
-#define PACKAGE_VERSION "5.5.2"
-#define PROTECT_ALLOWED 1
-#define RETSIGTYPE void
-#define RETURN_MACROS_WORK 1
-#define SIGNAL_OKAY 1
-#define SIZEOF_LONG 8
-#define STDC_HEADERS 1
-#define THREAD_LOCK_INIT_VAL 0
-#define THREAD_MUTEX_T pthread_mutex_t
-#define USE_MMAP 1
-#endif
-#ifdef __cplusplus
-extern "C" void exit (int);
-
-configure: exit 0
diff --git a/dmalloc-5.5.2/.svn/text-base/config.status.svn-base b/dmalloc-5.5.2/.svn/text-base/config.status.svn-base
deleted file mode 100644
index 6b67cf2..0000000
--- a/dmalloc-5.5.2/.svn/text-base/config.status.svn-base
+++ /dev/null
@@ -1,1389 +0,0 @@
-#! /bin/sh
-# Generated by configure.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=${CONFIG_SHELL-/bin/sh}
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
- set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- $as_unset $as_var
- fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)$' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
- /^X\/\(\/\/\)$/{ s//\1/; q; }
- /^X\/\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" || {
- # Find who we are. Look in the path if we contain no path at all
- # relative or not.
- case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
- ;;
- esac
- # We did not find ourselves, most probably we were run as `sh COMMAND'
- # in which case we are not to be found in the path.
- if test "x$as_myself" = x; then
- as_myself=$0
- fi
- if test ! -f "$as_myself"; then
- { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
- { (exit 1); exit 1; }; }
- fi
- case $CONFIG_SHELL in
- '')
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for as_base in sh bash ksh sh5; do
- case $as_dir in
- /*)
- if ("$as_dir/$as_base" -c '
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
- CONFIG_SHELL=$as_dir/$as_base
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
- fi;;
- esac
- done
-done
-;;
- esac
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line before each line; the second 'sed' does the real
- # work. The second script uses 'N' to pair each line-number line
- # with the numbered line, and appends trailing '-' during
- # substitution so that $LINENO is not a special case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
- sed '=' <$as_myself |
- sed '
- N
- s,$,-,
- : loop
- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
- t loop
- s,-$,,
- s,^['$as_cr_digits']*\n,,
- ' >$as_me.lineno &&
- chmod +x $as_me.lineno ||
- { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensible to this).
- . ./$as_me.lineno
- # Exit status is that of the last command.
- exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
- *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T=' ' ;;
- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- # We could just check for DJGPP; but this test a) works b) is more generic
- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
- if test -f conf$$.exe; then
- # Don't use ln at all; we don't have any links
- as_ln_s='cp -p'
- else
- as_ln_s='ln -s'
- fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling. Logging --version etc. is OK.
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by dmalloc $as_me 5.5.2, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-config_files=" Makefile"
-config_headers=" conf.h"
-config_commands=" dmalloc.h.2 settings.h"
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
- -h, --help print this help, then exit
- -V, --version print version number, then exit
- -q, --quiet do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to ."
-ac_cs_version="\
-dmalloc config.status 5.5.2
-configured by ./configure, generated by GNU Autoconf 2.59,
- with options \"\"
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=.
-INSTALL="/opt/local/bin/ginstall -c"
-# If no file are specified by the user, then we need to provide default
-# value. By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=*)
- ac_option=`expr "x$1" : 'x\([^=]*\)='`
- ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- -*)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- *) # This is not an option, so the user has probably given explicit
- # arguments.
- ac_option=$1
- ac_need_defaults=false;;
- esac
-
- case $ac_option in
- # Handling of the options.
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --vers* | -V )
- echo "$ac_cs_version"; exit 0 ;;
- --he | --h)
- # Conflict between --help and --header
- { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
- { (exit 1); exit 1; }; };;
- --help | --hel | -h )
- echo "$ac_cs_usage"; exit 0 ;;
- --debug | --d* | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- CONFIG_FILES="$CONFIG_FILES $ac_optarg"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
- ac_need_defaults=false;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
- { (exit 1); exit 1; }; } ;;
-
- *) ac_config_targets="$ac_config_targets $1" ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-if $ac_cs_recheck; then
- echo "running /bin/sh ./configure " $ac_configure_extra_args " --no-create --no-recursion" >&6
- exec /bin/sh ./configure $ac_configure_extra_args --no-create --no-recursion
-fi
-
-#
-# INIT-COMMANDS section.
-#
-
-
-# initialization commands
-ac_cv_c_const=yes
-ac_cv_strdup_macro=no
-ac_cv_type_size_t=yes
-ac_cv_header_stdarg_h=yes
-
-
-for ac_config_target in $ac_config_targets
-do
- case "$ac_config_target" in
- # Handling of arguments.
- "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "dmalloc.h.2" ) CONFIG_COMMANDS="$CONFIG_COMMANDS dmalloc.h.2" ;;
- "settings.h" ) CONFIG_COMMANDS="$CONFIG_COMMANDS settings.h" ;;
- "conf.h" ) CONFIG_HEADERS="$CONFIG_HEADERS conf.h" ;;
- *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason to put it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
- trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
- trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
- test -n "$tmp" && test -d "$tmp"
-} ||
-{
- tmp=./confstat$$-$RANDOM
- (umask 077 && mkdir $tmp)
-} ||
-{
- echo "$me: cannot create a temporary directory in ." >&2
- { (exit 1); exit 1; }
-}
-
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "$CONFIG_FILES"; then
- # Protect against being on the right side of a sed subst in config.status.
- sed 's/,@/@@/; s/@,/@@/; s/,;t t$/@;t t/; /@;t t$/s/[\\&,]/\\&/g;
- s/@@/,@/; s/@@/@,/; s/@;t t$/,;t t/' >$tmp/subs.sed <<\CEOF
-s,@SHELL@,/bin/sh,;t t
-s,@PATH_SEPARATOR@,:,;t t
-s,@PACKAGE_NAME@,dmalloc,;t t
-s,@PACKAGE_TARNAME@,dmalloc,;t t
-s,@PACKAGE_VERSION@,5.5.2,;t t
-s,@PACKAGE_STRING@,dmalloc 5.5.2,;t t
-s,@PACKAGE_BUGREPORT@,http://dmalloc.com/,;t t
-s,@exec_prefix@,${prefix},;t t
-s,@prefix@,/usr/local,;t t
-s,@program_transform_name@,s,x,x,,;t t
-s,@bindir@,${exec_prefix}/bin,;t t
-s,@sbindir@,${exec_prefix}/sbin,;t t
-s,@libexecdir@,${exec_prefix}/libexec,;t t
-s,@datadir@,${prefix}/share,;t t
-s,@sysconfdir@,${prefix}/etc,;t t
-s,@sharedstatedir@,${prefix}/com,;t t
-s,@localstatedir@,${prefix}/var,;t t
-s,@libdir@,${exec_prefix}/lib,;t t
-s,@includedir@,${prefix}/include,;t t
-s,@oldincludedir@,/usr/include,;t t
-s,@infodir@,${prefix}/info,;t t
-s,@mandir@,${prefix}/man,;t t
-s,@build_alias@,,;t t
-s,@host_alias@,,;t t
-s,@target_alias@,,;t t
-s,@DEFS@,-DHAVE_CONFIG_H,;t t
-s,@ECHO_C@,\c,;t t
-s,@ECHO_N@,,;t t
-s,@ECHO_T@,,;t t
-s,@LIBS@,,;t t
-s,@CC@,gcc,;t t
-s,@CFLAGS@,-g -O2,;t t
-s,@LDFLAGS@,,;t t
-s,@CPPFLAGS@,,;t t
-s,@ac_ct_CC@,gcc,;t t
-s,@EXEEXT@,,;t t
-s,@OBJEXT@,o,;t t
-s,@CXX@,g++,;t t
-s,@CXXFLAGS@,-g -O2,;t t
-s,@ac_ct_CXX@,g++,;t t
-s,@INSTALL_PROGRAM@,${INSTALL},;t t
-s,@INSTALL_SCRIPT@,${INSTALL},;t t
-s,@INSTALL_DATA@,${INSTALL} -m 644,;t t
-s,@RANLIB@,ranlib,;t t
-s,@ac_ct_RANLIB@,ranlib,;t t
-s,@CPP@,gcc -E,;t t
-s,@EGREP@,grep -E,;t t
-s,@HAVE_STDARG_H@,1,;t t
-s,@HAVE_STDLIB_H@,1,;t t
-s,@HAVE_STRING_H@,1,;t t
-s,@HAVE_UNISTD_H@,1,;t t
-s,@HAVE_SYS_TYPES_H@,1,;t t
-s,@HAVE_SYS_MMAN_H@,1,;t t
-s,@shlibdir@,${exec_prefix}/lib,;t t
-s,@shlinkargs@,$(CXX) -dynamiclib -install_name $@ -compatibility_version 1 -current_version 1 -o $@.t,;t t
-s,@shlibext@,dylib,;t t
-s,@CXX_ON@,#,;t t
-s,@CXX_OFF@,,;t t
-s,@TH_ON@,#,;t t
-s,@TH_OFF@,,;t t
-s,@SL_ON@,#,;t t
-s,@SL_OFF@,,;t t
-s,@HAVE_SIGNAL_H@,1,;t t
-s,@HAVE_SYS_CYGWIN_H@,0,;t t
-s,@HAVE_W32API_WINDEF_H@,0,;t t
-s,@HAVE_W32API_WINBASE_H@,0,;t t
-s,@HAVE_PTHREAD_H@,1,;t t
-s,@HAVE_PTHREADS_H@,0,;t t
-s,@LIBOBJS@,,;t t
-s,@LTLIBOBJS@,,;t t
-CEOF
-
- # Split the substitutions into bite-sized pieces for seds with
- # small command number limits, like on Digital OSF/1 and HP-UX.
- ac_max_sed_lines=48
- ac_sed_frag=1 # Number of current file.
- ac_beg=1 # First line for current file.
- ac_end=$ac_max_sed_lines # Line after last line for current file.
- ac_more_lines=:
- ac_sed_cmds=
- while $ac_more_lines; do
- if test $ac_beg -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
- else
- sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
- fi
- if test ! -s $tmp/subs.frag; then
- ac_more_lines=false
- else
- # The purpose of the label and of the branching condition is to
- # speed up the sed processing (if there are no `@' at all, there
- # is no need to browse any of the substitutions).
- # These are the two extra sed commands mentioned above.
- (echo ':t
- /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
- else
- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
- fi
- ac_sed_frag=`expr $ac_sed_frag + 1`
- ac_beg=$ac_end
- ac_end=`expr $ac_end + $ac_max_sed_lines`
- fi
- done
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
- fi
-fi # test -n "$CONFIG_FILES"
-
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case $ac_file in
- - | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- * ) ac_file_in=$ac_file.in ;;
- esac
-
- # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
- esac
-
- if test x"$ac_file" != x-; then
- { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
- rm -f "$ac_file"
- fi
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- if test x"$ac_file" = x-; then
- configure_input=
- else
- configure_input="$ac_file. "
- fi
- configure_input=$configure_input"Generated from `echo $ac_file_in |
- sed 's,.*/,,'` by configure."
-
- # First look for the input files in the build tree, otherwise in the
- # src tree.
- ac_file_inputs=`IFS=:
- for f in $ac_file_in; do
- case $f in
- -) echo $tmp/stdin ;;
- [\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- echo "$f";;
- *) # Relative
- if test -f "$f"; then
- # Build tree
- echo "$f"
- elif test -f "$srcdir/$f"; then
- # Source tree
- echo "$srcdir/$f"
- else
- # /dev/null tree
- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- fi;;
- esac
- done` || { (exit 1); exit 1; }
- sed "/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[ ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[ ]*$//;
-}
-
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;t t
-s,@srcdir@,$ac_srcdir,;t t
-s,@abs_srcdir@,$ac_abs_srcdir,;t t
-s,@top_srcdir@,$ac_top_srcdir,;t t
-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s,@builddir@,$ac_builddir,;t t
-s,@abs_builddir@,$ac_abs_builddir,;t t
-s,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-s,@INSTALL@,$ac_INSTALL,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
- rm -f $tmp/stdin
- if test x"$ac_file" != x-; then
- mv $tmp/out $ac_file
- else
- cat $tmp/out
- rm -f $tmp/out
- fi
-
-done
-
-#
-# CONFIG_HEADER section.
-#
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='[ ].*$,\1#\2'
-ac_dC=' '
-ac_dD=',;t'
-# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_uB='$,\1#\2define\3'
-ac_uC=' '
-ac_uD=',;t'
-
-for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case $ac_file in
- - | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- * ) ac_file_in=$ac_file.in ;;
- esac
-
- test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-
- # First look for the input files in the build tree, otherwise in the
- # src tree.
- ac_file_inputs=`IFS=:
- for f in $ac_file_in; do
- case $f in
- -) echo $tmp/stdin ;;
- [\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- # Do quote $f, to prevent DOS paths from being IFS'd.
- echo "$f";;
- *) # Relative
- if test -f "$f"; then
- # Build tree
- echo "$f"
- elif test -f "$srcdir/$f"; then
- # Source tree
- echo "$srcdir/$f"
- else
- # /dev/null tree
- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- fi;;
- esac
- done` || { (exit 1); exit 1; }
- # Remove the trailing spaces.
- sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
-
- # Handle all the #define templates only if necessary.
- if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then
- # If there are no defines, we may have an empty if/fi
- :
- cat >$tmp/defines.sed <$tmp/out
- rm -f $tmp/in
- mv $tmp/out $tmp/in
-
- cat >$tmp/defines.sed <$tmp/out
- rm -f $tmp/in
- mv $tmp/out $tmp/in
-
- cat >$tmp/defines.sed <$tmp/out
- rm -f $tmp/in
- mv $tmp/out $tmp/in
-
- fi # grep
-
- # Handle all the #undef templates
- cat >$tmp/undefs.sed <$tmp/out
- rm -f $tmp/in
- mv $tmp/out $tmp/in
-
- cat >$tmp/undefs.sed <$tmp/out
- rm -f $tmp/in
- mv $tmp/out $tmp/in
-
- cat >$tmp/undefs.sed <$tmp/out
- rm -f $tmp/in
- mv $tmp/out $tmp/in
-
- cat >$tmp/undefs.sed <$tmp/out
- rm -f $tmp/in
- mv $tmp/out $tmp/in
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- if test x"$ac_file" = x-; then
- echo "/* Generated by configure. */" >$tmp/config.h
- else
- echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
- fi
- cat $tmp/in >>$tmp/config.h
- rm -f $tmp/in
- if test x"$ac_file" != x-; then
- if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
- { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-echo "$as_me: $ac_file is unchanged" >&6;}
- else
- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- rm -f $ac_file
- mv $tmp/config.h $ac_file
- fi
- else
- cat $tmp/config.h
- rm -f $tmp/config.h
- fi
-done
-
-#
-# CONFIG_COMMANDS section.
-#
-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
- ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
- ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_dest" : 'X\(//\)[^/]' \| \
- X"$ac_dest" : 'X\(//\)$' \| \
- X"$ac_dest" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_dest" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
-
- { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
-echo "$as_me: executing $ac_dest commands" >&6;}
- case $ac_dest in
- dmalloc.h.2 )
-newfile=dmalloc.h.2
-rm -f $newfile.t
-echo '/* this is dmalloc.h.2 */' > $newfile.t
-echo '/* produced by configure, inserted into dmalloc.h */' >> $newfile.t
-echo '' >> $newfile.t
-
-if test "$ac_cv_c_const" = "yes"; then
- echo '/* const is available */' >> $newfile.t
-else
- echo '/* const is not available */' >> $newfile.t
- echo '#ifndef const' >> $newfile.t
- echo '#define const' >> $newfile.t
- echo '#endif' >> $newfile.t
-fi
-
-if test "$ac_cv_strdup_macro" = "yes"; then
- echo '/* strdup is a macro */' >> $newfile.t
- echo '#define DMALLOC_STRDUP_MACRO' >> $newfile.t
-else
- echo '/* strdup is not a macro */' >> $newfile.t
- echo '#undef DMALLOC_STRDUP_MACRO' >> $newfile.t
-fi
-echo '' >> $newfile.t
-
-echo '/*' >> $newfile.t
-echo ' * the definition of DMALLOC_SIZE' >> $newfile.t
-echo ' *' >> $newfile.t
-echo ' * NOTE: some architectures have malloc, realloc, etc.' >> $newfile.t
-echo ' * using unsigned instead of unsigned long. You may' >> $newfile.t
-echo ' * have to edit this by hand to fix any compilation' >> $newfile.t
-echo ' * warnings or errors.' >> $newfile.t
-echo ' */' >> $newfile.t
-if test "$ac_cv_type_size_t" = "yes"; then
- echo "#include " >> $newfile.t
- echo "#define DMALLOC_SIZE size_t" >> $newfile.t
-else
- echo "/* no include file needed */" >> $newfile.t
- echo "#define DMALLOC_SIZE unsigned long" >> $newfile.t
-fi
-echo '' >> $newfile.t
-echo '/*' >> $newfile.t
-echo ' * We use stdarg.h for the dmalloc_message and' >> $newfile.t
-echo ' * dmalloc_vmessage functions.' >> $newfile.t
-echo ' */' >> $newfile.t
-if test "$ac_cv_header_stdarg_h" = "yes"; then
- echo "#include " >> $newfile.t
- echo "#define DMALLOC_STDARG 1" >> $newfile.t
-else
- echo "/* no stdarg.h available */" >> $newfile.t
- echo "#define DMALLOC_STDARG 0" >> $newfile.t
-fi
-echo '' >> $newfile.t
-if cmp -s $newfile $newfile.t 2>/dev/null; then
- { echo "$as_me:$LINENO: $newfile is unchanged" >&5
-echo "$as_me: $newfile is unchanged" >&6;}
- rm -f $newfile.t
-else
- rm -f $newfile
- mv $newfile.t $newfile
-fi
- ;;
- settings.h )
-newfile=settings.h
-rm -f $newfile.t
-echo '/*' > $newfile.t
-echo ' * WARNING: this file was produced from settings.dist' >> $newfile.t
-echo ' * by the configure program. The configure script, when' >> $newfile.t
-echo ' * run again, will overwrite changed made here.' >> $newfile.t
-echo ' */' >> $newfile.t
-echo '' >> $newfile.t
-cat $srcdir/settings.dist >> $newfile.t
-
-if cmp -s $newfile.t $newfile 2>/dev/null; then
- { echo "$as_me:$LINENO: $newfile is unchanged" >&5
-echo "$as_me: $newfile is unchanged" >&6;}
- rm -f $newfile.t
-else
- rm -f $newfile
- mv $newfile.t $newfile
-fi
- ;;
- esac
-done
-
-{ (exit 0); exit 0; }
diff --git a/dmalloc-5.5.2/.svn/text-base/configure.ac.svn-base b/dmalloc-5.5.2/.svn/text-base/configure.ac.svn-base
deleted file mode 100644
index 5e4d6d0..0000000
--- a/dmalloc-5.5.2/.svn/text-base/configure.ac.svn-base
+++ /dev/null
@@ -1,837 +0,0 @@
-#
-# Process this file with autoconf to produce a configure script.
-#
-# Copyright 2003 by Gray Watson
-#
-# This file is part of the dmalloc package.
-#
-# Permission to use, copy, modify, and distribute this software for
-# any purpose and without fee is hereby granted, provided that the
-# above copyright notice and this permission notice appear in all
-# copies, and that the name of Gray Watson not be used in
-# advertising or publicity pertaining to distribution of the
-# document or software without specific, written prior permission.
-#
-# Gray Watson makes no representations about the suitability of the
-# software described herein for any purpose. It is provided "as is"
-# without express or implied warranty.
-#
-# The author may be contacted via http://dmalloc.com/
-#
-# $Id: configure.ac,v 1.37 2007/05/14 17:23:37 gray Exp $
-#
-AC_REVISION($Revision: 1.37 $)
-AC_INIT(dmalloc, 5.5.2, [http://dmalloc.com/])
-AC_CONFIG_SRCDIR(dmalloc.c)
-AC_CONFIG_HEADER(conf.h)
-
-AC_MSG_NOTICE([configurations for the dmalloc library])
-
-##############################################################################
-# arguments
-
-AC_ARG_ENABLE(cxx,
- [ AC_HELP_STRING([--disable-cxx],
- [do not build in C++ support (enabled by default)] ) ],
- [ # enable_cxx set by default ],
- [ enable_cxx=yes ]
-)
-AC_ARG_ENABLE(threads,
- [ AC_HELP_STRING([--enable-threads],
- [build in thread support (disabled by default)] ) ],
- [ # enable_threads set by default ],
- [ enable_threads=no ]
-)
-AC_ARG_ENABLE(shlib,
- [ AC_HELP_STRING([--enable-shlib],
- [build shared libraries (disabled by default)] ) ],
- [ # enable_shlib set by default ],
- [ enable_shlib=no ]
-)
-
-##############################################################################
-AC_MSG_NOTICE([build utilities])
-
-AC_PROG_CC
-AC_PROG_CXX
-
-# see if we actually have a CXX program
-if test "$ac_cv_prog_CXX" = "" -o ! -x "$ac_cv_prog_CXX"; then
- AC_MSG_WARN(could not find C++ compiler $ac_cv_prog_CXX)
- enable_cxx=no
-fi
-
-# hopefully we have a stdc c-compiler
-if test "$ac_cv_prog_cc_stdc" = "no" ; then
- AC_MSG_WARN()
- AC_MSG_WARN(no ansi compiler. this build may fail.)
- AC_MSG_WARN()
-fi
-AC_PROG_INSTALL
-AC_PROG_RANLIB
-AC_C_CONST
-
-# we need this for various settings
-AC_HEADER_STDC
-AC_CHECK_HEADER([stdarg.h],
- [AC_DEFINE(HAVE_STDARG_H,1) AC_SUBST([HAVE_STDARG_H],1)],
- [AC_DEFINE(HAVE_STDARG_H,0) AC_SUBST([HAVE_STDARG_H],0)])
-AC_CHECK_HEADER([stdlib.h],
- [AC_DEFINE(HAVE_STDLIB_H,1) AC_SUBST([HAVE_STDLIB_H],1)],
- [AC_DEFINE(HAVE_STDLIB_H,0) AC_SUBST([HAVE_STDLIB_H],0)])
-AC_CHECK_HEADER([string.h],
- [AC_DEFINE(HAVE_STRING_H,1) AC_SUBST([HAVE_STRING_H],1)],
- [AC_DEFINE(HAVE_STRING_H,0) AC_SUBST([HAVE_STRING_H],0)])
-AC_CHECK_HEADER([unistd.h],
- [AC_DEFINE(HAVE_UNISTD_H,1) AC_SUBST([HAVE_UNISTD_H],1)],
- [AC_DEFINE(HAVE_UNISTD_H,0) AC_SUBST([HAVE_UNISTD_H],0)])
-AC_CHECK_HEADER([sys/types.h],
- [AC_DEFINE(HAVE_SYS_TYPES_H,1) AC_SUBST([HAVE_SYS_TYPES_H],1)],
- [AC_DEFINE(HAVE_SYS_TYPES_H,0) AC_SUBST([HAVE_SYS_TYPES_H],0)])
-AC_CHECK_HEADER([sys/mman.h],
- [AC_DEFINE(HAVE_SYS_MMAN_H,1) AC_SUBST([HAVE_SYS_MMAN_H],1)],
- [AC_DEFINE(HAVE_SYS_MMAN_H,0) AC_SUBST([HAVE_SYS_MMAN_H],0)])
-
-###############################################################################
-# shared library handling
-
-#
-# check to see where we should install our shared libraries
-# DONT CACHE in case the change the --prefix
-#
-# This is pretty tricky here and should be handled by autoconf
-# automatically. I try to see if there is a shlib directory
-# to install by shlibs there. If not I use the $libdir. Some
-# of the variables have values of '${exec_prefix}' and the like
-# so the quoting is very important.
-#
-# We first try and find the true directory where we are
-# installing.
-#
-if test "x$exec_prefix" = xNONE; then
- if test "x$prefix" = xNONE; then
- shlibprefix="$ac_default_prefix"
- else
- shlibprefix="$prefix"
- fi
-else
- shlibprefix="$exec_prefix"
-fi
-#
-# Then we see if there is a special shlib directory to use.
-#
-if test -d $shlibprefix/shlib; then
- shlibdir='${exec_prefix}/shlib'
-else
- shlibdir="$libdir"
-fi
-AC_SUBST(shlibdir)
-
-# see how the local system builds shared libraries
-AC_MSG_CHECKING([shared library link args])
-AC_COMPILE_IFELSE([ int foo(int val) { return val + 1; } ],[
- # so now we try to create an archive from the compiled .o file
- (ar cr conftest.a conftest.o) 2>&5
- # see which shared-library ld commands work
- #
- # Darwin/Mac OS X - Terry Teague
- # username terry_teague at domain users.sourceforge.net
- ac_cv_shared_lib_link_objs=no
- if test `uname` = "Darwin"; then
- if (ld -dylib -o conftest.so.t -lc conftest.a) 2>&5; then
- # By convention on some platforms
- # libLLL.so, libLLL.X.so are symlinks to libLLL.X.Y.Z.so
- # where X.Y.Z is version # (major.minor.increment) of the library
- # (API)
- # For the moment set the Mac OS X dylib compatibility version # to
- # 1.0 and don't create any symlinks or versioned library names.
- # Perhaps this could be the version of the dmalloc library
- # (e.g. 5.4.0)
- ac_cv_shared_link_args='$(CXX) -dynamiclib -install_name $@ -compatibility_version 1 -current_version 1 -o $@.t'
- # linking static archives into a dynamic lib doesn't seem to work
- # explicitly link the object files
- ac_cv_shared_lib_link_objs=yes
- else
- # oh well, toss an error
- ac_cv_shared_link_args='# Could not configure shlib linking'
- enable_shlib=no
- fi
- elif (ld -shared --whole-archive -soname conftest.so -o conftest.so.t conftest.a) 2>&5; then
- ac_cv_shared_link_args='ld -shared --whole-archive -soname $@ -o $@.t'
- elif (ld -shared -o conftest.so.t -all -soname conftest.so.t -none -lc -all conftest.a) 2>&5; then
- ac_cv_shared_link_args='ld -shared -o $@.t -all -soname $@ -none -lc -all'
- elif (ld -G -o conftest.so.t conftest.a) 2>&5; then
- ac_cv_shared_link_args='ld -G -o $@.t'
- else
- # oh well, toss an error
- ac_cv_shared_link_args='# Could not configure shlib linking'
- enable_shlib=no
- fi
-],[
- # oh well, toss an error
- ac_cv_shared_link_args='# Could not configure shlib linking'
- enable_shlib=no
-])
-shlinkargs="$ac_cv_shared_link_args"
-AC_SUBST(shlinkargs)
-if test "$ac_cv_shared_lib_link_objs" = "yes"; then
- AC_MSG_RESULT([$ac_cv_shared_link_args objectfiles...])
-else
- AC_MSG_RESULT([$ac_cv_shared_link_args])
-fi
-
-###############################################################################
-
-AC_MSG_CHECKING([shared library extension])
-if test `uname` = "Darwin"; then
- # Darwin/Mac OS X - Terry Teague
- # username terry_teague at domain users.sourceforge.net
- ac_cv_shared_lib_suffix=dylib
-else
- ac_cv_shared_lib_suffix=so
-fi
-shlibext="$ac_cv_shared_lib_suffix"
-AC_MSG_RESULT([$ac_cv_shared_lib_suffix])
-AC_SUBST(shlibext)
-
-###############################################################################
-
-AC_MSG_CHECKING([C++ support])
-if test "$enable_cxx" = "yes"; then
- AC_SUBST([CXX_ON],[])
- AC_SUBST([CXX_OFF],[#])
- AC_MSG_RESULT([enabled])
-else
- AC_SUBST([CXX_ON],[#])
- AC_SUBST([CXX_OFF],[])
- AC_MSG_RESULT([disabled])
-fi
-
-AC_MSG_CHECKING([thread support])
-if test "$enable_threads" = "yes"; then
- AC_SUBST([TH_ON],[])
- AC_SUBST([TH_OFF],[#])
- AC_MSG_RESULT([enabled])
-else
- AC_SUBST([TH_ON],[#])
- AC_SUBST([TH_OFF],[])
- AC_MSG_RESULT([disabled])
-fi
-
-# shlib support
-AC_MSG_CHECKING(shlib support)
-if test "$enable_shlib" = "yes"; then
- AC_SUBST([SL_ON],[])
- AC_SUBST([SL_OFF],[#])
- AC_MSG_RESULT(enabled)
-else
- AC_SUBST([SL_ON],[#])
- AC_SUBST([SL_OFF],[])
- AC_MSG_RESULT(disabled)
-fi
-
-###############################################################################
-#
-# check for size_t
-#
-AC_TYPE_SIZE_T
-if test "$ac_cv_type_size_t" = "yes"; then
- AC_DEFINE(DMALLOC_SIZE,size_t)
-else
- AC_DEFINE(DMALLOC_SIZE,unsigned long)
-fi
-
-#
-# check for unsigned-ness
-#
-AC_MSG_CHECKING([dmalloc size unsigned])
-AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#if HAVE_SYS_TYPES_H
-# include
-#endif
-#if HAVE_STDLIB_H
-# include
-#endif
-main() { DMALLOC_SIZE x = -1; if (x >= 0) exit(0); else exit(1); }
-]])],
-[AC_DEFINE(DMALLOC_SIZE_UNSIGNED,1) AC_MSG_RESULT([yes])],
-[AC_DEFINE(DMALLOC_SIZE_UNSIGNED,0) AC_MSG_RESULT([no])],
-[AC_DEFINE(DMALLOC_SIZE_UNSIGNED,0) AC_MSG_RESULT([no])]
-)
-
-#
-# check for strdup macro (linux)
-#
-AC_MSG_CHECKING([strdup macro])
-AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#if HAVE_STDLIB_H
-# include
-#endif
-
-#ifdef strdup
-main() { exit(0); }
-#else
-main() { exit(1); }
-#endif
-]])],
-[ac_cv_strdup_macro=yes],
-[ac_cv_strdup_macro=no],
-[ac_cv_strdup_macro=no]
-)
-AC_MSG_RESULT([$ac_cv_strdup_macro])
-
-#
-# check for existance of mprotect and associated defines
-#
-AC_CHECK_FUNCS(mprotect)
-AC_MSG_CHECKING([mprotect works])
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#if HAVE_SYS_TYPES_H
-# include
-#endif
-#if HAVE_SYS_MMAN_H
-# include
-#endif
-]],[[
- int prot = PROT_NONE | PROT_READ | PROT_WRITE;
- (void)mprotect(0, 0, prot);
-]])],
-[ AC_DEFINE(PROTECT_ALLOWED,1) AC_MSG_RESULT([yes]) ],
-[ AC_DEFINE(PROTECT_ALLOWED,0) AC_MSG_RESULT([no]) ]
-)
-
-##############################################################################
-AC_MSG_NOTICE([important functionality])
-
-AC_CHECK_FUNCS(mmap)
-AC_CHECK_FUNCS(sbrk)
-
-if test x$ac_cv_func_mmap != xyes && x$ac_cv_func_sbrk != xyes; then
- AC_MSG_WARN()
- AC_MSG_WARN(no mmap nor sbrk function. See INTERNAL_MEMORY_SPACE in settings.dist.)
- AC_MSG_WARN()
-fi
-
-AC_MSG_CHECKING([mmap usage])
-AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#if HAVE_SYS_TYPES_H
-# include
-#endif
-#if HAVE_SYS_MMAN_H
-# include
-#endif
-main() {
- /* we could open /dev/zero and map to that but I did not want the library
- to open another file-descriptor */
- char *dest, *src, *src_p, *dest_p;
- src = "0123456789";
- dest = (char *)mmap(0L, 10, PROT_READ | PROT_WRITE | PROT_EXEC,
- MAP_PRIVATE | MAP_ANON, -1 /* no fd */,
- 0 /* no offset */);
- src_p = src; dest_p = dest;
- while (src_p < src + 10) { *dest_p++ = *src_p++; }
- src_p = src; dest_p = dest;
- while (src_p < src + 10) {
- if (*src_p++ != *dest_p++) { exit(1); }
- }
- exit(0);
-}
-]])],
-[ AC_DEFINE(USE_MMAP, 1) ac_cv_use_mmap=yes],
-[ AC_DEFINE(USE_MMAP, 0) ac_cv_use_mmap=no],
-[ AC_DEFINE(USE_MMAP, 0) ac_cv_use_mmap=no]
-)
-AC_MSG_RESULT([$ac_cv_use_mmap])
-
-#
-# check for basic block size
-#
-AC_CHECK_FUNCS(getpagesize)
-AC_MSG_CHECKING([basic-block size])
-ac_cv_page_size=0
-if test $ac_cv_page_size = 0; then
- AC_RUN_IFELSE([main() { if (getpagesize()<=2048) exit(0); else exit(1); }],
- [ ac_cv_page_size=11 ] )
-fi
-if test $ac_cv_page_size = 0; then
- AC_RUN_IFELSE([main() { if (getpagesize()<=4096) exit(0); else exit(1); }],
- [ ac_cv_page_size=12 ] )
-fi
-if test $ac_cv_page_size = 0; then
- AC_RUN_IFELSE([main() { if (getpagesize()<=8192) exit(0); else exit(1); }],
- [ ac_cv_page_size=13 ] )
-fi
-if test $ac_cv_page_size = 0; then
- AC_RUN_IFELSE([main() { if (getpagesize()<=16384) exit(0); else exit(1); }],
- [ ac_cv_page_size=14 ] )
-fi
-if test $ac_cv_page_size = 0; then
- ac_cv_page_size=15
-fi
-AC_DEFINE_UNQUOTED([BASIC_BLOCK],[$ac_cv_page_size])
-AC_MSG_RESULT([$ac_cv_page_size])
-
-#
-# data-alignment size...
-#
-AC_CHECK_SIZEOF(long)
-AC_MSG_CHECKING([data-alignment size])
-if test $ac_cv_sizeof_long = 4; then
- # we have to make a special case for sun sparc idiocy
- ac_cv_data_align=8
-else
- ac_cv_data_align=$ac_cv_sizeof_long
-fi
-AC_DEFINE_UNQUOTED([ALLOCATION_ALIGNMENT],[$ac_cv_data_align])
-AC_MSG_RESULT([$ac_cv_data_align])
-
-#
-# check the safety of the abort function
-#
-AC_CHECK_FUNCS(abort)
-AC_MSG_CHECKING([abort safe])
-AC_RUN_IFELSE([[
-static int main_b = 0;
-static char heap_mem[102400], *heap_p = heap_mem;
-free () { if (main_b) _exit(0); }
-char *malloc (int size) {
- char *pnt;
- if (main_b) _exit(0);
- pnt = heap_p;
- heap_p += size;
- return pnt;
-}
-char *calloc (int number, int size) {
- char *start, *pnt, *end;
- if (main_b) _exit(0);
- /* it should be already 0s */
- start = malloc (number * size);
- pnt = start;
- end = start + size;
- while (pnt < end) { *pnt++ = '\0'; }
- return start;
-}
-char *realloc (char *old_pnt, int new_size) {
- char *start, *pnt, *end;
- if (main_b) _exit(0);
- start = malloc (new_size);
- pnt = start;
- end = start + new_size;
- while (pnt < end) { *pnt++ = *old_pnt++; }
- return start;
-}
-main() { main_b = 1; abort(); _exit(1); }
-]],
-# NOTE: this is reversed because abort core dumps and doesn't exit with
-# 0 which means that it should fail
-[ AC_DEFINE(ABORT_OKAY, 0) AC_MSG_RESULT([no]) ],
-# if it succeeds then something called free on the way out
-[ AC_DEFINE(ABORT_OKAY, 1) AC_MSG_RESULT([yes]) ],
-[ AC_DEFINE(ABORT_OKAY, 0) AC_MSG_RESULT([no]) ]
-)
-
-AC_TYPE_SIGNAL
-AC_MSG_CHECKING([signal works])
-AC_CHECK_HEADER([signal.h],
- [AC_DEFINE(HAVE_SIGNAL_H,1) AC_SUBST([HAVE_SIGNAL_H],1)],
- [AC_DEFINE(HAVE_SIGNAL_H,0) AC_SUBST([HAVE_SIGNAL_H],0)])
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#if HAVE_SIGNAL_H
- #include
-#endif
-]], [[
- (void)signal(SIGHUP, SIG_IGN);
- (void)signal(SIGINT, SIG_IGN);
- (void)signal(SIGTERM, SIG_IGN);
-]])],
-[ AC_DEFINE(SIGNAL_OKAY, 1) AC_MSG_RESULT([yes]) ],
-[ AC_DEFINE(SIGNAL_OKAY, 0) AC_MSG_RESULT([no]) ]
-)
-
-#
-# check the safety of the getenv function
-#
-AC_CHECK_FUNCS(getenv)
-AC_MSG_CHECKING([getenv safe])
-AC_RUN_IFELSE([[
-static char heap_mem[102400], *heap_p = heap_mem;
-free (char *pnt) {
-}
-char *malloc (int size) {
- char *pnt;
- getenv("PATH");
- pnt = heap_p;
- heap_p += size;
- return pnt;
-}
-char *calloc (int number, int size) {
- char *start, *pnt, *end;
- getenv("PATH");
- /* it should be already 0s */
- start = malloc (number * size);
- pnt = start;
- end = start + size;
- while (pnt < end) { *pnt++ = '\0'; }
- return start;
-}
-char *realloc (char *old_pnt, int new_size) {
- char *start, *pnt, *end;
- getenv("PATH");
- start = malloc (new_size);
- pnt = start;
- end = start + new_size;
- while (pnt < end) { *pnt++ = *old_pnt++; }
- return start;
-}
-main() { malloc(10); _exit(0); }
-]],
-[ AC_DEFINE(GETENV_SAFE, 1)
- AC_MSG_RESULT([yes])
- getenv_safe=yes ],
-# if it succeeds then something called free on the way out
-[ AC_DEFINE(GETENV_SAFE, 0)
- AC_MSG_RESULT([no])
- getenv_safe=no ],
-[ AC_DEFINE(GETENV_SAFE, 1)
- AC_MSG_RESULT([yes])
- getenv_safe=yes ]
-)
-
-# now check to see if we can replace getenv with GetEnvironmentVariableA
-AC_CHECK_HEADER([sys/cygwin.h],
- [AC_DEFINE(HAVE_SYS_CYGWIN_H,1) AC_SUBST([HAVE_SYS_CYGWIN_H],1)],
- [AC_DEFINE(HAVE_SYS_CYGWIN_H,0) AC_SUBST([HAVE_SYS_CYGWIN_H],0)])
-AC_CHECK_HEADER([w32api/windef.h],
- [AC_DEFINE(HAVE_W32API_WINDEF_H,1) AC_SUBST([HAVE_W32API_WINDEF_H],1)],
- [AC_DEFINE(HAVE_W32API_WINDEF_H,0) AC_SUBST([HAVE_W32API_WINDEF_H],0)])
-AC_CHECK_HEADER([w32api/winbase.h],
- [AC_DEFINE(HAVE_W32API_WINBASE_H,1) AC_SUBST([HAVE_W32API_WINBASE_H],1)],
- [AC_DEFINE(HAVE_W32API_WINBASE_H,0) AC_SUBST([HAVE_W32API_WINBASE_H],0)],
- [[
-#if HAVE_W32API_WINDEF_H
-# include
-#endif]])
-AC_MSG_CHECKING([for GetEnvironmentVariableA])
-AC_RUN_IFELSE([[
-#if HAVE_SYS_CYGWIN_H
-# include
-#endif
-#if HAVE_STDARG_H
-# include
-#endif
-#if HAVE_W32API_WINDEF_H
-# include
-#endif
-#if HAVE_W32API_WINBASE_H
-# include
-#endif
-main() {
- char env_buf[256];
- GetEnvironmentVariableA("PATH", env_buf, sizeof(env_buf));
-}
-]],
-[ AC_DEFINE(HAVE_GETENVIRONMENTVARIABLEA, 1)
- AC_MSG_RESULT([yes])
- have_getenvironmentvariablea=yes ],
-[ AC_DEFINE(HAVE_GETENVIRONMENTVARIABLEA, 0)
- AC_MSG_RESULT([no])
- have_getenvironmentvariablea=no ],
-[ AC_DEFINE(HAVE_GETENVIRONMENTVARIABLEA, 1)
- AC_MSG_RESULT([yes])
- have_getenvironmentvariablea=yes ]
-)
-
-if test x$getenv_safe != xyes && x$have_getenvironmentvariablea != xyes ; then
- AC_MSG_WARN([Since getenv is not safe, you MUST add the following])
- AC_MSG_WARN([code to the front of main():])
- AC_MSG_WARN([[ #ifdef DMALLOC]])
- AC_MSG_WARN([[ dmalloc_debug_setup(getenv("DMALLOC_OPTIONS"));]])
- AC_MSG_WARN([[ #endif]])
- AC_MSG_WARN([You will need to compile your program with: -DDMALLOC])
-fi
-
-############
-
-#
-# check for constructor attribute support
-#
-AC_MSG_CHECKING([constructor attribute])
-AC_RUN_IFELSE([[
-/* if we call the loc_con constructor then exit with error code 0 */
-static void loc_con() __attribute__((constructor));
-static void loc_con() { exit(0); }
-int main() { exit(1); }
-]],
-[ AC_DEFINE(CONSTRUCTOR_WORKS, 1) AC_MSG_RESULT([yes]) ],
-[ AC_DEFINE(CONSTRUCTOR_WORKS, 0) AC_MSG_RESULT([no]) ],
-[ AC_DEFINE(CONSTRUCTOR_WORKS, 1) AC_MSG_RESULT([yes]) ]
-)
-
-#
-# check for destructor attribute support
-#
-AC_MSG_CHECKING([destructor attribute])
-AC_RUN_IFELSE([[
-/* if we call the loc_decon destructor then exit with error code 0 */
-static void loc_decon() __attribute__((destructor));
-static void loc_decon() { exit(0); }
-int main() { return 1; }
-]],
-[ AC_DEFINE(DESTRUCTOR_WORKS, 1)
- AC_MSG_RESULT([yes])
- destructor_works=yes ],
-[ AC_DEFINE(DESTRUCTOR_WORKS, 0)
- AC_MSG_RESULT([no])
- destructor_works=no ],
-[ AC_DEFINE(DESTRUCTOR_WORKS, 1)
- AC_MSG_RESULT([yes])
- destructor_works=yes ],
-)
-
-##############################################################################
-
-#
-# check if the return.h macros work
-#
-AC_MSG_CHECKING([return.h macros work])
-AC_RUN_IFELSE([
-
-#define __CONF_H__
-#define USE_RETURN_MACROS 1
-#define RETURN_MACROS_WORK 1
-
-#include "return.h"
-
-static void foo (void)
-{
- char *ret_addr;
- GET_RET_ADDR(ret_addr);
-}
-
-main()
-{
- foo();
- exit(0);
-}
-],
-[ AC_DEFINE(RETURN_MACROS_WORK, 1) AC_MSG_RESULT([yes]) ],
-[ AC_DEFINE(RETURN_MACROS_WORK, 0) AC_MSG_RESULT([no]) ],
-[ AC_DEFINE(RETURN_MACROS_WORK, 0) AC_MSG_RESULT([no]) ]
-)
-
-##############################################################################
-
-#
-# check to see if ident workds
-#
-AC_MSG_CHECKING([if ident works])
-AC_COMPILE_IFELSE([
-#ident "$Id: configure.ac,v 1.37 2007/05/14 17:23:37 gray Exp $"
-static void foo (void) { }
-],
-[AC_DEFINE(IDENT_WORKS, 1) AC_MSG_RESULT([yes])],
-[AC_DEFINE(IDENT_WORKS, 0) AC_MSG_RESULT([no])]
-)
-
-##############################################################################
-AC_MSG_NOTICE([pthread particulars])
-
-XX_OLD_LIBS=$LIBS
-
-AC_SEARCH_LIBS(pthread_mutex_init, pthread pthreads c_r)
-AC_CHECK_HEADER([pthread.h],
- [AC_DEFINE(HAVE_PTHREAD_H,1) AC_SUBST([HAVE_PTHREAD_H],1)],
- [AC_DEFINE(HAVE_PTHREAD_H,0) AC_SUBST([HAVE_PTHREAD_H],0)])
-AC_CHECK_HEADER([pthreads.h],
- [AC_DEFINE(HAVE_PTHREADS_H,1) AC_SUBST([HAVE_PTHREADS_H],1)],
- [AC_DEFINE(HAVE_PTHREADS_H,0) AC_SUBST([HAVE_PTHREADS_H],0)])
-
-AC_CHECK_FUNCS(pthread_mutex_init pthread_mutex_lock pthread_mutex_unlock)
-
-AC_MSG_CHECKING([pthread mutex type])
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#if HAVE_PTHREAD_H
-# include
-#endif
-#if HAVE_PTHREADS_H
-# include
-#endif
-]],[[
- pthread_mutex_t dmalloc_mutex;
-]])],
-[AC_DEFINE(THREAD_MUTEX_T,pthread_mutex_t) AC_MSG_RESULT([pthread_mutex_t])],
-[AC_MSG_RESULT([unknown])]
-)
-
-AC_MSG_CHECKING([pthread attribute initialization])
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#if HAVE_PTHREAD_H
-# include
-#endif
-#if HAVE_PTHREADS_H
-# include
-#endif
-]], [[
- THREAD_MUTEX_T dmalloc_mutex;
- pthread_mutex_init(&dmalloc_mutex, pthread_mutexattr_default);
-]])],
-[AC_DEFINE(THREAD_LOCK_INIT_VAL,pthread_mutexattr_default)
- AC_MSG_RESULT([pthread_mutexattr_default])],
-[AC_DEFINE(THREAD_LOCK_INIT_VAL,0)
- AC_MSG_RESULT([0])]
-)
-
-LIBS=$XX_OLD_LIBS
-
-##############################################################################
-AC_MSG_NOTICE([functions])
-
-# auto-shutdown functions
-AC_CHECK_FUNCS(atexit on_exit)
-if test $ac_cv_func_atexit = no \
- && test $ac_cv_func_on_exit = no \
- && test $destructor_works = no; then
- AC_MSG_WARN()
- AC_MSG_WARN(The library cannot automatically shut itself down without)
- AC_MSG_WARN(atexit, on_exit, or destructor support. You will need to)
- AC_MSG_WARN(call dmalloc_shutdown directly before exit to get get the)
- AC_MSG_WARN(final statistics and unfreed memory information.)
- AC_MSG_WARN()
-fi
-
-# other bells and whistles
-AC_CHECK_FUNCS(fork gethostname getpid getuid time ctime)
-AC_CHECK_FUNCS(vprintf snprintf vsnprintf)
-AC_CHECK_FUNCS(recalloc memalign valloc)
-
-# required although we have code for them in compat.c
-AC_CHECK_FUNCS(memcmp memcpy memmove memset)
-AC_CHECK_FUNCS(strchr strrchr)
-AC_CHECK_FUNCS(strlen strcmp strcpy strsep)
-
-##############################################################################
-AC_MSG_NOTICE([various functions for argv files])
-
-# NOTE: some duplicated from above
-AC_CHECK_FUNCS(atoi atol getenv)
-AC_CHECK_FUNCS(strchr strcmp strcpy strlen strncmp strncpy strsep)
-
-##############################################################################
-AC_MSG_NOTICE([various functions for argument checking])
-
-# NOTE: some duplicated from above
-AC_CHECK_FUNCS(atoi atol)
-AC_CHECK_FUNCS(bcmp bcopy bzero)
-AC_CHECK_FUNCS([[index]])
-AC_CHECK_FUNCS(memccpy memchr memcmp memcpy memmove memset)
-AC_CHECK_FUNCS(rindex)
-AC_CHECK_FUNCS(strcasecmp strcat strchr strcmp strcpy strcspn strlen)
-AC_CHECK_FUNCS(strncasecmp strncat strncmp strncpy)
-AC_CHECK_FUNCS(strpbrk strrchr strspn strstr strtok)
-
-AC_CONFIG_FILES(Makefile)
-
-AC_CONFIG_COMMANDS([dmalloc.h.2],
-[
-newfile=dmalloc.h.2
-rm -f $newfile.t
-echo '/* this is dmalloc.h.2 */' > $newfile.t
-echo '/* produced by configure, inserted into dmalloc.h */' >> $newfile.t
-echo '' >> $newfile.t
-
-if test "$ac_cv_c_const" = "yes"; then
- echo '/* const is available */' >> $newfile.t
-else
- echo '/* const is not available */' >> $newfile.t
- echo '#ifndef const' >> $newfile.t
- echo '#define const' >> $newfile.t
- echo '#endif' >> $newfile.t
-fi
-
-if test "$ac_cv_strdup_macro" = "yes"; then
- echo '/* strdup is a macro */' >> $newfile.t
- echo '#define DMALLOC_STRDUP_MACRO' >> $newfile.t
-else
- echo '/* strdup is not a macro */' >> $newfile.t
- echo '#undef DMALLOC_STRDUP_MACRO' >> $newfile.t
-fi
-echo '' >> $newfile.t
-
-echo '/*' >> $newfile.t
-echo ' * the definition of DMALLOC_SIZE' >> $newfile.t
-echo ' *' >> $newfile.t
-echo ' * NOTE: some architectures have malloc, realloc, etc.' >> $newfile.t
-echo ' * using unsigned instead of unsigned long. You may' >> $newfile.t
-echo ' * have to edit this by hand to fix any compilation' >> $newfile.t
-echo ' * warnings or errors.' >> $newfile.t
-echo ' */' >> $newfile.t
-if test "$ac_cv_type_size_t" = "yes"; then
- echo "#include " >> $newfile.t
- echo "#define DMALLOC_SIZE size_t" >> $newfile.t
-else
- echo "/* no include file needed */" >> $newfile.t
- echo "#define DMALLOC_SIZE unsigned long" >> $newfile.t
-fi
-echo '' >> $newfile.t
-echo '/*' >> $newfile.t
-echo ' * We use stdarg.h for the dmalloc_message and' >> $newfile.t
-echo ' * dmalloc_vmessage functions.' >> $newfile.t
-echo ' */' >> $newfile.t
-if test "$ac_cv_header_stdarg_h" = "yes"; then
- echo "#include " >> $newfile.t
- echo "#define DMALLOC_STDARG 1" >> $newfile.t
-else
- echo "/* no stdarg.h available */" >> $newfile.t
- echo "#define DMALLOC_STDARG 0" >> $newfile.t
-fi
-echo '' >> $newfile.t
-if cmp -s $newfile $newfile.t 2>/dev/null; then
- AC_MSG_NOTICE([$newfile is unchanged])
- rm -f $newfile.t
-else
- rm -f $newfile
- mv $newfile.t $newfile
-fi
-],
-[
-# initialization commands
-ac_cv_c_const=$ac_cv_c_const
-ac_cv_strdup_macro=$ac_cv_strdup_macro
-ac_cv_type_size_t=$ac_cv_type_size_t
-ac_cv_header_stdarg_h=$ac_cv_header_stdarg_h
-])
-
-AC_CONFIG_COMMANDS([settings.h],
-[
-newfile=settings.h
-rm -f $newfile.t
-echo '/*' > $newfile.t
-echo ' * WARNING: this file was produced from settings.dist' >> $newfile.t
-echo ' * by the configure program. The configure script, when' >> $newfile.t
-echo ' * run again, will overwrite changed made here.' >> $newfile.t
-echo ' */' >> $newfile.t
-echo '' >> $newfile.t
-cat $srcdir/settings.dist >> $newfile.t
-
-if cmp -s $newfile.t $newfile 2>/dev/null; then
- AC_MSG_NOTICE([$newfile is unchanged])
- rm -f $newfile.t
-else
- rm -f $newfile
- mv $newfile.t $newfile
-fi
-])
-AC_OUTPUT
-
-AC_MSG_NOTICE([])
-AC_MSG_NOTICE([Please check-out Makefile and conf.h to make sure that])
-AC_MSG_NOTICE([sane configuration values were a result.])
-AC_MSG_NOTICE([])
-AC_MSG_NOTICE([You may want to change values in settings.h before])
-AC_MSG_NOTICE([running 'make'.])
-AC_MSG_NOTICE([])
-AC_MSG_NOTICE([To run the basic library tests, you can execute:])
-AC_MSG_NOTICE([ make light])
-AC_MSG_NOTICE([or])
-AC_MSG_NOTICE([ make heavy])
-AC_MSG_NOTICE([])
diff --git a/dmalloc-5.5.2/.svn/text-base/configure.svn-base b/dmalloc-5.5.2/.svn/text-base/configure.svn-base
deleted file mode 100644
index da3ff44..0000000
--- a/dmalloc-5.5.2/.svn/text-base/configure.svn-base
+++ /dev/null
@@ -1,11110 +0,0 @@
-#! /bin/sh
-# From configure.ac Revision: 1.37 .
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for dmalloc 5.5.2.
-#
-# Report bugs to .
-#
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
- set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- $as_unset $as_var
- fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)$' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
- /^X\/\(\/\/\)$/{ s//\1/; q; }
- /^X\/\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" || {
- # Find who we are. Look in the path if we contain no path at all
- # relative or not.
- case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
- ;;
- esac
- # We did not find ourselves, most probably we were run as `sh COMMAND'
- # in which case we are not to be found in the path.
- if test "x$as_myself" = x; then
- as_myself=$0
- fi
- if test ! -f "$as_myself"; then
- { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
- { (exit 1); exit 1; }; }
- fi
- case $CONFIG_SHELL in
- '')
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for as_base in sh bash ksh sh5; do
- case $as_dir in
- /*)
- if ("$as_dir/$as_base" -c '
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
- CONFIG_SHELL=$as_dir/$as_base
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
- fi;;
- esac
- done
-done
-;;
- esac
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line before each line; the second 'sed' does the real
- # work. The second script uses 'N' to pair each line-number line
- # with the numbered line, and appends trailing '-' during
- # substitution so that $LINENO is not a special case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
- sed '=' <$as_myself |
- sed '
- N
- s,$,-,
- : loop
- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
- t loop
- s,-$,,
- s,^['$as_cr_digits']*\n,,
- ' >$as_me.lineno &&
- chmod +x $as_me.lineno ||
- { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensible to this).
- . ./$as_me.lineno
- # Exit status is that of the last command.
- exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
- *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T=' ' ;;
- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- # We could just check for DJGPP; but this test a) works b) is more generic
- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
- if test -f conf$$.exe; then
- # Don't use ln at all; we don't have any links
- as_ln_s='cp -p'
- else
- as_ln_s='ln -s'
- fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-exec 6>&1
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_config_libobj_dir=.
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete. It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
-# Identity of this package.
-PACKAGE_NAME='dmalloc'
-PACKAGE_TARNAME='dmalloc'
-PACKAGE_VERSION='5.5.2'
-PACKAGE_STRING='dmalloc 5.5.2'
-PACKAGE_BUGREPORT='http://dmalloc.com/'
-
-ac_unique_file="dmalloc.c"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include
-#if HAVE_SYS_TYPES_H
-# include
-#endif
-#if HAVE_SYS_STAT_H
-# include
-#endif
-#if STDC_HEADERS
-# include
-# include
-#else
-# if HAVE_STDLIB_H
-# include
-# endif
-#endif
-#if HAVE_STRING_H
-# if !STDC_HEADERS && HAVE_MEMORY_H
-# include
-# endif
-# include
-#endif
-#if HAVE_STRINGS_H
-# include
-#endif
-#if HAVE_INTTYPES_H
-# include
-#else
-# if HAVE_STDINT_H
-# include
-# endif
-#endif
-#if HAVE_UNISTD_H
-# include
-#endif"
-
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA RANLIB ac_ct_RANLIB CPP EGREP HAVE_STDARG_H HAVE_STDLIB_H HAVE_STRING_H HAVE_UNISTD_H HAVE_SYS_TYPES_H HAVE_SYS_MMAN_H shlibdir shlinkargs shlibext CXX_ON CXX_OFF TH_ON TH_OFF SL_ON SL_OFF HAVE_SIGNAL_H HAVE_SYS_CYGWIN_H HAVE_W32API_WINDEF_H HAVE_W32API_WINBASE_H HAVE_PTHREAD_H HAVE_PTHREADS_H LIBOBJS LTLIBOBJS'
-ac_subst_files=''
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-ac_prev=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
- fi
-
- ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_option in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
- eval "enable_$ac_feature=no" ;;
-
- -enable-* | --enable-*)
- ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
- case $ac_option in
- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_$ac_feature='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- case $ac_option in
- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
- eval "with_$ac_package='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
- ac_package=`echo $ac_package | sed 's/-/_/g'`
- eval "with_$ac_package=no" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; }
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
- { (exit 1); exit 1; }; }
- ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
- eval "$ac_envvar='$ac_optarg'"
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- { echo "$as_me: error: missing argument to $ac_option" >&2
- { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
- eval ac_val=$`echo $ac_var`
- case $ac_val in
- [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
- localstatedir libdir includedir oldincludedir infodir mandir
-do
- eval ac_val=$`echo $ac_var`
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) ;;
- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used." >&2
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then its parent.
- ac_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$0" : 'X\(//\)[^/]' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$0" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
- { (exit 1); exit 1; }; }
- else
- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
- { (exit 1); exit 1; }; }
- fi
-fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
- { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
- { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-ac_env_CC_set=${CC+set}
-ac_env_CC_value=$CC
-ac_cv_env_CC_set=${CC+set}
-ac_cv_env_CC_value=$CC
-ac_env_CFLAGS_set=${CFLAGS+set}
-ac_env_CFLAGS_value=$CFLAGS
-ac_cv_env_CFLAGS_set=${CFLAGS+set}
-ac_cv_env_CFLAGS_value=$CFLAGS
-ac_env_LDFLAGS_set=${LDFLAGS+set}
-ac_env_LDFLAGS_value=$LDFLAGS
-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
-ac_cv_env_LDFLAGS_value=$LDFLAGS
-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_env_CPPFLAGS_value=$CPPFLAGS
-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
-ac_env_CXX_set=${CXX+set}
-ac_env_CXX_value=$CXX
-ac_cv_env_CXX_set=${CXX+set}
-ac_cv_env_CXX_value=$CXX
-ac_env_CXXFLAGS_set=${CXXFLAGS+set}
-ac_env_CXXFLAGS_value=$CXXFLAGS
-ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set}
-ac_cv_env_CXXFLAGS_value=$CXXFLAGS
-ac_env_CPP_set=${CPP+set}
-ac_env_CPP_value=$CPP
-ac_cv_env_CPP_set=${CPP+set}
-ac_cv_env_CPP_value=$CPP
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures dmalloc 5.5.2 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-_ACEOF
-
- cat <<_ACEOF
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --datadir=DIR read-only architecture-independent data [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --infodir=DIR info documentation [PREFIX/info]
- --mandir=DIR man documentation [PREFIX/man]
-_ACEOF
-
- cat <<\_ACEOF
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of dmalloc 5.5.2:";;
- esac
- cat <<\_ACEOF
-
-Optional Features:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --disable-cxx do not build in C++ support (enabled by default)
- --enable-threads build in thread support (disabled by default)
- --enable-shlib build shared libraries (disabled by default)
-
-Some influential environment variables:
- CC C compiler command
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L if you have libraries in a
- nonstandard directory
- CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have
- headers in a nonstandard directory
- CXX C++ compiler command
- CXXFLAGS C++ compiler flags
- CPP C preprocessor
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to .
-_ACEOF
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- ac_popdir=`pwd`
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d $ac_dir || continue
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
- cd $ac_dir
- # Check for guested configure; otherwise get Cygnus style configure.
- if test -f $ac_srcdir/configure.gnu; then
- echo
- $SHELL $ac_srcdir/configure.gnu --help=recursive
- elif test -f $ac_srcdir/configure; then
- echo
- $SHELL $ac_srcdir/configure --help=recursive
- elif test -f $ac_srcdir/configure.ac ||
- test -f $ac_srcdir/configure.in; then
- echo
- $ac_configure --help
- else
- echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi
- cd $ac_popdir
- done
-fi
-
-test -n "$ac_init_help" && exit 0
-if $ac_init_version; then
- cat <<\_ACEOF
-dmalloc configure 5.5.2
-generated by GNU Autoconf 2.59
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit 0
-fi
-exec 5>config.log
-cat >&5 <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by dmalloc $as_me 5.5.2, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- echo "PATH: $as_dir"
-done
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_sep=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
- ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
- 2)
- ac_configure_args1="$ac_configure_args1 '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
- # Get rid of the leading space.
- ac_sep=" "
- ;;
- esac
- done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
- echo
- # The following way of writing the cache mishandles newlines in values,
-{
- (set) 2>&1 |
- case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- sed -n \
- "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
- ;;
- *)
- sed -n \
- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
- ;;
- esac;
-}
- echo
-
- cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=$`echo $ac_var`
- echo "$ac_var='"'"'$ac_val'"'"'"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- cat <<\_ASBOX
-## ------------- ##
-## Output files. ##
-## ------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=$`echo $ac_var`
- echo "$ac_var='"'"'$ac_val'"'"'"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
- echo
- sed "/^$/d" confdefs.h | sort
- echo
- fi
- test "$ac_signal" != 0 &&
- echo "$as_me: caught signal $ac_signal"
- echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core &&
- rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
- ' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special
- # files actually), so we avoid doing that.
- if test -f "$cache_file"; then
- { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . $cache_file;;
- *) . ./$cache_file;;
- esac
- fi
-else
- { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
- sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val="\$ac_cv_env_${ac_var}_value"
- eval ac_new_val="\$ac_env_${ac_var}_value"
- case $ac_old_set,$ac_new_set in
- set,)
- { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
-echo "$as_me: former value: $ac_old_val" >&2;}
- { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
-echo "$as_me: current value: $ac_new_val" >&2;}
- ac_cache_corrupted=:
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
- ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ac_config_headers="$ac_config_headers conf.h"
-
-
-{ echo "$as_me:$LINENO: configurations for the dmalloc library" >&5
-echo "$as_me: configurations for the dmalloc library" >&6;}
-
-##############################################################################
-# arguments
-
-# Check whether --enable-cxx or --disable-cxx was given.
-if test "${enable_cxx+set}" = set; then
- enableval="$enable_cxx"
- # enable_cxx set by default
-else
- enable_cxx=yes
-
-fi;
-# Check whether --enable-threads or --disable-threads was given.
-if test "${enable_threads+set}" = set; then
- enableval="$enable_threads"
- # enable_threads set by default
-else
- enable_threads=no
-
-fi;
-# Check whether --enable-shlib or --disable-shlib was given.
-if test "${enable_shlib+set}" = set; then
- enableval="$enable_shlib"
- # enable_shlib set by default
-else
- enable_shlib=no
-
-fi;
-
-##############################################################################
-{ echo "$as_me:$LINENO: build utilities" >&5
-echo "$as_me: build utilities" >&6;}
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- CC=$ac_ct_CC
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- CC=$ac_ct_CC
-else
- CC="$ac_cv_prog_CC"
-fi
-
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$ac_ct_CC" && break
-done
-
- CC=$ac_ct_CC
-fi
-
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
- "checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5
- (eval $ac_compiler --version &5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5
- (eval $ac_compiler -v &5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5
- (eval $ac_compiler -V &5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
- (eval $ac_link_default) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # Find the output, starting from the most likely. This scheme is
-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
-# resort.
-
-# Be careful to initialize this variable, since it used to be cached.
-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
-ac_cv_exeext=
-# b.out is created by i960 compilers.
-for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
- ;;
- conftest.$ac_ext )
- # This is the source file.
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- # FIXME: I believe we export ac_cv_exeext for Libtool,
- # but it would be cool to find out if it's true. Does anybody
- # maintain Libtool? --akim.
- export ac_cv_exeext
- break;;
- * )
- break;;
- esac
-done
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6
-
-# Check the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
- if { ac_try='./$ac_file'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
- fi
- fi
-fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-rm -f a.out a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-# Check the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6
-
-echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- export ac_cv_exeext
- break;;
- * ) break;;
- esac
-done
-else
- { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
-if test "${ac_cv_objext+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_compiler_gnu=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_compiler_gnu=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-CFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_g+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_g=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_prog_cc_g=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_prog_cc_stdc=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include
-#include
-#include
-#include
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std1 is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std1. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX -qlanglvl=ansi
-# Ultrix and OSF/1 -std1
-# HP-UX 10.20 and later -Ae
-# HP-UX older versions -Aa -D_HPUX_SOURCE
-# SVR4 -Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_stdc=$ac_arg
-break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext
-done
-rm -f conftest.$ac_ext conftest.$ac_objext
-CC=$ac_save_CC
-
-fi
-
-case "x$ac_cv_prog_cc_stdc" in
- x|xno)
- echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
- *)
- echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
- CC="$CC $ac_cv_prog_cc_stdc" ;;
-esac
-
-# Some people use a C++ compiler to compile C. Since we use `exit',
-# in C++ we need to declare it. In case someone uses the same compiler
-# for both compiling C and C++ we need to have the C++ compiler decide
-# the declaration of exit, since it's the most demanding environment.
-cat >conftest.$ac_ext <<_ACEOF
-#ifndef __cplusplus
- choke me
-#endif
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- for ac_declaration in \
- '' \
- 'extern "C" void std::exit (int) throw (); using std::exit;' \
- 'extern "C" void std::exit (int); using std::exit;' \
- 'extern "C" void exit (int) throw ();' \
- 'extern "C" void exit (int);' \
- 'void exit (int);'
-do
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_declaration
-#include
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-continue
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_declaration
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
- echo '#ifdef __cplusplus' >>confdefs.h
- echo $ac_declaration >>confdefs.h
- echo '#endif' >>confdefs.h
-fi
-
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CXX+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CXX"; then
- ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
- echo "$as_me:$LINENO: result: $CXX" >&5
-echo "${ECHO_T}$CXX" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$CXX" && break
- done
-fi
-if test -z "$CXX"; then
- ac_ct_CXX=$CXX
- for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CXX"; then
- ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CXX="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
- echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
-echo "${ECHO_T}$ac_ct_CXX" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$ac_ct_CXX" && break
-done
-test -n "$ac_ct_CXX" || ac_ct_CXX="g++"
-
- CXX=$ac_ct_CXX
-fi
-
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
- "checking for C++ compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5
- (eval $ac_compiler --version &5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5
- (eval $ac_compiler -v &5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5
- (eval $ac_compiler -V &5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-
-echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
-if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_compiler_gnu=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_compiler_gnu=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
-GXX=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-CXXFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
-echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
-if test "${ac_cv_prog_cxx_g+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cxx_g=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_prog_cxx_g=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
-if test "$ac_test_CXXFLAGS" = set; then
- CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
- if test "$GXX" = yes; then
- CXXFLAGS="-g -O2"
- else
- CXXFLAGS="-g"
- fi
-else
- if test "$GXX" = yes; then
- CXXFLAGS="-O2"
- else
- CXXFLAGS=
- fi
-fi
-for ac_declaration in \
- '' \
- 'extern "C" void std::exit (int) throw (); using std::exit;' \
- 'extern "C" void std::exit (int); using std::exit;' \
- 'extern "C" void exit (int) throw ();' \
- 'extern "C" void exit (int);' \
- 'void exit (int);'
-do
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_declaration
-#include
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-continue
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_declaration
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
- echo '#ifdef __cplusplus' >>confdefs.h
- echo $ac_declaration >>confdefs.h
- echo '#endif' >>confdefs.h
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-# see if we actually have a CXX program
-if test "$ac_cv_prog_CXX" = "" -o ! -x "$ac_cv_prog_CXX"; then
- { echo "$as_me:$LINENO: WARNING: could not find C++ compiler $ac_cv_prog_CXX" >&5
-echo "$as_me: WARNING: could not find C++ compiler $ac_cv_prog_CXX" >&2;}
- enable_cxx=no
-fi
-
-# hopefully we have a stdc c-compiler
-if test "$ac_cv_prog_cc_stdc" = "no" ; then
- { echo "$as_me:$LINENO: WARNING: " >&5
-echo "$as_me: WARNING: " >&2;}
- { echo "$as_me:$LINENO: WARNING: no ansi compiler. this build may fail." >&5
-echo "$as_me: WARNING: no ansi compiler. this build may fail." >&2;}
- { echo "$as_me:$LINENO: WARNING: " >&5
-echo "$as_me: WARNING: " >&2;}
-fi
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f $ac_dir/shtool; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
-echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
- { (exit 1); exit 1; }; }
-fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
- ./ | .// | /cC/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- done
- done
- ;;
-esac
-done
-
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. We don't cache a
- # path for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the path is relative.
- INSTALL=$ac_install_sh
- fi
-fi
-echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_RANLIB+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- RANLIB=$ac_ct_RANLIB
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-
-echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
-echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
-if test "${ac_cv_c_const+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-/* FIXME: Include the comments suggested by Paul. */
-#ifndef __cplusplus
- /* Ultrix mips cc rejects this. */
- typedef int charset[2];
- const charset x;
- /* SunOS 4.1.1 cc rejects this. */
- char const *const *ccp;
- char **p;
- /* NEC SVR4.0.2 mips cc rejects this. */
- struct point {int x, y;};
- static struct point const zero = {0,0};
- /* AIX XL C 1.02.0.0 rejects this.
- It does not let you subtract one const X* pointer from another in
- an arm of an if-expression whose if-part is not a constant
- expression */
- const char *g = "string";
- ccp = &g + (g ? g-g : 0);
- /* HPUX 7.0 cc rejects these. */
- ++ccp;
- p = (char**) ccp;
- ccp = (char const *const *) p;
- { /* SCO 3.2v4 cc rejects this. */
- char *t;
- char const *s = 0 ? (char *) 0 : (char const *) 0;
-
- *t++ = 0;
- }
- { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
- int x[] = {25, 17};
- const int *foo = &x[0];
- ++foo;
- }
- { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
- typedef const int *iptr;
- iptr p = 0;
- ++p;
- }
- { /* AIX XL C 1.02.0.0 rejects this saying
- "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
- struct s { int j; const int *ap[3]; };
- struct s *b; b->j = 5;
- }
- { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
- const int foo = 10;
- }
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_c_const=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_c_const=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
-echo "${ECHO_T}$ac_cv_c_const" >&6
-if test $ac_cv_c_const = no; then
-
-cat >>confdefs.h <<\_ACEOF
-#define const
-_ACEOF
-
-fi
-
-
-# we need this for various settings
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if test "${ac_cv_prog_CPP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer to if __STDC__ is defined, since
- # exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include
-#else
-# include
-#endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer to if __STDC__ is defined, since
- # exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include
-#else
-# include
-#endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- :
-else
- { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
-if test "${ac_cv_prog_egrep+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if echo a | (grep -E '(a|b)') >/dev/null 2>&1
- then ac_cv_prog_egrep='grep -E'
- else ac_cv_prog_egrep='egrep'
- fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
- EGREP=$ac_cv_prog_egrep
-
-
-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include
-#include
-#include
-#include
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_header_stdc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_header_stdc=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
- :
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- exit(2);
- exit (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-if test "${ac_cv_header_stdarg_h+set}" = set; then
- echo "$as_me:$LINENO: checking for stdarg.h" >&5
-echo $ECHO_N "checking for stdarg.h... $ECHO_C" >&6
-if test "${ac_cv_header_stdarg_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdarg_h" >&5
-echo "${ECHO_T}$ac_cv_header_stdarg_h" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking stdarg.h usability" >&5
-echo $ECHO_N "checking stdarg.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking stdarg.h presence" >&5
-echo $ECHO_N "checking stdarg.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: stdarg.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: stdarg.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: stdarg.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: stdarg.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: stdarg.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: stdarg.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: stdarg.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: stdarg.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: stdarg.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: stdarg.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: stdarg.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: stdarg.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: stdarg.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: stdarg.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: stdarg.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: stdarg.h: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ---------------------------------- ##
-## Report this to http://dmalloc.com/ ##
-## ---------------------------------- ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for stdarg.h" >&5
-echo $ECHO_N "checking for stdarg.h... $ECHO_C" >&6
-if test "${ac_cv_header_stdarg_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_header_stdarg_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdarg_h" >&5
-echo "${ECHO_T}$ac_cv_header_stdarg_h" >&6
-
-fi
-if test $ac_cv_header_stdarg_h = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_STDARG_H 1
-_ACEOF
- HAVE_STDARG_H=1
-
-else
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_STDARG_H 0
-_ACEOF
- HAVE_STDARG_H=0
-
-fi
-
-
-if test "${ac_cv_header_stdlib_h+set}" = set; then
- echo "$as_me:$LINENO: checking for stdlib.h" >&5
-echo $ECHO_N "checking for stdlib.h... $ECHO_C" >&6
-if test "${ac_cv_header_stdlib_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdlib_h" >&5
-echo "${ECHO_T}$ac_cv_header_stdlib_h" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking stdlib.h usability" >&5
-echo $ECHO_N "checking stdlib.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking stdlib.h presence" >&5
-echo $ECHO_N "checking stdlib.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: stdlib.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: stdlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: stdlib.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: stdlib.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: stdlib.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: stdlib.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: stdlib.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: stdlib.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: stdlib.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: stdlib.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: stdlib.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: stdlib.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: stdlib.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: stdlib.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: stdlib.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: stdlib.h: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ---------------------------------- ##
-## Report this to http://dmalloc.com/ ##
-## ---------------------------------- ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for stdlib.h" >&5
-echo $ECHO_N "checking for stdlib.h... $ECHO_C" >&6
-if test "${ac_cv_header_stdlib_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_header_stdlib_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdlib_h" >&5
-echo "${ECHO_T}$ac_cv_header_stdlib_h" >&6
-
-fi
-if test $ac_cv_header_stdlib_h = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_STDLIB_H 1
-_ACEOF
- HAVE_STDLIB_H=1
-
-else
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_STDLIB_H 0
-_ACEOF
- HAVE_STDLIB_H=0
-
-fi
-
-
-if test "${ac_cv_header_string_h+set}" = set; then
- echo "$as_me:$LINENO: checking for string.h" >&5
-echo $ECHO_N "checking for string.h... $ECHO_C" >&6
-if test "${ac_cv_header_string_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_string_h" >&5
-echo "${ECHO_T}$ac_cv_header_string_h" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking string.h usability" >&5
-echo $ECHO_N "checking string.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking string.h presence" >&5
-echo $ECHO_N "checking string.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: string.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: string.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: string.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: string.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: string.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: string.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: string.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: string.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: string.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: string.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: string.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: string.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: string.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: string.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: string.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: string.h: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ---------------------------------- ##
-## Report this to http://dmalloc.com/ ##
-## ---------------------------------- ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for string.h" >&5
-echo $ECHO_N "checking for string.h... $ECHO_C" >&6
-if test "${ac_cv_header_string_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_header_string_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_string_h" >&5
-echo "${ECHO_T}$ac_cv_header_string_h" >&6
-
-fi
-if test $ac_cv_header_string_h = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_STRING_H 1
-_ACEOF
- HAVE_STRING_H=1
-
-else
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_STRING_H 0
-_ACEOF
- HAVE_STRING_H=0
-
-fi
-
-
-if test "${ac_cv_header_unistd_h+set}" = set; then
- echo "$as_me:$LINENO: checking for unistd.h" >&5
-echo $ECHO_N "checking for unistd.h... $ECHO_C" >&6
-if test "${ac_cv_header_unistd_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_unistd_h" >&5
-echo "${ECHO_T}$ac_cv_header_unistd_h" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking unistd.h usability" >&5
-echo $ECHO_N "checking unistd.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking unistd.h presence" >&5
-echo $ECHO_N "checking unistd.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: unistd.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: unistd.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: unistd.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: unistd.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: unistd.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: unistd.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: unistd.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: unistd.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: unistd.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: unistd.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: unistd.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: unistd.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: unistd.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: unistd.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: unistd.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: unistd.h: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ---------------------------------- ##
-## Report this to http://dmalloc.com/ ##
-## ---------------------------------- ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for unistd.h" >&5
-echo $ECHO_N "checking for unistd.h... $ECHO_C" >&6
-if test "${ac_cv_header_unistd_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_header_unistd_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_unistd_h" >&5
-echo "${ECHO_T}$ac_cv_header_unistd_h" >&6
-
-fi
-if test $ac_cv_header_unistd_h = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_UNISTD_H 1
-_ACEOF
- HAVE_UNISTD_H=1
-
-else
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_UNISTD_H 0
-_ACEOF
- HAVE_UNISTD_H=0
-
-fi
-
-
-if test "${ac_cv_header_sys_types_h+set}" = set; then
- echo "$as_me:$LINENO: checking for sys/types.h" >&5
-echo $ECHO_N "checking for sys/types.h... $ECHO_C" >&6
-if test "${ac_cv_header_sys_types_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_sys_types_h" >&5
-echo "${ECHO_T}$ac_cv_header_sys_types_h" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking sys/types.h usability" >&5
-echo $ECHO_N "checking sys/types.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking sys/types.h presence" >&5
-echo $ECHO_N "checking sys/types.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: sys/types.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: sys/types.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/types.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: sys/types.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: sys/types.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: sys/types.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/types.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: sys/types.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/types.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: sys/types.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/types.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: sys/types.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/types.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: sys/types.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/types.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: sys/types.h: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ---------------------------------- ##
-## Report this to http://dmalloc.com/ ##
-## ---------------------------------- ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for sys/types.h" >&5
-echo $ECHO_N "checking for sys/types.h... $ECHO_C" >&6
-if test "${ac_cv_header_sys_types_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_header_sys_types_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_sys_types_h" >&5
-echo "${ECHO_T}$ac_cv_header_sys_types_h" >&6
-
-fi
-if test $ac_cv_header_sys_types_h = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_SYS_TYPES_H 1
-_ACEOF
- HAVE_SYS_TYPES_H=1
-
-else
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_SYS_TYPES_H 0
-_ACEOF
- HAVE_SYS_TYPES_H=0
-
-fi
-
-
-if test "${ac_cv_header_sys_mman_h+set}" = set; then
- echo "$as_me:$LINENO: checking for sys/mman.h" >&5
-echo $ECHO_N "checking for sys/mman.h... $ECHO_C" >&6
-if test "${ac_cv_header_sys_mman_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_sys_mman_h" >&5
-echo "${ECHO_T}$ac_cv_header_sys_mman_h" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking sys/mman.h usability" >&5
-echo $ECHO_N "checking sys/mman.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking sys/mman.h presence" >&5
-echo $ECHO_N "checking sys/mman.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: sys/mman.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: sys/mman.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/mman.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: sys/mman.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: sys/mman.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: sys/mman.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/mman.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: sys/mman.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/mman.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: sys/mman.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/mman.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: sys/mman.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/mman.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: sys/mman.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/mman.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: sys/mman.h: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ---------------------------------- ##
-## Report this to http://dmalloc.com/ ##
-## ---------------------------------- ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for sys/mman.h" >&5
-echo $ECHO_N "checking for sys/mman.h... $ECHO_C" >&6
-if test "${ac_cv_header_sys_mman_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_header_sys_mman_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_sys_mman_h" >&5
-echo "${ECHO_T}$ac_cv_header_sys_mman_h" >&6
-
-fi
-if test $ac_cv_header_sys_mman_h = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_SYS_MMAN_H 1
-_ACEOF
- HAVE_SYS_MMAN_H=1
-
-else
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_SYS_MMAN_H 0
-_ACEOF
- HAVE_SYS_MMAN_H=0
-
-fi
-
-
-
-###############################################################################
-# shared library handling
-
-#
-# check to see where we should install our shared libraries
-# DONT CACHE in case the change the --prefix
-#
-# This is pretty tricky here and should be handled by autoconf
-# automatically. I try to see if there is a shlib directory
-# to install by shlibs there. If not I use the $libdir. Some
-# of the variables have values of '${exec_prefix}' and the like
-# so the quoting is very important.
-#
-# We first try and find the true directory where we are
-# installing.
-#
-if test "x$exec_prefix" = xNONE; then
- if test "x$prefix" = xNONE; then
- shlibprefix="$ac_default_prefix"
- else
- shlibprefix="$prefix"
- fi
-else
- shlibprefix="$exec_prefix"
-fi
-#
-# Then we see if there is a special shlib directory to use.
-#
-if test -d $shlibprefix/shlib; then
- shlibdir='${exec_prefix}/shlib'
-else
- shlibdir="$libdir"
-fi
-
-
-# see how the local system builds shared libraries
-echo "$as_me:$LINENO: checking shared library link args" >&5
-echo $ECHO_N "checking shared library link args... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
- int foo(int val) { return val + 1; }
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- # so now we try to create an archive from the compiled .o file
- (ar cr conftest.a conftest.o) 2>&5
- # see which shared-library ld commands work
- #
- # Darwin/Mac OS X - Terry Teague
- # username terry_teague at domain users.sourceforge.net
- ac_cv_shared_lib_link_objs=no
- if test `uname` = "Darwin"; then
- if (ld -dylib -o conftest.so.t -lc conftest.a) 2>&5; then
- # By convention on some platforms
- # libLLL.so, libLLL.X.so are symlinks to libLLL.X.Y.Z.so
- # where X.Y.Z is version # (major.minor.increment) of the library
- # (API)
- # For the moment set the Mac OS X dylib compatibility version # to
- # 1.0 and don't create any symlinks or versioned library names.
- # Perhaps this could be the version of the dmalloc library
- # (e.g. 5.4.0)
- ac_cv_shared_link_args='$(CXX) -dynamiclib -install_name $@ -compatibility_version 1 -current_version 1 -o $@.t'
- # linking static archives into a dynamic lib doesn't seem to work
- # explicitly link the object files
- ac_cv_shared_lib_link_objs=yes
- else
- # oh well, toss an error
- ac_cv_shared_link_args='# Could not configure shlib linking'
- enable_shlib=no
- fi
- elif (ld -shared --whole-archive -soname conftest.so -o conftest.so.t conftest.a) 2>&5; then
- ac_cv_shared_link_args='ld -shared --whole-archive -soname $@ -o $@.t'
- elif (ld -shared -o conftest.so.t -all -soname conftest.so.t -none -lc -all conftest.a) 2>&5; then
- ac_cv_shared_link_args='ld -shared -o $@.t -all -soname $@ -none -lc -all'
- elif (ld -G -o conftest.so.t conftest.a) 2>&5; then
- ac_cv_shared_link_args='ld -G -o $@.t'
- else
- # oh well, toss an error
- ac_cv_shared_link_args='# Could not configure shlib linking'
- enable_shlib=no
- fi
-
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
- # oh well, toss an error
- ac_cv_shared_link_args='# Could not configure shlib linking'
- enable_shlib=no
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-shlinkargs="$ac_cv_shared_link_args"
-
-if test "$ac_cv_shared_lib_link_objs" = "yes"; then
- echo "$as_me:$LINENO: result: $ac_cv_shared_link_args objectfiles..." >&5
-echo "${ECHO_T}$ac_cv_shared_link_args objectfiles..." >&6
-else
- echo "$as_me:$LINENO: result: $ac_cv_shared_link_args" >&5
-echo "${ECHO_T}$ac_cv_shared_link_args" >&6
-fi
-
-###############################################################################
-
-echo "$as_me:$LINENO: checking shared library extension" >&5
-echo $ECHO_N "checking shared library extension... $ECHO_C" >&6
-if test `uname` = "Darwin"; then
- # Darwin/Mac OS X - Terry Teague
- # username terry_teague at domain users.sourceforge.net
- ac_cv_shared_lib_suffix=dylib
-else
- ac_cv_shared_lib_suffix=so
-fi
-shlibext="$ac_cv_shared_lib_suffix"
-echo "$as_me:$LINENO: result: $ac_cv_shared_lib_suffix" >&5
-echo "${ECHO_T}$ac_cv_shared_lib_suffix" >&6
-
-
-###############################################################################
-
-echo "$as_me:$LINENO: checking C++ support" >&5
-echo $ECHO_N "checking C++ support... $ECHO_C" >&6
-if test "$enable_cxx" = "yes"; then
-
- CXX_OFF=#
-
- echo "$as_me:$LINENO: result: enabled" >&5
-echo "${ECHO_T}enabled" >&6
-else
- CXX_ON=#
-
-
- echo "$as_me:$LINENO: result: disabled" >&5
-echo "${ECHO_T}disabled" >&6
-fi
-
-echo "$as_me:$LINENO: checking thread support" >&5
-echo $ECHO_N "checking thread support... $ECHO_C" >&6
-if test "$enable_threads" = "yes"; then
-
- TH_OFF=#
-
- echo "$as_me:$LINENO: result: enabled" >&5
-echo "${ECHO_T}enabled" >&6
-else
- TH_ON=#
-
-
- echo "$as_me:$LINENO: result: disabled" >&5
-echo "${ECHO_T}disabled" >&6
-fi
-
-# shlib support
-echo "$as_me:$LINENO: checking shlib support" >&5
-echo $ECHO_N "checking shlib support... $ECHO_C" >&6
-if test "$enable_shlib" = "yes"; then
-
- SL_OFF=#
-
- echo "$as_me:$LINENO: result: enabled" >&5
-echo "${ECHO_T}enabled" >&6
-else
- SL_ON=#
-
-
- echo "$as_me:$LINENO: result: disabled" >&5
-echo "${ECHO_T}disabled" >&6
-fi
-
-###############################################################################
-#
-# check for size_t
-#
-echo "$as_me:$LINENO: checking for size_t" >&5
-echo $ECHO_N "checking for size_t... $ECHO_C" >&6
-if test "${ac_cv_type_size_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-if ((size_t *) 0)
- return 0;
-if (sizeof (size_t))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_type_size_t=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_type_size_t=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
-echo "${ECHO_T}$ac_cv_type_size_t" >&6
-if test $ac_cv_type_size_t = yes; then
- :
-else
-
-cat >>confdefs.h <<_ACEOF
-#define size_t unsigned
-_ACEOF
-
-fi
-
-if test "$ac_cv_type_size_t" = "yes"; then
- cat >>confdefs.h <<\_ACEOF
-#define DMALLOC_SIZE size_t
-_ACEOF
-
-else
- cat >>confdefs.h <<\_ACEOF
-#define DMALLOC_SIZE unsigned long
-_ACEOF
-
-fi
-
-#
-# check for unsigned-ness
-#
-echo "$as_me:$LINENO: checking dmalloc size unsigned" >&5
-echo $ECHO_N "checking dmalloc size unsigned... $ECHO_C" >&6
-if test "$cross_compiling" = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define DMALLOC_SIZE_UNSIGNED 0
-_ACEOF
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-#if HAVE_SYS_TYPES_H
-# include
-#endif
-#if HAVE_STDLIB_H
-# include
-#endif
-main() { DMALLOC_SIZE x = -1; if (x >= 0) exit(0); else exit(1); }
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cat >>confdefs.h <<\_ACEOF
-#define DMALLOC_SIZE_UNSIGNED 1
-_ACEOF
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-cat >>confdefs.h <<\_ACEOF
-#define DMALLOC_SIZE_UNSIGNED 0
-_ACEOF
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-#
-# check for strdup macro (linux)
-#
-echo "$as_me:$LINENO: checking strdup macro" >&5
-echo $ECHO_N "checking strdup macro... $ECHO_C" >&6
-if test "$cross_compiling" = yes; then
- ac_cv_strdup_macro=no
-
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-#if HAVE_STDLIB_H
-# include
-#endif
-
-#ifdef strdup
-main() { exit(0); }
-#else
-main() { exit(1); }
-#endif
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_strdup_macro=yes
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_strdup_macro=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_strdup_macro" >&5
-echo "${ECHO_T}$ac_cv_strdup_macro" >&6
-
-#
-# check for existance of mprotect and associated defines
-#
-
-for ac_func in mprotect
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case declares $ac_func.
- For example, HP-UX 11i declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer to if __STDC__ is defined, since
- exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include
-#else
-# include
-#endif
-
-#undef $ac_func
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-echo "$as_me:$LINENO: checking mprotect works" >&5
-echo $ECHO_N "checking mprotect works... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-#if HAVE_SYS_TYPES_H
-# include
-#endif
-#if HAVE_SYS_MMAN_H
-# include
-#endif
-
-int
-main ()
-{
-
- int prot = PROT_NONE | PROT_READ | PROT_WRITE;
- (void)mprotect(0, 0, prot);
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cat >>confdefs.h <<\_ACEOF
-#define PROTECT_ALLOWED 1
-_ACEOF
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- cat >>confdefs.h <<\_ACEOF
-#define PROTECT_ALLOWED 0
-_ACEOF
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
-##############################################################################
-{ echo "$as_me:$LINENO: important functionality" >&5
-echo "$as_me: important functionality" >&6;}
-
-
-for ac_func in mmap
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case declares $ac_func.
- For example, HP-UX 11i declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer to if __STDC__ is defined, since
- exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include
-#else
-# include
-#endif
-
-#undef $ac_func
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-for ac_func in sbrk
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case declares $ac_func.
- For example, HP-UX 11i declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer to if __STDC__ is defined, since
- exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include
-#else
-# include
-#endif
-
-#undef $ac_func
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-if test x$ac_cv_func_mmap != xyes && x$ac_cv_func_sbrk != xyes; then
- { echo "$as_me:$LINENO: WARNING: " >&5
-echo "$as_me: WARNING: " >&2;}
- { echo "$as_me:$LINENO: WARNING: no mmap nor sbrk function. See INTERNAL_MEMORY_SPACE in settings.dist." >&5
-echo "$as_me: WARNING: no mmap nor sbrk function. See INTERNAL_MEMORY_SPACE in settings.dist." >&2;}
- { echo "$as_me:$LINENO: WARNING: " >&5
-echo "$as_me: WARNING: " >&2;}
-fi
-
-echo "$as_me:$LINENO: checking mmap usage" >&5
-echo $ECHO_N "checking mmap usage... $ECHO_C" >&6
-if test "$cross_compiling" = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define USE_MMAP 0
-_ACEOF
- ac_cv_use_mmap=no
-
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-#if HAVE_SYS_TYPES_H
-# include
-#endif
-#if HAVE_SYS_MMAN_H
-# include
-#endif
-main() {
- /* we could open /dev/zero and map to that but I did not want the library
- to open another file-descriptor */
- char *dest, *src, *src_p, *dest_p;
- src = "0123456789";
- dest = (char *)mmap(0L, 10, PROT_READ | PROT_WRITE | PROT_EXEC,
- MAP_PRIVATE | MAP_ANON, -1 /* no fd */,
- 0 /* no offset */);
- src_p = src; dest_p = dest;
- while (src_p < src + 10) { *dest_p++ = *src_p++; }
- src_p = src; dest_p = dest;
- while (src_p < src + 10) {
- if (*src_p++ != *dest_p++) { exit(1); }
- }
- exit(0);
-}
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cat >>confdefs.h <<\_ACEOF
-#define USE_MMAP 1
-_ACEOF
- ac_cv_use_mmap=yes
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
- cat >>confdefs.h <<\_ACEOF
-#define USE_MMAP 0
-_ACEOF
- ac_cv_use_mmap=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_use_mmap" >&5
-echo "${ECHO_T}$ac_cv_use_mmap" >&6
-
-#
-# check for basic block size
-#
-
-for ac_func in getpagesize
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case declares $ac_func.
- For example, HP-UX 11i declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer to if __STDC__ is defined, since
- exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include
-#else
-# include
-#endif
-
-#undef $ac_func
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-echo "$as_me:$LINENO: checking basic-block size" >&5
-echo $ECHO_N "checking basic-block size... $ECHO_C" >&6
-ac_cv_page_size=0
-if test $ac_cv_page_size = 0; then
- if test "$cross_compiling" = yes; then
- { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-else
- cat >conftest.$ac_ext <<_ACEOF
-main() { if (getpagesize()<=2048) exit(0); else exit(1); }
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_page_size=11
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-if test $ac_cv_page_size = 0; then
- if test "$cross_compiling" = yes; then
- { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-else
- cat >conftest.$ac_ext <<_ACEOF
-main() { if (getpagesize()<=4096) exit(0); else exit(1); }
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_page_size=12
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-if test $ac_cv_page_size = 0; then
- if test "$cross_compiling" = yes; then
- { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-else
- cat >conftest.$ac_ext <<_ACEOF
-main() { if (getpagesize()<=8192) exit(0); else exit(1); }
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_page_size=13
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-if test $ac_cv_page_size = 0; then
- if test "$cross_compiling" = yes; then
- { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-else
- cat >conftest.$ac_ext <<_ACEOF
-main() { if (getpagesize()<=16384) exit(0); else exit(1); }
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_page_size=14
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-if test $ac_cv_page_size = 0; then
- ac_cv_page_size=15
-fi
-cat >>confdefs.h <<_ACEOF
-#define BASIC_BLOCK $ac_cv_page_size
-_ACEOF
-
-echo "$as_me:$LINENO: result: $ac_cv_page_size" >&5
-echo "${ECHO_T}$ac_cv_page_size" >&6
-
-#
-# data-alignment size...
-#
-echo "$as_me:$LINENO: checking for long" >&5
-echo $ECHO_N "checking for long... $ECHO_C" >&6
-if test "${ac_cv_type_long+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-if ((long *) 0)
- return 0;
-if (sizeof (long))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_type_long=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_type_long=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5
-echo "${ECHO_T}$ac_cv_type_long" >&6
-
-echo "$as_me:$LINENO: checking size of long" >&5
-echo $ECHO_N "checking size of long... $ECHO_C" >&6
-if test "${ac_cv_sizeof_long+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$ac_cv_type_long" = yes; then
- # The cast to unsigned long works around a bug in the HP C Compiler
- # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
- # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
- # This bug is HP SR number 8606223364.
- if test "$cross_compiling" = yes; then
- # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long) (sizeof (long))) >= 0)];
-test_array [0] = 0
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_lo=0 ac_mid=0
- while :; do
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)];
-test_array [0] = 0
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_hi=$ac_mid; break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_lo=`expr $ac_mid + 1`
- if test $ac_lo -le $ac_mid; then
- ac_lo= ac_hi=
- break
- fi
- ac_mid=`expr 2 '*' $ac_mid + 1`
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long) (sizeof (long))) < 0)];
-test_array [0] = 0
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_hi=-1 ac_mid=-1
- while :; do
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long) (sizeof (long))) >= $ac_mid)];
-test_array [0] = 0
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_lo=$ac_mid; break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_hi=`expr '(' $ac_mid ')' - 1`
- if test $ac_mid -le $ac_hi; then
- ac_lo= ac_hi=
- break
- fi
- ac_mid=`expr 2 '*' $ac_mid`
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_lo= ac_hi=
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
- ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)];
-test_array [0] = 0
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_hi=$ac_mid
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) ac_cv_sizeof_long=$ac_lo;;
-'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute sizeof (long), 77
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; } ;;
-esac
-else
- if test "$cross_compiling" = yes; then
- { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-long longval () { return (long) (sizeof (long)); }
-unsigned long ulongval () { return (long) (sizeof (long)); }
-#include
-#include
-int
-main ()
-{
-
- FILE *f = fopen ("conftest.val", "w");
- if (! f)
- exit (1);
- if (((long) (sizeof (long))) < 0)
- {
- long i = longval ();
- if (i != ((long) (sizeof (long))))
- exit (1);
- fprintf (f, "%ld\n", i);
- }
- else
- {
- unsigned long i = ulongval ();
- if (i != ((long) (sizeof (long))))
- exit (1);
- fprintf (f, "%lu\n", i);
- }
- exit (ferror (f) || fclose (f) != 0);
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sizeof_long=`cat conftest.val`
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute sizeof (long), 77
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-rm -f conftest.val
-else
- ac_cv_sizeof_long=0
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5
-echo "${ECHO_T}$ac_cv_sizeof_long" >&6
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_LONG $ac_cv_sizeof_long
-_ACEOF
-
-
-echo "$as_me:$LINENO: checking data-alignment size" >&5
-echo $ECHO_N "checking data-alignment size... $ECHO_C" >&6
-if test $ac_cv_sizeof_long = 4; then
- # we have to make a special case for sun sparc idiocy
- ac_cv_data_align=8
-else
- ac_cv_data_align=$ac_cv_sizeof_long
-fi
-cat >>confdefs.h <<_ACEOF
-#define ALLOCATION_ALIGNMENT $ac_cv_data_align
-_ACEOF
-
-echo "$as_me:$LINENO: result: $ac_cv_data_align" >&5
-echo "${ECHO_T}$ac_cv_data_align" >&6
-
-#
-# check the safety of the abort function
-#
-
-for ac_func in abort
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case declares $ac_func.
- For example, HP-UX 11i declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer to if __STDC__ is defined, since
- exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include
-#else
-# include
-#endif
-
-#undef $ac_func
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-echo "$as_me:$LINENO: checking abort safe" >&5
-echo $ECHO_N "checking abort safe... $ECHO_C" >&6
-if test "$cross_compiling" = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define ABORT_OKAY 0
-_ACEOF
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-
-else
- cat >conftest.$ac_ext <<_ACEOF
-
-static int main_b = 0;
-static char heap_mem[102400], *heap_p = heap_mem;
-free () { if (main_b) _exit(0); }
-char *malloc (int size) {
- char *pnt;
- if (main_b) _exit(0);
- pnt = heap_p;
- heap_p += size;
- return pnt;
-}
-char *calloc (int number, int size) {
- char *start, *pnt, *end;
- if (main_b) _exit(0);
- /* it should be already 0s */
- start = malloc (number * size);
- pnt = start;
- end = start + size;
- while (pnt < end) { *pnt++ = '\0'; }
- return start;
-}
-char *realloc (char *old_pnt, int new_size) {
- char *start, *pnt, *end;
- if (main_b) _exit(0);
- start = malloc (new_size);
- pnt = start;
- end = start + new_size;
- while (pnt < end) { *pnt++ = *old_pnt++; }
- return start;
-}
-main() { main_b = 1; abort(); _exit(1); }
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- # NOTE: this is reversed because abort core dumps and doesn't exit with
-# 0 which means that it should fail
- cat >>confdefs.h <<\_ACEOF
-#define ABORT_OKAY 0
-_ACEOF
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-# if it succeeds then something called free on the way out
- cat >>confdefs.h <<\_ACEOF
-#define ABORT_OKAY 1
-_ACEOF
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-echo "$as_me:$LINENO: checking return type of signal handlers" >&5
-echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
-if test "${ac_cv_type_signal+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include
-#include
-#ifdef signal
-# undef signal
-#endif
-#ifdef __cplusplus
-extern "C" void (*signal (int, void (*)(int)))(int);
-#else
-void (*signal ()) ();
-#endif
-
-int
-main ()
-{
-int i;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_type_signal=void
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_type_signal=int
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5
-echo "${ECHO_T}$ac_cv_type_signal" >&6
-
-cat >>confdefs.h <<_ACEOF
-#define RETSIGTYPE $ac_cv_type_signal
-_ACEOF
-
-
-echo "$as_me:$LINENO: checking signal works" >&5
-echo $ECHO_N "checking signal works... $ECHO_C" >&6
-if test "${ac_cv_header_signal_h+set}" = set; then
- echo "$as_me:$LINENO: checking for signal.h" >&5
-echo $ECHO_N "checking for signal.h... $ECHO_C" >&6
-if test "${ac_cv_header_signal_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_signal_h" >&5
-echo "${ECHO_T}$ac_cv_header_signal_h" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking signal.h usability" >&5
-echo $ECHO_N "checking signal.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking signal.h presence" >&5
-echo $ECHO_N "checking signal.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: signal.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: signal.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: signal.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: signal.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: signal.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: signal.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: signal.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: signal.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: signal.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: signal.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: signal.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: signal.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: signal.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: signal.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: signal.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: signal.h: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ---------------------------------- ##
-## Report this to http://dmalloc.com/ ##
-## ---------------------------------- ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for signal.h" >&5
-echo $ECHO_N "checking for signal.h... $ECHO_C" >&6
-if test "${ac_cv_header_signal_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_header_signal_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_signal_h" >&5
-echo "${ECHO_T}$ac_cv_header_signal_h" >&6
-
-fi
-if test $ac_cv_header_signal_h = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_SIGNAL_H 1
-_ACEOF
- HAVE_SIGNAL_H=1
-
-else
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_SIGNAL_H 0
-_ACEOF
- HAVE_SIGNAL_H=0
-
-fi
-
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-#if HAVE_SIGNAL_H
- #include
-#endif
-
-int
-main ()
-{
-
- (void)signal(SIGHUP, SIG_IGN);
- (void)signal(SIGINT, SIG_IGN);
- (void)signal(SIGTERM, SIG_IGN);
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cat >>confdefs.h <<\_ACEOF
-#define SIGNAL_OKAY 1
-_ACEOF
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- cat >>confdefs.h <<\_ACEOF
-#define SIGNAL_OKAY 0
-_ACEOF
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
-#
-# check the safety of the getenv function
-#
-
-for ac_func in getenv
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case declares $ac_func.
- For example, HP-UX 11i declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer to if __STDC__ is defined, since
- exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include
-#else
-# include
-#endif
-
-#undef $ac_func
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-echo "$as_me:$LINENO: checking getenv safe" >&5
-echo $ECHO_N "checking getenv safe... $ECHO_C" >&6
-if test "$cross_compiling" = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define GETENV_SAFE 1
-_ACEOF
-
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- getenv_safe=yes
-
-else
- cat >conftest.$ac_ext <<_ACEOF
-
-static char heap_mem[102400], *heap_p = heap_mem;
-free (char *pnt) {
-}
-char *malloc (int size) {
- char *pnt;
- getenv("PATH");
- pnt = heap_p;
- heap_p += size;
- return pnt;
-}
-char *calloc (int number, int size) {
- char *start, *pnt, *end;
- getenv("PATH");
- /* it should be already 0s */
- start = malloc (number * size);
- pnt = start;
- end = start + size;
- while (pnt < end) { *pnt++ = '\0'; }
- return start;
-}
-char *realloc (char *old_pnt, int new_size) {
- char *start, *pnt, *end;
- getenv("PATH");
- start = malloc (new_size);
- pnt = start;
- end = start + new_size;
- while (pnt < end) { *pnt++ = *old_pnt++; }
- return start;
-}
-main() { malloc(10); _exit(0); }
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cat >>confdefs.h <<\_ACEOF
-#define GETENV_SAFE 1
-_ACEOF
-
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- getenv_safe=yes
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-# if it succeeds then something called free on the way out
- cat >>confdefs.h <<\_ACEOF
-#define GETENV_SAFE 0
-_ACEOF
-
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
- getenv_safe=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-# now check to see if we can replace getenv with GetEnvironmentVariableA
-if test "${ac_cv_header_sys_cygwin_h+set}" = set; then
- echo "$as_me:$LINENO: checking for sys/cygwin.h" >&5
-echo $ECHO_N "checking for sys/cygwin.h... $ECHO_C" >&6
-if test "${ac_cv_header_sys_cygwin_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_sys_cygwin_h" >&5
-echo "${ECHO_T}$ac_cv_header_sys_cygwin_h" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking sys/cygwin.h usability" >&5
-echo $ECHO_N "checking sys/cygwin.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking sys/cygwin.h presence" >&5
-echo $ECHO_N "checking sys/cygwin.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: sys/cygwin.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: sys/cygwin.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/cygwin.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: sys/cygwin.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: sys/cygwin.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: sys/cygwin.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/cygwin.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: sys/cygwin.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/cygwin.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: sys/cygwin.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/cygwin.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: sys/cygwin.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/cygwin.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: sys/cygwin.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/cygwin.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: sys/cygwin.h: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ---------------------------------- ##
-## Report this to http://dmalloc.com/ ##
-## ---------------------------------- ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for sys/cygwin.h" >&5
-echo $ECHO_N "checking for sys/cygwin.h... $ECHO_C" >&6
-if test "${ac_cv_header_sys_cygwin_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_header_sys_cygwin_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_sys_cygwin_h" >&5
-echo "${ECHO_T}$ac_cv_header_sys_cygwin_h" >&6
-
-fi
-if test $ac_cv_header_sys_cygwin_h = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_SYS_CYGWIN_H 1
-_ACEOF
- HAVE_SYS_CYGWIN_H=1
-
-else
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_SYS_CYGWIN_H 0
-_ACEOF
- HAVE_SYS_CYGWIN_H=0
-
-fi
-
-
-if test "${ac_cv_header_w32api_windef_h+set}" = set; then
- echo "$as_me:$LINENO: checking for w32api/windef.h" >&5
-echo $ECHO_N "checking for w32api/windef.h... $ECHO_C" >&6
-if test "${ac_cv_header_w32api_windef_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_w32api_windef_h" >&5
-echo "${ECHO_T}$ac_cv_header_w32api_windef_h" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking w32api/windef.h usability" >&5
-echo $ECHO_N "checking w32api/windef.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking w32api/windef.h presence" >&5
-echo $ECHO_N "checking w32api/windef.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: w32api/windef.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: w32api/windef.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: w32api/windef.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: w32api/windef.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: w32api/windef.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: w32api/windef.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: w32api/windef.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: w32api/windef.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: w32api/windef.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: w32api/windef.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: w32api/windef.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: w32api/windef.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: w32api/windef.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: w32api/windef.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: w32api/windef.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: w32api/windef.h: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ---------------------------------- ##
-## Report this to http://dmalloc.com/ ##
-## ---------------------------------- ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for w32api/windef.h" >&5
-echo $ECHO_N "checking for w32api/windef.h... $ECHO_C" >&6
-if test "${ac_cv_header_w32api_windef_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_header_w32api_windef_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_w32api_windef_h" >&5
-echo "${ECHO_T}$ac_cv_header_w32api_windef_h" >&6
-
-fi
-if test $ac_cv_header_w32api_windef_h = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_W32API_WINDEF_H 1
-_ACEOF
- HAVE_W32API_WINDEF_H=1
-
-else
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_W32API_WINDEF_H 0
-_ACEOF
- HAVE_W32API_WINDEF_H=0
-
-fi
-
-
-echo "$as_me:$LINENO: checking for w32api/winbase.h" >&5
-echo $ECHO_N "checking for w32api/winbase.h... $ECHO_C" >&6
-if test "${ac_cv_header_w32api_winbase_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-#if HAVE_W32API_WINDEF_H
-# include
-#endif
-
-#include
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_header_w32api_winbase_h=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_header_w32api_winbase_h=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_w32api_winbase_h" >&5
-echo "${ECHO_T}$ac_cv_header_w32api_winbase_h" >&6
-if test $ac_cv_header_w32api_winbase_h = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_W32API_WINBASE_H 1
-_ACEOF
- HAVE_W32API_WINBASE_H=1
-
-else
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_W32API_WINBASE_H 0
-_ACEOF
- HAVE_W32API_WINBASE_H=0
-
-fi
-
-
-echo "$as_me:$LINENO: checking for GetEnvironmentVariableA" >&5
-echo $ECHO_N "checking for GetEnvironmentVariableA... $ECHO_C" >&6
-if test "$cross_compiling" = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_GETENVIRONMENTVARIABLEA 1
-_ACEOF
-
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- have_getenvironmentvariablea=yes
-
-else
- cat >conftest.$ac_ext <<_ACEOF
-
-#if HAVE_SYS_CYGWIN_H
-# include
-#endif
-#if HAVE_STDARG_H
-# include
-#endif
-#if HAVE_W32API_WINDEF_H
-# include
-#endif
-#if HAVE_W32API_WINBASE_H
-# include
-#endif
-main() {
- char env_buf[256];
- GetEnvironmentVariableA("PATH", env_buf, sizeof(env_buf));
-}
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_GETENVIRONMENTVARIABLEA 1
-_ACEOF
-
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- have_getenvironmentvariablea=yes
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_GETENVIRONMENTVARIABLEA 0
-_ACEOF
-
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
- have_getenvironmentvariablea=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-if test x$getenv_safe != xyes && x$have_getenvironmentvariablea != xyes ; then
- { echo "$as_me:$LINENO: WARNING: Since getenv is not safe, you MUST add the following" >&5
-echo "$as_me: WARNING: Since getenv is not safe, you MUST add the following" >&2;}
- { echo "$as_me:$LINENO: WARNING: code to the front of main():" >&5
-echo "$as_me: WARNING: code to the front of main():" >&2;}
- { echo "$as_me:$LINENO: WARNING: #ifdef DMALLOC" >&5
-echo "$as_me: WARNING: #ifdef DMALLOC" >&2;}
- { echo "$as_me:$LINENO: WARNING: dmalloc_debug_setup(getenv(\"DMALLOC_OPTIONS\"));" >&5
-echo "$as_me: WARNING: dmalloc_debug_setup(getenv(\"DMALLOC_OPTIONS\"));" >&2;}
- { echo "$as_me:$LINENO: WARNING: #endif" >&5
-echo "$as_me: WARNING: #endif" >&2;}
- { echo "$as_me:$LINENO: WARNING: You will need to compile your program with: -DDMALLOC" >&5
-echo "$as_me: WARNING: You will need to compile your program with: -DDMALLOC" >&2;}
-fi
-
-############
-
-#
-# check for constructor attribute support
-#
-echo "$as_me:$LINENO: checking constructor attribute" >&5
-echo $ECHO_N "checking constructor attribute... $ECHO_C" >&6
-if test "$cross_compiling" = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define CONSTRUCTOR_WORKS 1
-_ACEOF
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-else
- cat >conftest.$ac_ext <<_ACEOF
-
-/* if we call the loc_con constructor then exit with error code 0 */
-static void loc_con() __attribute__((constructor));
-static void loc_con() { exit(0); }
-int main() { exit(1); }
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cat >>confdefs.h <<\_ACEOF
-#define CONSTRUCTOR_WORKS 1
-_ACEOF
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
- cat >>confdefs.h <<\_ACEOF
-#define CONSTRUCTOR_WORKS 0
-_ACEOF
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-#
-# check for destructor attribute support
-#
-echo "$as_me:$LINENO: checking destructor attribute" >&5
-echo $ECHO_N "checking destructor attribute... $ECHO_C" >&6
-if test "$cross_compiling" = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define DESTRUCTOR_WORKS 1
-_ACEOF
-
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- destructor_works=yes
-else
- cat >conftest.$ac_ext <<_ACEOF
-
-/* if we call the loc_decon destructor then exit with error code 0 */
-static void loc_decon() __attribute__((destructor));
-static void loc_decon() { exit(0); }
-int main() { return 1; }
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cat >>confdefs.h <<\_ACEOF
-#define DESTRUCTOR_WORKS 1
-_ACEOF
-
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- destructor_works=yes
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
- cat >>confdefs.h <<\_ACEOF
-#define DESTRUCTOR_WORKS 0
-_ACEOF
-
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
- destructor_works=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-##############################################################################
-
-#
-# check if the return.h macros work
-#
-echo "$as_me:$LINENO: checking return.h macros work" >&5
-echo $ECHO_N "checking return.h macros work... $ECHO_C" >&6
-if test "$cross_compiling" = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define RETURN_MACROS_WORK 0
-_ACEOF
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-
-else
- cat >conftest.$ac_ext <<_ACEOF
-
-
-#define __CONF_H__
-#define USE_RETURN_MACROS 1
-#define RETURN_MACROS_WORK 1
-
-#include "return.h"
-
-static void foo (void)
-{
- char *ret_addr;
- GET_RET_ADDR(ret_addr);
-}
-
-main()
-{
- foo();
- exit(0);
-}
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cat >>confdefs.h <<\_ACEOF
-#define RETURN_MACROS_WORK 1
-_ACEOF
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
- cat >>confdefs.h <<\_ACEOF
-#define RETURN_MACROS_WORK 0
-_ACEOF
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-##############################################################################
-
-#
-# check to see if ident workds
-#
-echo "$as_me:$LINENO: checking if ident works" >&5
-echo $ECHO_N "checking if ident works... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-
-#ident "$Id: configure.ac,v 1.37 2007/05/14 17:23:37 gray Exp $"
-static void foo (void) { }
-
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cat >>confdefs.h <<\_ACEOF
-#define IDENT_WORKS 1
-_ACEOF
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-cat >>confdefs.h <<\_ACEOF
-#define IDENT_WORKS 0
-_ACEOF
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-
-##############################################################################
-{ echo "$as_me:$LINENO: pthread particulars" >&5
-echo "$as_me: pthread particulars" >&6;}
-
-XX_OLD_LIBS=$LIBS
-
-echo "$as_me:$LINENO: checking for library containing pthread_mutex_init" >&5
-echo $ECHO_N "checking for library containing pthread_mutex_init... $ECHO_C" >&6
-if test "${ac_cv_search_pthread_mutex_init+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_func_search_save_LIBS=$LIBS
-ac_cv_search_pthread_mutex_init=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char pthread_mutex_init ();
-int
-main ()
-{
-pthread_mutex_init ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_search_pthread_mutex_init="none required"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-if test "$ac_cv_search_pthread_mutex_init" = no; then
- for ac_lib in pthread pthreads c_r; do
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char pthread_mutex_init ();
-int
-main ()
-{
-pthread_mutex_init ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_search_pthread_mutex_init="-l$ac_lib"
-break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- done
-fi
-LIBS=$ac_func_search_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_search_pthread_mutex_init" >&5
-echo "${ECHO_T}$ac_cv_search_pthread_mutex_init" >&6
-if test "$ac_cv_search_pthread_mutex_init" != no; then
- test "$ac_cv_search_pthread_mutex_init" = "none required" || LIBS="$ac_cv_search_pthread_mutex_init $LIBS"
-
-fi
-
-if test "${ac_cv_header_pthread_h+set}" = set; then
- echo "$as_me:$LINENO: checking for pthread.h" >&5
-echo $ECHO_N "checking for pthread.h... $ECHO_C" >&6
-if test "${ac_cv_header_pthread_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_pthread_h" >&5
-echo "${ECHO_T}$ac_cv_header_pthread_h" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking pthread.h usability" >&5
-echo $ECHO_N "checking pthread.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking pthread.h presence" >&5
-echo $ECHO_N "checking pthread.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: pthread.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: pthread.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: pthread.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: pthread.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: pthread.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: pthread.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: pthread.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: pthread.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: pthread.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: pthread.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: pthread.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: pthread.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: pthread.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: pthread.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: pthread.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: pthread.h: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ---------------------------------- ##
-## Report this to http://dmalloc.com/ ##
-## ---------------------------------- ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for pthread.h" >&5
-echo $ECHO_N "checking for pthread.h... $ECHO_C" >&6
-if test "${ac_cv_header_pthread_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_header_pthread_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_pthread_h" >&5
-echo "${ECHO_T}$ac_cv_header_pthread_h" >&6
-
-fi
-if test $ac_cv_header_pthread_h = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_PTHREAD_H 1
-_ACEOF
- HAVE_PTHREAD_H=1
-
-else
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_PTHREAD_H 0
-_ACEOF
- HAVE_PTHREAD_H=0
-
-fi
-
-
-if test "${ac_cv_header_pthreads_h+set}" = set; then
- echo "$as_me:$LINENO: checking for pthreads.h" >&5
-echo $ECHO_N "checking for pthreads.h... $ECHO_C" >&6
-if test "${ac_cv_header_pthreads_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_pthreads_h" >&5
-echo "${ECHO_T}$ac_cv_header_pthreads_h" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking pthreads.h usability" >&5
-echo $ECHO_N "checking pthreads.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking pthreads.h presence" >&5
-echo $ECHO_N "checking pthreads.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: pthreads.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: pthreads.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: pthreads.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: pthreads.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: pthreads.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: pthreads.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: pthreads.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: pthreads.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: pthreads.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: pthreads.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: pthreads.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: pthreads.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: pthreads.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: pthreads.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: pthreads.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: pthreads.h: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ---------------------------------- ##
-## Report this to http://dmalloc.com/ ##
-## ---------------------------------- ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for pthreads.h" >&5
-echo $ECHO_N "checking for pthreads.h... $ECHO_C" >&6
-if test "${ac_cv_header_pthreads_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_header_pthreads_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_pthreads_h" >&5
-echo "${ECHO_T}$ac_cv_header_pthreads_h" >&6
-
-fi
-if test $ac_cv_header_pthreads_h = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_PTHREADS_H 1
-_ACEOF
- HAVE_PTHREADS_H=1
-
-else
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_PTHREADS_H 0
-_ACEOF
- HAVE_PTHREADS_H=0
-
-fi
-
-
-
-
-
-
-for ac_func in pthread_mutex_init pthread_mutex_lock pthread_mutex_unlock
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case declares $ac_func.
- For example, HP-UX 11i declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer to if __STDC__ is defined, since
- exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include
-#else
-# include
-#endif
-
-#undef $ac_func
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-echo "$as_me:$LINENO: checking pthread mutex type" >&5
-echo $ECHO_N "checking pthread mutex type... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-#if HAVE_PTHREAD_H
-# include
-#endif
-#if HAVE_PTHREADS_H
-# include
-#endif
-
-int
-main ()
-{
-
- pthread_mutex_t dmalloc_mutex;
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cat >>confdefs.h <<\_ACEOF
-#define THREAD_MUTEX_T pthread_mutex_t
-_ACEOF
- echo "$as_me:$LINENO: result: pthread_mutex_t" >&5
-echo "${ECHO_T}pthread_mutex_t" >&6
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-echo "$as_me:$LINENO: result: unknown" >&5
-echo "${ECHO_T}unknown" >&6
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
-echo "$as_me:$LINENO: checking pthread attribute initialization" >&5
-echo $ECHO_N "checking pthread attribute initialization... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-#if HAVE_PTHREAD_H
-# include
-#endif
-#if HAVE_PTHREADS_H
-# include
-#endif
-
-int
-main ()
-{
-
- THREAD_MUTEX_T dmalloc_mutex;
- pthread_mutex_init(&dmalloc_mutex, pthread_mutexattr_default);
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cat >>confdefs.h <<\_ACEOF
-#define THREAD_LOCK_INIT_VAL pthread_mutexattr_default
-_ACEOF
-
- echo "$as_me:$LINENO: result: pthread_mutexattr_default" >&5
-echo "${ECHO_T}pthread_mutexattr_default" >&6
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-cat >>confdefs.h <<\_ACEOF
-#define THREAD_LOCK_INIT_VAL 0
-_ACEOF
-
- echo "$as_me:$LINENO: result: 0" >&5
-echo "${ECHO_T}0" >&6
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
-LIBS=$XX_OLD_LIBS
-
-##############################################################################
-{ echo "$as_me:$LINENO: functions" >&5
-echo "$as_me: functions" >&6;}
-
-# auto-shutdown functions
-
-
-for ac_func in atexit on_exit
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case declares $ac_func.
- For example, HP-UX 11i declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer to if __STDC__ is defined, since
- exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include