From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gnu.wildebeest.org (gnu.wildebeest.org [45.83.234.184]) by sourceware.org (Postfix) with ESMTPS id B59B03858017 for ; Tue, 10 Oct 2023 13:43:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B59B03858017 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=klomp.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=klomp.org Received: from r6.localdomain (82-217-174-174.cable.dynamic.v4.ziggo.nl [82.217.174.174]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gnu.wildebeest.org (Postfix) with ESMTPSA id 07BF33022F19; Tue, 10 Oct 2023 15:43:35 +0200 (CEST) Received: by r6.localdomain (Postfix, from userid 1000) id 2CFD93403F4; Tue, 10 Oct 2023 15:43:34 +0200 (CEST) From: Mark Wielaard To: elfutils-devel@sourceware.org Cc: hsm2@rice.edu, Mark Wielaard Subject: [PATCH 09/16] src: Use eu-search in nm and findtextrel. Date: Tue, 10 Oct 2023 15:42:53 +0200 Message-ID: <20231010134300.53830-9-mark@klomp.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20231010134300.53830-1-mark@klomp.org> References: <301fac87e83ebbbd677750579ae9a3429b461bdf.camel@klomp.org> <20231010134300.53830-1-mark@klomp.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3033.6 required=5.0 tests=BAYES_00,GIT_PATCH_0,JMQ_SPF_NEUTRAL,KAM_DMARC_STATUS,RCVD_IN_BARRACUDACENTRAL,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: From: Heather McIntyre * src/Makefile.am: Add USE_LOCKS condition for -pthread. * src/findtextrel.c: Add eu-search.h and remove search.h. Change calls of tsearch/tfind to eu_tsearch/eu_tfind. * src/nm.c: Likewise. Signed-off-by: Heather S. McIntyre Signed-off-by: Mark Wielaard --- src/Makefile.am | 3 +++ src/findtextrel.c | 10 +++++----- src/nm.c | 10 +++++----- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index 10d59a48..fea5d43e 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -22,6 +22,9 @@ DEFS += $(YYDEBUG) -DDEBUGPRED=@DEBUGPRED@ \ AM_CPPFLAGS += -I$(srcdir)/../libelf -I$(srcdir)/../libebl \ -I$(srcdir)/../libdw -I$(srcdir)/../libdwelf \ -I$(srcdir)/../libdwfl -I$(srcdir)/../libasm +if USE_LOCKS + AM_CFLAGS += -pthread +endif AM_LDFLAGS = -Wl,-rpath-link,../libelf:../libdw $(STACK_USAGE_NO_ERROR) diff --git a/src/findtextrel.c b/src/findtextrel.c index d3021a3a..5ac4c29a 100644 --- a/src/findtextrel.c +++ b/src/findtextrel.c @@ -27,7 +27,7 @@ #include #include #include -#include +#include #include #include #include @@ -501,10 +501,10 @@ check_rel (size_t nsegments, struct segments segments[nsegments], /* There can be more than one relocation against one file. Try to avoid multiple messages. And yes, the code uses pointer comparison. */ - if (tfind (src, knownsrcs, ptrcompare) == NULL) + if (eu_tfind (src, knownsrcs, ptrcompare) == NULL) { printf (_("%s not compiled with -fpic/-fPIC\n"), src); - tsearch (src, knownsrcs, ptrcompare); + eu_tsearch (src, knownsrcs, ptrcompare); } return; } @@ -555,12 +555,12 @@ check_rel (size_t nsegments, struct segments segments[nsegments], if (sym->st_value + sym->st_size > addr) { /* It is this function. */ - if (tfind (lowstr, knownsrcs, ptrcompare) == NULL) + if (eu_tfind (lowstr, knownsrcs, ptrcompare) == NULL) { printf (_("\ the file containing the function '%s' is not compiled with -fpic/-fPIC\n"), lowstr); - tsearch (lowstr, knownsrcs, ptrcompare); + eu_tsearch (lowstr, knownsrcs, ptrcompare); } } else if (highidx == -1) diff --git a/src/nm.c b/src/nm.c index fbdee8e1..44c20fb2 100644 --- a/src/nm.c +++ b/src/nm.c @@ -32,7 +32,7 @@ #include #include #include -#include +#include #include #include #include @@ -537,7 +537,7 @@ static int get_global (Dwarf *dbg __attribute__ ((unused)), Dwarf_Global *global, void *arg __attribute__ ((unused))) { - tsearch (memcpy (xmalloc (sizeof (Dwarf_Global)), global, + eu_tsearch (memcpy (xmalloc (sizeof (Dwarf_Global)), global, sizeof (Dwarf_Global)), &global_root, global_compare); @@ -696,7 +696,7 @@ get_local_names (Dwarf *dbg) /* Check whether a similar local_name is already in the cache. That should not happen. But if it does, we don't want to leak memory. */ - struct local_name **tres = tsearch (newp, &local_root, + struct local_name **tres = eu_tsearch (newp, &local_root, local_compare); if (tres == NULL) error_exit (errno, _("cannot create search tree")); @@ -1387,7 +1387,7 @@ show_symbols (int fd, Ebl *ebl, GElf_Ehdr *ehdr, && global_root != NULL) { Dwarf_Global fake = { .name = symstr }; - Dwarf_Global **found = tfind (&fake, &global_root, + Dwarf_Global **found = eu_tfind (&fake, &global_root, global_compare); if (found != NULL) { @@ -1442,7 +1442,7 @@ show_symbols (int fd, Ebl *ebl, GElf_Ehdr *ehdr, .lowpc = sym->st_value, .highpc = sym->st_value, }; - struct local_name **found = tfind (&fake, &local_root, + struct local_name **found = eu_tfind (&fake, &local_root, local_compare); if (found != NULL) { -- 2.41.0