From 7982ecfe469a67ce5b249da9d6b24a8d6103fc6f Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 7 Nov 2001 06:32:27 +0000 Subject: Update. * elf/dl-profile.c: Replace state variable with simple flag named running. Remove commented-out code. * elf/dl-reloc.c (_dl_relocate_object): Likewise. --- elf/dl-profile.c | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) (limited to 'elf/dl-profile.c') diff --git a/elf/dl-profile.c b/elf/dl-profile.c index 3165517914..9f16a9359e 100644 --- a/elf/dl-profile.c +++ b/elf/dl-profile.c @@ -134,6 +134,9 @@ struct here_cg_arc_record static struct here_cg_arc_record *data; +/* Nonzero if profiling is under way. */ +static int running; + /* This is the number of entry which have been incorporated in the toset. */ static uint32_t narcs; /* This is a pointer to the object representing the number of entries @@ -142,9 +145,6 @@ static uint32_t narcs; lists. */ static volatile uint32_t *narcsp; -/* Description of the currently profiled object. */ -static long int state = GMON_PROF_OFF; - static volatile uint16_t *kcount; static size_t kcountsize; @@ -208,7 +208,7 @@ _dl_start_profile (struct link_map *map, const char *output_dir) /* Now we can compute the size of the profiling data. This is done with the same formulars as in `monstartup' (see gmon.c). */ - state = GMON_PROF_OFF; + running = 0; lowpc = ROUNDDOWN (mapstart + map->l_addr, HISTFRACTION * sizeof (HISTCOUNTER)); highpc = ROUNDUP (mapend + map->l_addr, @@ -424,7 +424,7 @@ _dl_start_profile (struct link_map *map, const char *output_dir) __profil ((void *) kcount, kcountsize, lowpc, s_scale); /* Turn on profiling. */ - state = GMON_PROF_ON; + running = 1; } @@ -435,14 +435,8 @@ _dl_mcount (ElfW(Addr) frompc, ElfW(Addr) selfpc) size_t i, fromindex; struct here_fromstruct *fromp; -#if 0 - /* XXX I think this is now not necessary anymore. */ - if (! compare_and_swap (&state, GMON_PROF_ON, GMON_PROF_BUSY)) - return; -#else - if (state != GMON_PROF_ON) + if (! running) return; -#endif /* Compute relative addresses. The shared object can be loaded at any address. The value of frompc could be anything. We cannot @@ -538,10 +532,5 @@ _dl_mcount (ElfW(Addr) frompc, ElfW(Addr) selfpc) atomic_add (&fromp->here->count, 1); done: -#if 0 - /* XXX See above, Shouldn't be necessary anymore. */ - state = GMON_PROF_ON; -#else ; -#endif } -- cgit v1.2.3