On Tue, Jan 13, 2015 at 04:36:53PM +0800, Wang Nan wrote: > On 2015/1/13 15:10, Jiri Olsa wrote: > > On Tue, Jan 13, 2015 at 10:54:37AM +0800, Wang Nan wrote: > > > > SNIP > > > >> > >> +static int elf_is_exec(int fd, const char *name) > >> +{ > >> + Elf *elf; > >> + GElf_Ehdr ehdr; > >> + int retval = 0; > >> + > >> + elf = elf_begin(fd, PERF_ELF_C_READ_MMAP, NULL); > >> + if (elf == NULL) > >> + return 0; > >> + if (gelf_getehdr(elf, &ehdr) == NULL) > >> + goto out; > >> + > >> + retval = (ehdr.e_type == ET_EXEC); > >> + > >> +out: > >> + elf_end(elf); > >> + pr_debug("unwind: elf_is_exec(%s): %d\n", name, retval); > >> + return retval; > >> + > >> +} > > > > yuou need to add stub for 'NO_LIBUNWIND_DEBUG_FRAME=1', otherwise: > > > > CC util/dwarf-aux.o > > CC util/unwind-libunwind.o > > util/unwind-libunwind.c:188:12: error: ‘elf_is_exec’ defined but not used > > [-Werror=unused-function] > > static int elf_is_exec(int fd, const char *name) > > ^ > > cc1: all warnings being treated as errors > > make[1]: *** [util/unwind-libunwind.o] Error 1 > > make[1]: *** Waiting for unfinished jobs.... > > make: *** [all] Error 2 > > > > jirka > > > > Thanks. I haven't test NO_LIBUNWIND_DEBUG_FRAME=1 case. > > I found that it is possible to utilize map->dso->adjust_symbols for this > propose so > we don't need to introduce another function to check ehdr.e_type. However > map->dso->adjust_symbols checks not only ET_EXEC but also ET_REL. What do you > think? > > I'd like to check it and post another patch.
please also update tests/mate thanks, jirka -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/