Hi
I'd need help with the following issue with apitrace, which failed the
mass rebuild with:
apitrace-9d42f667e2a36a6624d92b9bd697de097cc4e619/wrappers/dlsym.cpp:70:
undefined reference to `__libc_dlopen_mode'
apitrace-9d42f667e2a36a6624d92b9bd697de097cc4e619/wrappers/dlsym.cpp:72:
undefined reference to `__libc_dlsym'
The code triggering this is below. Have these symbols disappeared from
libc resp is there any alternative?
Thanks
Sandro
-----
/*
* Protect against dlsym interception.
*
* We implement the whole API, so we don't need to intercept dlsym --
dlopen is
* enough. However we need to protect against other dynamic libraries
* intercepting dlsym, to prevent infinite recursion,
*
* In particular the Steam Community Overlay exports dlsym. See also
* http://lists.freedesktop.org/archives/apitrace/2013-March/000573.html
*/
PRIVATE
void *
dlsym(void * handle, const char * symbol)
{
/*
* We rely on glibc's internal __libc_dlsym. See also
* http://www.linuxforu.com/2011/08/lets-hook-a-library-function/
*
* Use use it to obtain the true dlsym. We don't use __libc_dlsym
directly
* because it does not support things such as RTLD_NEXT.
*/
typedef void * (*PFN_DLSYM)(void *, const char *);
static PFN_DLSYM dlsym_ptr = NULL;
if (!dlsym_ptr) {
void *libdl_handle = __libc_dlopen_mode("libdl.so.2",
RTLD_LOCAL | RTLD_NOW);
if (libdl_handle) {
dlsym_ptr = (PFN_DLSYM)__libc_dlsym(libdl_handle, "dlsym");
}
if (!dlsym_ptr) {
os::log("apitrace: error: failed to look up real dlsym\n");
return NULL;
}
}
return dlsym_ptr(handle, symbol);
}
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure