Commit Graph

468 Commits

Author SHA1 Message Date
Andreas Schwab
945ec97938 Use "+m" constraint instead
of separate "m" constraints.
2004-05-23 10:22:47 +00:00
Richard Henderson
154a5429ac * math/Makefile (headers): Add bits/huge_valf.h, bits/huge_vall.h,
and bits/inf.h.
        * math/math.h: Include them.

        * sysdeps/alpha/fpu/bits/mathdef.h, sysdeps/arm/fpu/bits/mathdef.h,
        sysdeps/generic/bits/mathdef.h, sysdeps/i386/fpu/bits/mathdef.h,
        sysdeps/ia64/fpu/bits/mathdef.h, sysdeps/m68k/fpu/bits/mathdef.h,
        sysdeps/mips/fpu/bits/mathdef.h, sysdeps/powerpc/fpu/bits/mathdef.h,
        sysdeps/sh/sh4/fpu/bits/mathdef.h, sysdeps/sparc/fpu/bits/mathdef.h,
        sysdeps/x86_64/fpu/bits/mathdef.h: Remove INFINITY.

        * sysdeps/arm/bits/huge_val.h (HUGE_VAL): Use __builtin_huge_val.
        (HUGE_VALF, HUGE_VALL): Remove.
        * sysdeps/ieee754/bits/huge_val.h: Likewise.
        * sysdeps/sh/bits/huge_val.h: Likewise.

        * sysdeps/generic/bits/huge_val.h (HUGE_VAL): Use __builtin_huge_val.
        * sysdeps/generic/bits/huge_valf.h: New file.
        * sysdeps/generic/bits/huge_vall.h: New file.
        * sysdeps/generic/bits/inf.h: New file.
        * sysdeps/ieee754/bits/huge_valf.h: New file.
        * sysdeps/ieee754/bits/inf.h: New file.
        * sysdeps/i386/bits/huge_val.h: Remove file.
        * sysdeps/i386/bits/huge_vall.h: New file.
        * sysdeps/ia64/bits/huge_val.h: Remove file.
        * sysdeps/ia64/bits/huge_vall.h: New file.
        * sysdeps/ieee754/ldbl-128/bits/huge_vall.h: New file.
        * sysdeps/m68k/bits/huge_val.h: Remove file.
        * sysdeps/m68k/bits/huge_vall.h: New file.
        * sysdeps/s390/bits/huge_val.h: Remove file.
        * sysdeps/sh/sh4/fpu/bits/huge_val.h: Remove file.
        * sysdeps/sparc/bits/huge_vall.h: New file.
        * sysdeps/sparc/sparc32/fpu/bits/huge_val.h: Remove file.
        * sysdeps/sparc/sparc64/fpu/bits/huge_val.h: Remove file.

        * sysdeps/ieee754/bits/nan.h (NAN): Use __builtin_nanf.
        * sysdeps/mips/bits/nan.h (NAN): Likewise.
2004-03-15 21:44:10 +00:00
Ulrich Drepper
399e12d470 strtold_l for m68k long double. 2004-03-14 21:01:14 +00:00
Ulrich Drepper
360b2fddf1 Not needed anymore. 2004-03-14 20:59:44 +00:00
Ulrich Drepper
23386e2249 Don't define via builtins. 2004-03-10 05:58:17 +00:00
Ulrich Drepper
cebbd6e78d Use GLRO instead of GL where appropriate. 2004-03-05 10:22:54 +00:00
Andreas Schwab
646ae9f228 Avoid matching memory constraints. 2003-12-21 17:31:58 +00:00
Ulrich Drepper
b82390a8da (RTLD_START): Remove setting of __libc_stack_end. 2003-09-24 21:08:31 +00:00
Andreas Schwab
3dc8a4b254 Add hidden_def. 2003-09-15 08:43:12 +00:00
Alexandre Oliva
5027ae109a * elf/dynamic-link.h (elf_machine_rel, elf_machine_rela,
elf_machine_rel_relative, elf_machine_rela_relative): Don't assume
reloc_addr is aligned.
* sysdeps/alpha/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/arm/dl-machine.h (elf_machine_rel, elf_machine_rela,
elf_machine_rel_relative, elf_machine_rela_relative): Adjust.
* sysdeps/cris/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/hppa/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/i386/dl-machine.h (elf_machine_rel, elf_machine_rela,
elf_machine_rel_relative, elf_machine_rela_relative): Adjust.
* sysdeps/ia64/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/m68k/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/mips/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/powerpc/powerpc64/dl-machine.h
(elf_machine_rela_relative, elf_machine_rela): Adjust.
* sysdeps/s390/s390-32/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/s390/s390-64/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative):
* sysdeps/sh/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/x86_64/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
2003-07-31 06:33:52 +00:00
Ulrich Drepper
4bdf10e334 Remove CLFAGS-.oS addition. 2003-07-10 09:22:13 +00:00
Andreas Schwab
fbdd196b52 * sysdeps/m68k/fpu/bits/mathinline.h: Don't inline frexp.
* sysdeps/m68k/fpu/s_frexp.c: Put implementation here.
	* sysdeps/m68k/fpu/s_frexpl.c: Fix to handle unnormalized numbers.
