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);
}
#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)
{
char *translated;
@ -361,8 +370,8 @@ static char *dlfcn_name_converter(DSO *dso, const char *filename)
transform = (strstr(filename, "/") == NULL);
if(transform)
{
/* We will convert this to "%s.so" or "lib%s.so" */
rsize += 3; /* The length of ".so" */
/* We will convert this to "%s.so" or "lib%s.so" etc */
rsize += DSO_extlen; /* The length of ".so" */
if ((DSO_flags(dso) & DSO_FLAG_NAME_TRANSLATION_EXT_ONLY) == 0)
rsize += 3; /* The length of "lib" */
}
@ -376,9 +385,9 @@ static char *dlfcn_name_converter(DSO *dso, const char *filename)
if(transform)
{
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
sprintf(translated, "%s.so", filename);
sprintf(translated, "%s" DSO_ext, filename);
}
else
sprintf(translated, "%s", filename);