Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:15-SP2
libqb.26134
bsc#1075418-libqb-log-callsite-symbols-main-obj...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bsc#1075418-libqb-log-callsite-symbols-main-object.patch of Package libqb.26134
Index: libqb-1.0.1.22-59ea/lib/log.c =================================================================== --- libqb-1.0.1.22-59ea.orig/lib/log.c 2017-02-15 17:32:45.000000000 +0100 +++ libqb-1.0.1.22-59ea/lib/log.c 2018-04-20 15:43:02.000000000 +0200 @@ -781,44 +781,50 @@ _log_so_walk_callback(struct dl_phdr_inf } static void +_log_register_one(const char *dlname) +{ + void *handle, *start, *stop; + const char *error; + + handle = dlopen(dlname, RTLD_LAZY); + error = dlerror(); + if (!handle || error) { + qb_log(LOG_ERR, "%s", error); + goto done; + } + + start = dlsym(handle, QB_ATTR_SECTION_START_STR); + error = dlerror(); + if (error) { + goto done; + } + + stop = dlsym(handle, QB_ATTR_SECTION_STOP_STR); + error = dlerror(); + if (error) { + goto done; + + } else { + qb_log_callsites_register(start, stop); + } +done: + if (handle) + dlclose(handle); +} + +static void _log_so_walk_dlnames(void) { struct dlname *dlname; struct qb_list_head *iter; struct qb_list_head *next; - void *handle; - void *start; - void *stop; - const char *error; - + _log_register_one(NULL); qb_list_for_each_safe(iter, next, &dlnames) { dlname = qb_list_entry(iter, struct dlname, list); - handle = dlopen(dlname->dln_name, RTLD_LAZY); - error = dlerror(); - if (!handle || error) { - qb_log(LOG_ERR, "%s", error); - goto done; - } - - start = dlsym(handle, QB_ATTR_SECTION_START_STR); - error = dlerror(); - if (error) { - goto done; - } - - stop = dlsym(handle, QB_ATTR_SECTION_STOP_STR); - error = dlerror(); - if (error) { - goto done; - - } else { - qb_log_callsites_register(start, stop); - } -done: - if (handle) - dlclose(handle); + _log_register_one(dlname->dln_name); + qb_list_del(iter); if (dlname->dln_name) free(dlname->dln_name);
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