2003-06-26 16:18:13 +00:00
Andreas Schwab
0fadfc223d Update. 2003-06-24 11:06:57 +00:00
Ulrich Drepper
25e5f254ab (atomic_exchange_acq): Renamed from atomic_exchange. 2003-05-10 05:29:30 +00:00
Ulrich Drepper
79b7c8634d Add libc_hidden_builtin_def. 2003-04-29 22:47:20 +00:00
Andreas Schwab
28d6ca4b60 (atomic_increment_and_test): Define.
(atomic_decrement_and_test): Fix test.
2003-03-31 16:01:09 +00:00
Andreas Schwab
97b729d379 Fix typos. 2003-03-25 23:40:18 +00:00
Andreas Schwab
c33a5b5124 Update. 2003-03-22 21:17:47 +00:00
Andreas Schwab
be1628459d Superceded by atomic.h. 2003-03-22 21:00:48 +00:00
Andreas Schwab
d9a3227e9c Atomic operations for m68020 and up. 2003-03-22 20:59:49 +00:00
Andreas Schwab
a25ef3f286 (_dl_start_user): Access
__libc_stack_end through GOT since it is a global symbol.
2003-03-01 15:33:11 +00:00
Andreas Schwab
7495bfa600 (sysdep-CFLAGS): Don't define, not needed any more. 2003-01-30 23:52:52 +00:00
Andreas Schwab
fab80146ed (_dl_start_user): Use pc-relative addressing to save GOT entries. 2003-01-25 23:07:04 +00:00
Andreas Schwab
defd0faa3f (JUMPTARGET): Undefine before defining it. 2003-01-10 14:08:16 +00:00
Andreas Schwab
f3555d4089 Regenerated. 2003-01-09 15:30:03 +00:00
Andreas Schwab
eff2079d51 (sysdep-CFLAGS): Increase inline limit. 2003-01-06 18:11:24 +00:00
Andreas Schwab
a89c56aac4 (elf_machine_runtime_setup): Make sure this is always inlined.
(elf_machine_rela): Likewise.
2003-01-06 18:10:46 +00:00
Andreas Schwab
c0713cc0e0 (CFLAGS-.oS): Append -fPIC. 2003-01-05 17:14:17 +00:00
Ulrich Drepper
044758323b Add __GI__setjmp alias. 2002-12-31 09:35:36 +00:00
Roland McGrath
f8a26bed6f 2002-12-08 Roland McGrath <roland@redhat.com>
* elf/Makefile (tests): Uncomment tst-array[123].
	* Makeconfig (CPPFLAGS-.oS): Add -DLIBC_NONSHARED=1.
	* csu/elf-init.c: New file.
	* csu/Makefile (routines, static-only-routines): Add elf-init.
	* sysdeps/alpha/elf/start.S: Use __libc_csu_init in place of _init
	and __libc_csu_fini in place of _fini.
	* sysdeps/arm/elf/start.S: Likewise.
	* sysdeps/cris/elf/start.S: Likewise.
	* sysdeps/hppa/elf/start.S: Likewise.
	* sysdeps/i386/elf/start.S: Likewise.
	* sysdeps/ia64/elf/start.S: Likewise.
	* sysdeps/m68k/elf/start.S: Likewise.
	* sysdeps/mach/hurd/powerpc/static-start.S: Likewise.
	* sysdeps/mips/elf/start.S: Likewise.
	* sysdeps/powerpc/powerpc32/elf/start.S: Likewise.
	* sysdeps/powerpc/powerpc64/elf/start.S: Likewise.
	* sysdeps/s390/s390-32/elf/start.S: Likewise.
	* sysdeps/s390/s390-64/elf/start.S: Likewise.
	* sysdeps/sh/elf/start.S: Likewise.
	* sysdeps/sparc/sparc32/elf/start.S: Likewise.
	* sysdeps/sparc/sparc64/elf/start.S: Likewise.
	* sysdeps/x86_64/elf/start.S: Likewise.
2002-12-09 20:37:24 +00:00
Andreas Schwab
0220ef788b * sysdeps/m68k/fpu/bits/mathinline.h (isgreater, isgreaterequal)
(isless, islessequal, islessgreater, isunordered) [GCC >= 3.1]:
	Use GCC builtins.
2002-09-22 16:47:55 +00:00
Ulrich Drepper
f4a4647bce (sysdep_routines, shared-only-routines): Don't add divdi3 here. 2002-09-19 06:46:37 +00:00
Ulrich Drepper
280ad607c7 Add libm_hidden_ver. 2002-09-10 01:26:37 +00:00
Ulrich Drepper
fd8d18b3d8 (__isnanl): Add hidden_def. 2002-09-10 01:14:47 +00:00
Ulrich Drepper
d9a08fdfeb (__expm1l): Add libm_hidden_def. 2002-09-10 01:12:49 +00:00
Ulrich Drepper
ce73ae2db2 (__fpclassifyl): Add libm_hidden_def. 2002-09-10 01:11:47 +00:00
Ulrich Drepper
059d7143ed (INTDEFX): Remove.
(hidden_defx): Define and use.
2002-09-10 01:10:41 +00:00
Ulrich Drepper
f3a580877e (__isinfl): Remove INTDEF. Add hidden_def. 2002-09-10 01:05:50 +00:00
Ulrich Drepper
b8daff95dd (__rawmemchr): Add libc_hidden_def. 2002-08-03 06:41:33 +00:00
Andreas Schwab
0ee46773b9 Remove INTDEF. 2002-06-13 12:38:20 +00:00
Andreas Schwab
440fb8d5e6 (INTDEFX): Define to get correct expansion order. 2002-06-13 07:52:09 +00:00
Ulrich Drepper
801777ebaf Also define _internal alias. 2002-04-14 17:54:50 +00:00
Andreas Schwab
e60f3fa198 * sysdeps/m68k/fpu/s_finite.c: Add internal alias.
* sysdeps/m68k/fpu/s_finitef.c: Likewise.
	* sysdeps/m68k/fpu/s_finitel.c: Likewise.
2002-04-13 15:41:53 +00:00
Ulrich Drepper
ceb7d0bbbe Use rtld_progrname instead of _dl_argv[0]. 2002-03-01 09:43:36 +00:00
Ulrich Drepper
dca9c7304b Add HAVE_VISIBILITY_ATTRIBUTE and HAVE_SDATA_SECTION. 2002-02-28 22:36:33 +00:00
Ulrich Drepper
23f357ebe1 (sysdep_routines): Add divdi3 in csu dir.
(shared-only-routines): Likewise.
2002-02-28 19:37:12 +00:00
Ulrich Drepper
c577723005 (RTLD_START): Call _dl_init_internal instead of _dl_init. 2002-02-03 00:29:15 +00:00
Andreas Schwab
d09d6903ed Don't use multi-line string literals. 2002-02-01 10:28:20 +00:00
Ulrich Drepper
f71d7f5726 Move global variables for SHARED code in struct _rtld_global. Export
this struct, remove all exports for the signal variables.
2002-02-01 01:32:06 +00:00
Andreas Jaeger
5374babef3 Prevent double inclusion. 2002-01-08 10:19:33 +00:00
Ulrich Drepper
03012549bd GCC frame description for m68k. 2001-11-16 01:11:16 +00:00
Andreas Schwab
dcac2c1ec8 Updated for fixed cbrtl implementation. 2001-10-16 20:21:38 +00:00
Andreas Schwab
dfc1be7af0 Fix braino in last change. 2001-10-16 15:31:18 +00:00
Andreas Schwab
c70d76bb8e * sysdeps/m68k/setjmp.c: Also define setjmp and _setjmp if
BSD_SETJMP or BSD__SETJMP is defined, resp.
	* sysdeps/m68k/bsd-setjmp.c: Inline setjmp code instead of making
	a tail call to __sigsetjmp that would require extending the
	caller's frame.
	* sysdeps/m68k/bsd-_setjmp.c: Likewise.
	* sysdeps/m68k/bsd-setjmp.S: Deleted.
	* sysdeps/m68k/bsd-_setjmp.S: Deleted.
2001-10-16 14:20:17 +00:00
Andreas Schwab
2d61dc3cdf Updated. 2001-08-29 21:12:09 +00:00
Ulrich Drepper
5c6029e5c0 (elf_machine_lookup_noplt_p, elf_machine_lookup_noexec_p): Remove.
(elf_machine_type_class): Define.
2001-08-26 22:26:38 +00:00
Ulrich Drepper
638c8659a7 (elf_machine_rela_relative): Rename from elf_machine_rel_relative. 2001-08-24 14:51:50 +00:00
Ulrich Drepper
85bdccdbd2 Define elf_machine_rel_relative. Minor optimizations. 2001-08-24 08:43:21 +00:00
Andreas Schwab
4afac624ab (atomic_add): Don't allow address register for operand 0. 2001-08-15 13:09:16 +00:00
Andreas Jaeger
f01ec4673b Put under LGPL v2.1. 2001-07-07 10:13:33 +00:00
Andreas Jaeger
3214b89b32 Update to LGPL v2.1. 2001-07-06 04:56:23 +00:00
Andreas Schwab
f702391cdd * sysdeps/m68k/fpu/bits/mathinline.h: Don't define log2 as inline.
* sysdeps/m68k/fpu/mathimpl.h: Define __ieee754_log2 as inline.
2001-06-15 13:59:28 +00:00
Andreas Schwab
2535264f94 Fix typo. 2001-06-14 14:17:49 +00:00
Ulrich Drepper
356aba5785 M68k log2l implementation. 2001-06-06 12:54:56 +00:00
Ulrich Drepper
34583d4c47 M68k log2f implementation. 2001-06-06 12:54:45 +00:00
Ulrich Drepper
27b26c503a M68k log2 implementation. 2001-06-06 12:54:31 +00:00
Ulrich Drepper
0182de12e0 Renamed. 2001-06-06 12:54:01 +00:00
Andreas Jaeger
13906e12b9 Add .type for the entry point. 2001-06-05 06:20:45 +00:00
Roland McGrath
60446d7a54 2001-06-01 Roland McGrath <roland@frob.com>
* sysdeps/alpha/fpu/fclrexcpt.c: #include <shlib-compat.h>
	and use compat_symbol/versioned_symbol instead of plain
	symbol_version/default_symbol_version.
	* sysdeps/alpha/fpu/fegetenv.c: Likewise.
	* sysdeps/alpha/fpu/fesetenv.c: Likewise.
	* sysdeps/alpha/fpu/feupdateenv.c: Likewise.
	* sysdeps/alpha/fpu/fgetexcptflg.c: Likewise.
	* sysdeps/alpha/fpu/fraiseexcpt.c: Likewise.
	* sysdeps/alpha/fpu/fsetexcptflg.c: Likewise.
	* sysdeps/arm/fpu/fclrexcpt.c: Likewise.
	* sysdeps/arm/fpu/fegetenv.c: Likewise.
	* sysdeps/arm/fpu/fesetenv.c: Likewise.
	* sysdeps/arm/fpu/fraiseexcpt.c: Likewise.
	* sysdeps/arm/fpu/fsetexcptflg.c: Likewise.
	* sysdeps/i386/fpu/fclrexcpt.c: Likewise.
	* sysdeps/i386/fpu/fegetenv.c: Likewise.
	* sysdeps/i386/fpu/fesetenv.c: Likewise.
	* sysdeps/i386/fpu/feupdateenv.c: Likewise.
	* sysdeps/i386/fpu/fgetexcptflg.c: Likewise.
	* sysdeps/i386/fpu/fraiseexcpt.c: Likewise.
	* sysdeps/i386/fpu/fsetexcptflg.c: Likewise.
	* sysdeps/m68k/fpu/fclrexcpt.c: Likewise.
	* sysdeps/m68k/fpu/fegetenv.c: Likewise.
	* sysdeps/m68k/fpu/fesetenv.c: Likewise.
	* sysdeps/m68k/fpu/feupdateenv.c: Likewise.
	* sysdeps/m68k/fpu/fgetexcptflg.c: Likewise.
	* sysdeps/m68k/fpu/fraiseexcpt.c: Likewise.
	* sysdeps/m68k/fpu/fsetexcptflg.c: Likewise.
	* sysdeps/powerpc/fclrexcpt.c: Likewise.
	* sysdeps/powerpc/fpu/fegetenv.c: Likewise.
	* sysdeps/powerpc/fpu/fesetenv.c: Likewise.
	* sysdeps/powerpc/fpu/feupdateenv.c: Likewise.
	* sysdeps/powerpc/fpu/fgetexcptflg.c: Likewise.
	* sysdeps/powerpc/fpu/fraiseexcpt.c: Likewise.
	* sysdeps/powerpc/fpu/fsetexcptflg.c: Likewise.
