Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12:Update
ltrace
ltrace-ppc64le_git11.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ltrace-ppc64le_git11.patch of Package ltrace
--- sysdeps/linux-gnu/trace.c.ori +++ sysdeps/linux-gnu/trace.c @@ -1240,17 +1240,14 @@ irelative_name_cb(GElf_Sym *symbol, const char *name, void *d) return CBS_CONT; } -enum plt_status -linux_elf_add_plt_entry_irelative(struct Process *proc, struct ltelf *lte, - GElf_Rela *rela, size_t ndx, - struct library_symbol **ret) - +char * +linux_elf_find_irelative_name(struct ltelf *lte, GElf_Rela *rela) { struct irelative_name_data_t data = { rela->r_addend, NULL }; if (rela->r_addend != 0 && elf_each_symbol(lte, 0, irelative_name_cb, &data).status < 0) - return -1; + return NULL; const char *name; if (data.found_name != NULL) { @@ -1265,8 +1262,17 @@ linux_elf_add_plt_entry_irelative(struct Process *proc, struct ltelf *lte, #undef NAME } - if (default_elf_add_plt_entry(proc, lte, name, rela, ndx, ret) < 0) - return plt_fail; + return strdup(name); +} - return plt_ok; +enum plt_status +linux_elf_add_plt_entry_irelative(struct Process *proc, struct ltelf *lte, + GElf_Rela *rela, size_t ndx, + struct library_symbol **ret) + +{ + char *name = linux_elf_find_irelative_name(lte, rela); + int i = default_elf_add_plt_entry(proc, lte, name, rela, ndx, ret); + free(name); + return i < 0 ? plt_fail : plt_ok; } --- sysdeps/linux-gnu/trace.h.ori +++ sysdeps/linux-gnu/trace.h @@ -136,4 +136,10 @@ enum plt_status linux_elf_add_plt_entry_irelative(struct Process *proc, GElf_Rela *rela, size_t ndx, struct library_symbol **ret); +/* Service routine of the above. Determines a name corresponding to + * RELA, or invents a new one. Returns NULL on failures, otherwise it + * returns a malloc'd pointer that the caller is responsible for + * freeing. */ +char *linux_elf_find_irelative_name(struct ltelf *lte, GElf_Rela *rela); + #endif /* _LTRACE_LINUX_TRACE_H_ */
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor