patch from upstream

From 1c872a3e9c4cbf3cbd485168a7e98b589bbad57a Mon Sep 17 00:00:00 2001
From: alonbl <alonbl@6d86ddd8-19ff-0310-a323-aa2ba648d307>
Date: Wed, 14 Dec 2011 10:46:45 +0000
Subject: [PATCH] Remove ltdl usage

Use native POSIX/Windows


git-svn-id: http://www.opensc-project.org/svn/libp11/trunk@202 6d86ddd8-19ff-0310-a323-aa2ba648d307
---
 configure.ac     |   23 +++++------------------
 src/Makefile.am  |    4 ++--
 src/Makefile.mak |    7 ++-----
 src/libpkcs11.c  |   52 +++++++++++++++++++++++++++++++++++++++-------------
 4 files changed, 48 insertions(+), 38 deletions(-)

diff --git a/configure.ac b/configure.ac
index 679b8da..9fa96bf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -180,25 +180,14 @@ if test "${svn_checkout}" = "yes"; then
 	fi
 fi
 
-AC_ARG_VAR([LTLIB_CFLAGS], [C compiler flags for libltdl])
-AC_ARG_VAR([LTLIB_LIBS], [linker flags for libltdl])
-if test -z "${LTLIB_LIBS}"; then
+if test "${WIN32}" != "yes"; then
 	AC_CHECK_LIB(
-		[ltdl],
-		[lt_dlopen],
-		[LTLIB_LIBS="-lltdl"],
-		[AC_MSG_ERROR([ltdl not found, please install libltdl and/or libtool])]
+		[dl],
+		[dlopen],
+		,
+		[AC_MSG_ERROR([libdl required])]
 	)
-
 fi
