Handle OSX ".dynlib" DSO extension.

This commit is contained in:
Dr. Stephen Henson
2009-07-15 17:58:57 +00:00
parent d41ca3f0e2
commit 7dfae89768

View File

@@ -351,6 +351,15 @@ static char *dlfcn_merger(DSO *dso, const char *filespec1,
return(merged); return(merged);
} }
#ifdef OPENSSL_SYS_MAC
#define DSO_ext ".dynlib"
#define DSO_extlen 7
#else
#define DSO_ext ".so"
#define DSO_extlen 3
#endif
static char *dlfcn_name_converter(DSO *dso, const char *filename) static char *dlfcn_name_converter(DSO *dso, const char *filename)
{ {
char *translated; char *translated;
@@ -361,8 +370,8 @@ static char *dlfcn_name_converter(DSO *dso, const char *filename)
transform = (strstr(filename, "/") == NULL); transform = (strstr(filename, "/") == NULL);
if(transform) if(transform)
{ {
/* We will convert this to "%s.so" or "lib%s.so" */ /* We will convert this to "%s.so" or "lib%s.so" etc */
rsize += 3; /* The length of ".so" */ rsize += DSO_extlen; /* The length of ".so" */
if ((DSO_flags(dso) & DSO_FLAG_NAME_TRANSLATION_EXT_ONLY) == 0) if ((DSO_flags(dso) & DSO_FLAG_NAME_TRANSLATION_EXT_ONLY) == 0)
rsize += 3; /* The length of "lib" */ rsize += 3; /* The length of "lib" */
} }
@@ -376,9 +385,9 @@ static char *dlfcn_name_converter(DSO *dso, const char *filename)
if(transform) if(transform)
{ {
if ((DSO_flags(dso) & DSO_FLAG_NAME_TRANSLATION_EXT_ONLY) == 0) if ((DSO_flags(dso) & DSO_FLAG_NAME_TRANSLATION_EXT_ONLY) == 0)
sprintf(translated, "lib%s.so", filename); sprintf(translated, "lib%s" DSO_ext, filename);
else else
sprintf(translated, "%s.so", filename); sprintf(translated, "%s" DSO_ext, filename);
} }
else else
sprintf(translated, "%s", filename); sprintf(translated, "%s", filename);