|
|
@ -76,7 +76,9 @@ TODO
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
* For SWT apps (e.g. eclipse) we need to override dlsym.
|
|
|
|
* For SWT apps (e.g. eclipse) we need to override dlsym.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifdef HAVE_DL_SYM
|
|
|
|
extern void *_dl_sym(void *, const char *, void *);
|
|
|
|
extern void *_dl_sym(void *, const char *, void *);
|
|
|
|
|
|
|
|
#endif
|
|
|
|
static void * real_dlsym (void *handle, const char *name);
|
|
|
|
static void * real_dlsym (void *handle, const char *name);
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum
|
|
|
|
typedef enum
|
|
|
@ -2246,7 +2248,11 @@ static void * real_dlsym(void *handle, const char *name)
|
|
|
|
if (!realFunction)
|
|
|
|
if (!realFunction)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// Get the real dlsym function
|
|
|
|
// Get the real dlsym function
|
|
|
|
|
|
|
|
#ifdef HAVE_DL_SYM
|
|
|
|
realFunction = _dl_sym(RTLD_NEXT, "dlsym", dlsym);
|
|
|
|
realFunction = _dl_sym(RTLD_NEXT, "dlsym", dlsym);
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
realFunction = dlvsym(RTLD_NEXT, "dlsym", "GLIBC_2.2.5");
|
|
|
|
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (realFunction)
|
|
|
|
if (realFunction)
|
|
|
|