2001-06-02 05:58:29 +00:00
Andreas Schwab
efaa6dd8a2 * sysdeps/m68k/fpu/libm-test-ulps: Update. 2001-04-20 13:02:01 +00:00
Ulrich Drepper
b0b7e44c75 Adjust for increased precision in result of several tests. 2001-04-17 18:59:43 +00:00
Andreas Schwab
910250c575 Adjusted. 2001-04-11 08:33:14 +00:00
Andreas Schwab
5d0b153553 * sysdeps/m68k/fpu/e_pow.c: Correct handling of some exceptional
values.
	* sysdeps/m68k/fpu/e_scalb.c: Likewise.
2001-04-10 19:58:52 +00:00
Ulrich Drepper
b33675cd5e Dummy replacement for code not needed here. 2001-03-11 23:25:54 +00:00
Ulrich Drepper
773b640096 Replace use of old output functions with the new ones. 2001-02-28 06:35:24 +00:00
Ulrich Drepper
191b842dfe m68k exp2l implementation. 2001-02-17 16:49:41 +00:00
Ulrich Drepper
c79b4fded1 m68k exp2f implementation. 2001-02-17 16:49:28 +00:00
Ulrich Drepper
f1ba5c30fc m68k exp2 implementation. 2001-02-17 16:49:17 +00:00
Ulrich Drepper
00ec1b7df9 Renamed to e_exp2. 2001-02-17 16:46:12 +00:00
Andreas Schwab
ca50de95e8 Correctly handle m68k long double format. 2001-02-16 13:40:22 +00:00
Ulrich Drepper
e8fcfc26e4 Include <float.h>. 2001-01-31 06:34:29 +00:00
Andreas Schwab
582f2b191d (__bswap_32): Add cast to avoid invalid asm. 2001-01-17 15:54:57 +00:00
Ulrich Drepper
e9a0b83c8f Remove FLT_EVAL_METHOD and DECIMAL_DIG definitions. 2000-12-04 08:37:22 +00:00
Andreas Schwab
a873180d70 Add some more ulps. 2000-10-27 16:22:44 +00:00
Ulrich Drepper
ff86bfcd6b Update after libm-test.inc change. 2000-10-26 17:23:46 +00:00
Andreas Schwab
ee44fc4b60 Updated. 2000-10-23 19:14:22 +00:00
Ulrich Drepper
f1dba30859 (elf_machine_matches_host): Parameter is now pointer to ELF header. 2000-10-20 17:04:28 +00:00
Andreas Schwab
09ac296dc4 Update for changes in libm-test.inc. 2000-10-17 13:24:28 +00:00
Andreas Schwab
ef892797ee Fix last change (misapplied). 2000-10-16 09:21:25 +00:00
Andreas Schwab
b57d767cf4 2000-10-13 Michael Fedrowitz <michael@fedrowitz.de>
* sysdeps/m68k/dl-machine.h (_dl_start_user): Pass correct
	arguments to _dl_init.
