summaryrefslogtreecommitdiffstats
path: root/crypto/dso
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2009-07-15 17:58:57 +0000
committerDr. Stephen Henson <steve@openssl.org>2009-07-15 17:58:57 +0000
commit7dfae89768407ccfb5b9b9f47423df079226cb2c (patch)
treedcf65e33634badf795f5634f44dccd491576c1b2 /crypto/dso
parentd41ca3f0e2fbee236a098b017177cee74973bd44 (diff)
Handle OSX ".dynlib" DSO extension.
Diffstat (limited to 'crypto/dso')
-rw-r--r--crypto/dso/dso_dlfcn.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/crypto/dso/dso_dlfcn.c b/crypto/dso/dso_dlfcn.c
index 168c25b9e8..06953f3bd5 100644
--- a/crypto/dso/dso_dlfcn.c
+++ b/crypto/dso/dso_dlfcn.c
@@ -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);