-saved_CFLAGS="${CFLAGS}"
-CFLAGS="${CFLAGS} ${LTLIB_CFLAGS}"
-AC_CHECK_HEADER(
-	[ltdl.h],
-	,
-	[AC_MSG_ERROR([ltdl.h not found, please install libltdl and/or libtool])]
-)
-CFLAGS="${saved_CFLAGS}"
 
 PKG_CHECK_MODULES(
 	[OPENSSL],
@@ -273,8 +262,6 @@ Compiler flags:          ${CFLAGS}
 Linker flags:            ${LDFLAGS}
 Libraries:               ${LIBS}
 
-LTLIB_CFLAGS:            ${LTLIB_CFLAGS}
-LTLIB_LIBS:              ${LTLIB_LIBS}
 OPENSSL_CFLAGS:          ${OPENSSL_CFLAGS}
 OPENSSL_LIBS:            ${OPENSSL_LIBS}
 
diff --git a/src/Makefile.am b/src/Makefile.am
index c66a8cd..0910f44 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -16,8 +16,8 @@ libp11_la_SOURCES += versioninfo.rc
 else
 dist_noinst_DATA = versioninfo.rc
 endif
-libp11_la_CFLAGS = $(AM_CFLAGS) $(OPENSSL_CFLAGS) $(LTLIB_CFLAGS)
-libp11_la_LIBADD = $(OPENSSL_LIBS) $(LTLIB_LIBS)
+libp11_la_CFLAGS = $(AM_CFLAGS) $(OPENSSL_CFLAGS)
+libp11_la_LIBADD = $(OPENSSL_LIBS)
 libp11_la_LDFLAGS = $(AM_LDFLAGS) \
 	-version-info @LIBP11_LT_CURRENT@:@LIBP11_LT_REVISION@:@LIBP11_LT_AGE@ \
 	-export-symbols "$(srcdir)/libp11.exports" \
diff --git a/src/Makefile.mak b/src/Makefile.mak
index 73b5428..fa0809c 100644
--- a/src/Makefile.mak
+++ b/src/Makefile.mak
@@ -1,10 +1,7 @@
-LIBLTDL_INC =    # E.g. /IC:\libtool-1.5.8-lib\include
-LIBLTDL_LIB =     # E.g. C:\libtool-1.5.8-lib\lib\libltdl.lib
-
 OPENSSL_INC = /IC:\openssl\include
 OPENSSL_LIB = C:\openssl\out32dll\libeay32.lib
 
-COPTS = /Zi /MD /nologo /I..\ /I. $(OPENSSL_INC) $(LIBLTDL_INC) /D_WIN32_WINNT=0x0400 /DWIN32 /DWIN32_LEAN_AND_MEAN
+COPTS = /Zi /MD /nologo /I..\ /I. $(OPENSSL_INC) /D_WIN32_WINNT=0x0400 /DWIN32 /DWIN32_LEAN_AND_MEAN
 LINKFLAGS = /DEBUG /NOLOGO /INCREMENTAL:NO /MACHINE:IX86
 
 TARGET                  = libp11.dll
@@ -28,6 +25,6 @@ $(TARGET): $(OBJECTS) versioninfo.res
 	echo EXPORTS >> $*.def
 	type $*.exports >> $*.def
 	link $(LINKFLAGS) /dll /def:$*.def /implib:$*.lib /out:$(TARGET) \
-		$(OBJECTS) $(OPENSSL_LIB) $(LIBLTDL_LIB) versioninfo.res
+		$(OBJECTS) $(OPENSSL_LIB) versioninfo.res
 	if EXIST $*.dll.manifest mt -manifest $*.dll.manifest -outputresource:$*.dll;2
 
diff --git a/src/libpkcs11.c b/src/libpkcs11.c
index a146361..93584d9 100644
--- a/src/libpkcs11.c
+++ b/src/libpkcs11.c
@@ -27,14 +27,18 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
-#include <ltdl.h>
+#ifdef WIN32
+#include <windows.h>
+#else
+#include <dlfcn.h>
+#endif
 #include "libp11-int.h"
 
 #define MAGIC			0xd00bed00
 
 struct sc_pkcs11_module {
 	unsigned int _magic;
-	lt_dlhandle handle;
+	void *handle;
 };
 typedef struct sc_pkcs11_module sc_pkcs11_module_t;
 
@@ -52,19 +56,40 @@ C_LoadModule(const char *mspec, CK_FUNCTION_LIST_PTR_PTR funcs)
 	if (mspec == NULL)
 		return NULL;
 
-	if (lt_dlinit() != 0)
-		return NULL;
-
 	mod = (sc_pkcs11_module_t *) calloc(1, sizeof(*mod));
 	mod->_magic = MAGIC;
 
-	mod->handle = lt_dlopen(mspec);
+#ifdef WIN32
+	mod->handle = LoadLibraryA(mspec);
+#else
+	mod->handle = dlopen(mspec, RTLD_NOW);
+#endif
+
 	if (mod->handle == NULL)
 		goto failed;
 
-	/* Get the list of function pointers */
-	c_get_function_list = (CK_RV (*)(CK_FUNCTION_LIST_PTR_PTR))
-				lt_dlsym(mod->handle, "C_GetFunctionList");
+#ifdef WIN32
+	c_get_function_list = (CK_C_GetFunctionList)GetProcAddress (
+		mod->handle,
+		"C_GetFunctionList"
+	);
+#else
+	{
+		/*
+		 * Make compiler happy!
+		 */
+		void *p = dlsym(
+			mod->handle,
+			"C_GetFunctionList"
+		);
+		memmove(
+			&c_get_function_list, 
+			&p,
+			sizeof(void *)
+		);
+	}
+#endif
+
 	if (!c_get_function_list)
 		goto failed;
 	rv = c_get_function_list(funcs);
@@ -89,13 +114,14 @@ C_UnloadModule(void *module)
 	if (!mod || mod->_magic != MAGIC)
 		return CKR_ARGUMENTS_BAD;
 
-	if (lt_dlclose(mod->handle) < 0)
-		return CKR_FUNCTION_FAILED;
+#ifdef WIN32
+	FreeLibrary(mod->handle);
+#else
+	dlclose(mod->handle);
+#endif
 
 	memset(mod, 0, sizeof(*mod));
 	free(mod);
 
-	lt_dlexit();
-
 	return CKR_OK;
 }
-- 
1.7.6.1

