Commit 7dfae897 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Handle OSX ".dynlib" DSO extension.

parent d41ca3f0
Loading
Loading
Loading
Loading
+13 −4
Changes for crypto/dso/dso_dlfcn.c: 13 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -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);