From 14e9dd679a43ef9eb90adc0764152045caab6146 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 24 Feb 1998 15:22:29 +0000 Subject: Update. 1998-02-24 15:12 Ulrich Drepper * Makeconfig: Filter out frame-pointer effecting options when compiling profiling or debugging code. * config.h.in (internal_function): Don't define here if PROF is defined. * gmon/gmon.c (__moncontrol): Don't change state if already in error state. (__monstartup): If calloc fails set error state and mark array as not allocated. (_mcleanup): Don't call write_gmon if in error state. Don't try to free array if not successfully allocated. * elf/dl-load.c (STRING): Define to __STRING to enble expansion. Include elf.h to get macro definitions. Use __ELF?NATIVE?CLASS in message, not __ELF_WORDSIZE. 1998-02-24 09:40 Ulrich Drepper * elf/ldd.sh.in: Add compatibility for broken old shells. * elf/ldd.bash.in: Likewise. 1998-02-24 08:11 H.J. Lu * sunrpc/rpc_main.c (open_input): Check pipe return error. * time/clocktest.c (main): Check signal return error. 1998-02-24 Andreas Jaeger * iconv/Makefile ($(inst_bindir)/iconv): Correct typo, add "/" and use do-install-program. Reported by Mark M. Kettenis. (subdir_install): Likewise. 1998-02-22 Thorsten Kukuk * sunrpc/rpc_sample.c: Fix typo. * nscd/connections.c: Use locale. * nscd/grpcache.c: Add debug messages, gidtbl should get the calloc result. * nscd/nscd.c: Check if init functions fails. * nscd/nscd_conf.c: Allow disabling of group cache. * nscd/nscd_getgr_r.c: Fix return code if group not found. * nscd/pwdcache.c: Fix debug messages. 1998-02-22 Andreas Schwab * libc.map: Add __monstartup and _mcleanup for profiling support. 1998-02-20 Andreas Schwab * libc.map: Export __getpagesize, for binary compatibility with 2.0. 1998-02-21 Andreas Schwab * posix/globtest.sh: Use --library-path instead of LD_LIBRARY_PATH. * localedata/sort-test.sh: Likewise. * localedata/tst-fmon.sh: Likewise. Avoid useless use of cat. 1998-02-22 Andreas Schwab * sysdeps/unix/sysv/linux/sigaction.c: Translate between struct sigaction and struct kernel_sigaction for __syscall_rt_sigaction. * sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise. * sysdeps/unix/sysv/linux/kernel_sigaction.h (struct kernel_sigaction): Define. * sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h (struct kernel_sigaction): Define. 1998-02-23 Andreas Jaeger * math/libm-test.c: Change epsilons for libm-ieee754. 1998-02-23 12:33 Ulrich Drepper * sysdeps/i386/__longjmp.S: Fix race condition. Reported by Bruno Haible . --- gmon/gmon.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'gmon/gmon.c') diff --git a/gmon/gmon.c b/gmon/gmon.c index 787da5a7e7..c3e7c51b8c 100644 --- a/gmon/gmon.c +++ b/gmon/gmon.c @@ -79,6 +79,10 @@ __moncontrol (mode) { struct gmonparam *p = &_gmonparam; + /* Don't change the state if we ran into an error. */ + if (p->state == GMON_PROF_ERROR) + return; + if (mode) { /* start */ @@ -131,7 +135,9 @@ __monstartup (lowpc, highpc) cp = calloc (p->kcountsize + p->fromssize + p->tossize, 1); if (! cp) { - ERR(_("monstartup: out of memory\n")); + ERR("monstartup: out of memory\n"); + p->tos = NULL; + p->state = GMON_PROF_ERROR; return; } p->tos = (struct tostruct *)cp; @@ -350,10 +356,12 @@ weak_alias (__write_profiling, write_profiling) void _mcleanup (void) { - __moncontrol (0); + __moncontrol (0); + if (_gmonparam.state != GMON_PROF_ERROR) write_gmon (); - /* free the memory. */ + /* free the memory. */ + if (_gmonparam.tos != NULL) free (_gmonparam.tos); } -- cgit v1.2.3