diff options
Diffstat (limited to 'tools/perf/util/symbol.c')
| -rw-r--r-- | tools/perf/util/symbol.c | 13 | 
1 files changed, 6 insertions, 7 deletions
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index c0a028c3eba..ab9867b2b43 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c @@ -977,8 +977,9 @@ static Elf_Scn *elf_section_by_name(Elf *elf, GElf_Ehdr *ep,   * And always look at the original dso, not at debuginfo packages, that   * have the PLT data stripped out (shdr_rel_plt.sh_type == SHT_NOBITS).   */ -static int dso__synthesize_plt_symbols(struct  dso *dso, struct map *map, -				       symbol_filter_t filter) +static int +dso__synthesize_plt_symbols(struct dso *dso, char *name, struct map *map, +			    symbol_filter_t filter)  {  	uint32_t nr_rel_entries, idx;  	GElf_Sym sym; @@ -993,10 +994,7 @@ static int dso__synthesize_plt_symbols(struct  dso *dso, struct map *map,  	char sympltname[1024];  	Elf *elf;  	int nr = 0, symidx, fd, err = 0; -	char name[PATH_MAX]; -	snprintf(name, sizeof(name), "%s%s", -		 symbol_conf.symfs, dso->long_name);  	fd = open(name, O_RDONLY);  	if (fd < 0)  		goto out; @@ -1703,8 +1701,9 @@ restart:  			continue;  		if (ret > 0) { -			int nr_plt = dso__synthesize_plt_symbols(dso, map, -								 filter); +			int nr_plt; + +			nr_plt = dso__synthesize_plt_symbols(dso, name, map, filter);  			if (nr_plt > 0)  				ret += nr_plt;  			break;  |