From d552a4310cc5fec18083fe6bfe9ffa96cfa5df77 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 13 Feb 2002 09:44:17 +0000 Subject: Update. * elf/dl-open.c (dl_open_worker): Only bump the generation counter if this is really necessary. --- elf/dl-open.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'elf') diff --git a/elf/dl-open.c b/elf/dl-open.c index c7acd74964..6fcfcce3ce 100644 --- a/elf/dl-open.c +++ b/elf/dl-open.c @@ -155,6 +155,9 @@ dl_open_worker (void *a) const char *dst; int lazy; unsigned int i; +#ifdef USE_TLS + bool any_tls; +#endif /* Maybe we have to expand a DST. */ dst = strchr (file, '$'); @@ -292,6 +295,12 @@ dl_open_worker (void *a) l = l->l_prev; } +#ifdef USE_TLS + /* We normally don't bump the TLS generation counter. There must be + actually a need to do this. */ + any_tls = false; +#endif + /* Increment the open count for all dependencies. If the file is not loaded as a dependency here add the search list of the newly loaded object to the scope. */ @@ -415,10 +424,14 @@ dl_open_worker (void *a) /* Add the information into the slotinfo data structure. */ listp->slotinfo[idx].map = new->l_searchlist.r_list[i]; listp->slotinfo[idx].gen = GL(dl_tls_generation) + 1; + + /* We have to bump the generation counter. */ + any_tls = true; } - /* Bump the generation number. */ - ++GL(dl_tls_generation); + /* Bump the generation number if necessary. */ + if (any_tls) + ++GL(dl_tls_generation); #endif /* Run the initializer functions of new objects. */ -- cgit v1.2.3