2000-10-14 12:43:00 +00:00
Andreas Schwab
f7a43cc94a Ulps for m68k. 2000-09-26 17:34:57 +00:00
Ulrich Drepper
efc4903b91 Reorder ieee754 implies so that ldbl-* comes first. 2000-09-16 22:59:10 +00:00
Ulrich Drepper
03a34c9bc2 (FP_ILOGB0): Use values which don't produce warnings. 2000-09-01 06:57:40 +00:00
Ulrich Drepper
d31dde9292 Make FP_ILOGB0 and FP_ILOGBNAN int values. 2000-09-01 06:32:15 +00:00
Ulrich Drepper
858db9cbc8 Change type of FE_*_ENV macros to const fenv_t*. 2000-09-01 04:41:12 +00:00
Andreas Schwab
f10fa39cc7 * sysdeps/m68k/fpu/fegetexcept.c: New file.
* sysdeps/m68k/fpu/fedisblxcpt.c: New file.
* sysdeps/m68k/fpu/feenablxcpt.c: New file.
2000-08-16 15:08:45 +00:00
Greg McGary
ca67152c2a * sysdeps/generic/bp-checks.h (__memchr): Remove incorrect decl.
(__ubp_memchr): Add correct decl.
	(_CHECK_STRING): Use __ubp_memchr.
	* sysdeps/alpha/memchr.S [!__BOUNDED_POINTERS__] (__ubp_memchr):
	New alias for unbounded-pointer __memchr.
	* sysdeps/i386/memchr.S: Likewise.
	* sysdeps/ia64/memchr.S: Likewise.
	* sysdeps/m68k/memchr.S: Likewise.
	* sysdeps/sparc/sparc32/memchr.S: Likewise.
	* sysdeps/sparc/sparc64/memchr.S: Likewise.
	* sysdeps/vax/memchr.s: Likewise.
2000-07-26 18:21:15 +00:00
Greg McGary
23e6128c4e * sysdeps/generic/bp-checks.h: Use unbounded __memchr
rather than non-existent __ubp_memchr.
	(CHECK_STRINGopt, CHECK_FCNTL, BOUNDED_N, BOUNDED_1): New macros.
	(_CHECK_STRING, _CHECK_N): New macros.
	(CHECK_STRING, CHECK_N, CHECK_Nopt): Rewrite in terms of _CHECK_*.
	(CHECK_IOCTL): Move inside `#if !__ASSEMBLER__'.
	* sysdeps/alpha/memchr.S: Change strong name to "__memchr".
	Add weak alias "memchr".
	* sysdeps/generic/memchr.c: Likewise.
	* sysdeps/i386/memchr.S: Likewise.
	* sysdeps/ia64/memchr.S: Likewise.
	* sysdeps/m68k/memchr.S: Likewise.
	* sysdeps/sparc/sparc32/memchr.S: Likewise.
	* sysdeps/sparc/sparc64/memchr.S: Likewise.
	* sysdeps/vax/memchr.s: Likewise.
2000-07-17 22:36:16 +00:00
Ulrich Drepper
c92d72a8fe Include <sysdeps/generic/memusage.h>. 2000-06-20 06:33:57 +00:00
Ulrich Drepper
949eb60694 Macro to allow memory usage tracking. 2000-06-20 06:29:45 +00:00