Changeset 202


Ignore:
Timestamp:
12/14/11 10:46:45 (5 months ago)
Author:
alonbl
Message:

Remove ltdl usage

Use native POSIX/Windows

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/configure.ac

    r200 r202  
    181181fi 
    182182 
    183 AC_ARG_VAR([LTLIB_CFLAGS], [C compiler flags for libltdl]) 
    184 AC_ARG_VAR([LTLIB_LIBS], [linker flags for libltdl]) 
    185 if test -z "${LTLIB_LIBS}"; then 
     183if test "${WIN32}" != "yes"; then 
    186184        AC_CHECK_LIB( 
    187                 [ltdl], 
    188                 [lt_dlopen], 
    189                 [LTLIB_LIBS="-lltdl"], 
    190                 [AC_MSG_ERROR([ltdl not found, please install libltdl and/or libtool])] 
     185                [dl], 
     186                [dlopen], 
     187                , 
     188                [AC_MSG_ERROR([libdl required])] 
    191189        ) 
    192  
    193 fi 
    194 saved_CFLAGS="${CFLAGS}" 
    195 CFLAGS="${CFLAGS} ${LTLIB_CFLAGS}" 
    196 AC_CHECK_HEADER( 
    197         [ltdl.h], 
    198         , 
    199         [AC_MSG_ERROR([ltdl.h not found, please install libltdl and/or libtool])] 
    200 ) 
    201 CFLAGS="${saved_CFLAGS}" 
     190fi 
    202191 
    203192PKG_CHECK_MODULES( 
     
    274263Libraries:               ${LIBS} 
    275264 
    276 LTLIB_CFLAGS:            ${LTLIB_CFLAGS} 
    277 LTLIB_LIBS:              ${LTLIB_LIBS} 
    278265OPENSSL_CFLAGS:          ${OPENSSL_CFLAGS} 
    279266OPENSSL_LIBS:            ${OPENSSL_LIBS} 
  • trunk/src/Makefile.am

    r148 r202  
    1717dist_noinst_DATA = versioninfo.rc 
    1818endif 
    19 libp11_la_CFLAGS = $(AM_CFLAGS) $(OPENSSL_CFLAGS) $(LTLIB_CFLAGS) 
    20 libp11_la_LIBADD = $(OPENSSL_LIBS) $(LTLIB_LIBS) 
     19libp11_la_CFLAGS = $(AM_CFLAGS) $(OPENSSL_CFLAGS) 
     20libp11_la_LIBADD = $(OPENSSL_LIBS) 
    2121libp11_la_LDFLAGS = $(AM_LDFLAGS) \ 
    2222        -version-info @LIBP11_LT_CURRENT@:@LIBP11_LT_REVISION@:@LIBP11_LT_AGE@ \ 
  • trunk/src/Makefile.mak

    r147 r202  
    1 LIBLTDL_INC =    # E.g. /IC:\libtool-1.5.8-lib\include 
    2 LIBLTDL_LIB =     # E.g. C:\libtool-1.5.8-lib\lib\libltdl.lib 
    3  
    41OPENSSL_INC = /IC:\openssl\include 
    52OPENSSL_LIB = C:\openssl\out32dll\libeay32.lib 
    63 
    7 COPTS = /Zi /MD /nologo /I..\ /I. $(OPENSSL_INC) $(LIBLTDL_INC) /D_WIN32_WINNT=0x0400 /DWIN32 /DWIN32_LEAN_AND_MEAN 
     4COPTS = /Zi /MD /nologo /I..\ /I. $(OPENSSL_INC) /D_WIN32_WINNT=0x0400 /DWIN32 /DWIN32_LEAN_AND_MEAN 
    85LINKFLAGS = /DEBUG /NOLOGO /INCREMENTAL:NO /MACHINE:IX86 
    96 
     
    2926        type $*.exports >> $*.def 
    3027        link $(LINKFLAGS) /dll /def:$*.def /implib:$*.lib /out:$(TARGET) \ 
    31                 $(OBJECTS) $(OPENSSL_LIB) $(LIBLTDL_LIB) versioninfo.res 
     28                $(OBJECTS) $(OPENSSL_LIB) versioninfo.res 
    3229        if EXIST $*.dll.manifest mt -manifest $*.dll.manifest -outputresource:$*.dll;2 
    3330 
  • trunk/src/libpkcs11.c

    r142 r202  
    2828#include <stdio.h> 
    2929#include <string.h> 
    30 #include <ltdl.h> 
     30#ifdef WIN32 
     31#include <windows.h> 
     32#else 
     33#include <dlfcn.h> 
     34#endif 
    3135#include "libp11-int.h" 
    3236 
     
    3539struct sc_pkcs11_module { 
    3640        unsigned int _magic; 
    37         lt_dlhandle handle; 
     41        void *handle; 
    3842}; 
    3943typedef struct sc_pkcs11_module sc_pkcs11_module_t; 
     
    5357                return NULL; 
    5458 
    55         if (lt_dlinit() != 0) 
    56                 return NULL; 
    57  
    5859        mod = (sc_pkcs11_module_t *) calloc(1, sizeof(*mod)); 
    5960        mod->_magic = MAGIC; 
    6061 
    61         mod->handle = lt_dlopen(mspec); 
     62#ifdef WIN32 
     63        mod->handle = LoadLibraryA(mspec); 
     64#else 
     65        mod->handle = dlopen(mspec, RTLD_NOW); 
     66#endif 
     67 
    6268        if (mod->handle == NULL) 
    6369                goto failed; 
    6470 
    65         /* Get the list of function pointers */ 
    66         c_get_function_list = (CK_RV (*)(CK_FUNCTION_LIST_PTR_PTR)) 
    67                                 lt_dlsym(mod->handle, "C_GetFunctionList"); 
     71#ifdef WIN32 
     72        c_get_function_list = (CK_C_GetFunctionList)GetProcAddress ( 
     73                mod->handle, 
     74                "C_GetFunctionList" 
     75        ); 
     76#else 
     77        { 
     78                /* 
     79                 * Make compiler happy! 
     80                 */ 
     81                void *p = dlsym( 
     82                        mod->handle, 
     83                        "C_GetFunctionList" 
     84                ); 
     85                memmove( 
     86                        &c_get_function_list,  
     87                        &p, 
     88                        sizeof(void *) 
     89                ); 
     90        } 
     91#endif 
     92 
    6893        if (!c_get_function_list) 
    6994                goto failed; 
     
    90115                return CKR_ARGUMENTS_BAD; 
    91116 
    92         if (lt_dlclose(mod->handle) < 0) 
    93                 return CKR_FUNCTION_FAILED; 
     117#ifdef WIN32 
     118        FreeLibrary(mod->handle); 
     119#else 
     120        dlclose(mod->handle); 
     121#endif 
    94122 
    95123        memset(mod, 0, sizeof(*mod)); 
    96124        free(mod); 
    97125 
    98         lt_dlexit(); 
    99  
    100126        return CKR_OK; 
    101127} 
Note: See TracChangeset for help on using the changeset viewer.