Gentoo Archives: gentoo-commits

From: "Mike Frysinger (vapier)" <vapier@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in dev-libs/libp11/files: libp11-0.2.8-no-ltdl.patch
Date: Mon, 02 Jan 2012 19:41:06
Message-Id: 20120102194031.BC8412004C@flycatcher.gentoo.org
1 vapier 12/01/02 19:40:31
2
3 Added: libp11-0.2.8-no-ltdl.patch
4 Log:
5 Add patch from upstream to drop libtool requirement #394717.
6
7 (Portage version: 2.2.0_alpha81/cvs/Linux x86_64)
8
9 Revision Changes Path
10 1.1 dev-libs/libp11/files/libp11-0.2.8-no-ltdl.patch
11
12 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/libp11/files/libp11-0.2.8-no-ltdl.patch?rev=1.1&view=markup
13 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/libp11/files/libp11-0.2.8-no-ltdl.patch?rev=1.1&content-type=text/plain
14
15 Index: libp11-0.2.8-no-ltdl.patch
16 ===================================================================
17 patch from upstream
18
19 From 1c872a3e9c4cbf3cbd485168a7e98b589bbad57a Mon Sep 17 00:00:00 2001
20 From: alonbl <alonbl@6d86ddd8-19ff-0310-a323-aa2ba648d307>
21 Date: Wed, 14 Dec 2011 10:46:45 +0000
22 Subject: [PATCH] Remove ltdl usage
23
24 Use native POSIX/Windows
25
26
27 git-svn-id: http://www.opensc-project.org/svn/libp11/trunk@202 6d86ddd8-19ff-0310-a323-aa2ba648d307
28 ---
29 configure.ac | 23 +++++------------------
30 src/Makefile.am | 4 ++--
31 src/Makefile.mak | 7 ++-----
32 src/libpkcs11.c | 52 +++++++++++++++++++++++++++++++++++++++-------------
33 4 files changed, 48 insertions(+), 38 deletions(-)
34
35 diff --git a/configure.ac b/configure.ac
36 index 679b8da..9fa96bf 100644
37 --- a/configure.ac
38 +++ b/configure.ac
39 @@ -180,25 +180,14 @@ if test "${svn_checkout}" = "yes"; then
40 fi
41 fi
42
43 -AC_ARG_VAR([LTLIB_CFLAGS], [C compiler flags for libltdl])
44 -AC_ARG_VAR([LTLIB_LIBS], [linker flags for libltdl])
45 -if test -z "${LTLIB_LIBS}"; then
46 +if test "${WIN32}" != "yes"; then
47 AC_CHECK_LIB(
48 - [ltdl],
49 - [lt_dlopen],
50 - [LTLIB_LIBS="-lltdl"],
51 - [AC_MSG_ERROR([ltdl not found, please install libltdl and/or libtool])]
52 + [dl],
53 + [dlopen],
54 + ,
55 + [AC_MSG_ERROR([libdl required])]
56 )
57 -
58 fi
59 -saved_CFLAGS="${CFLAGS}"
60 -CFLAGS="${CFLAGS} ${LTLIB_CFLAGS}"
61 -AC_CHECK_HEADER(
62 - [ltdl.h],
63 - ,
64 - [AC_MSG_ERROR([ltdl.h not found, please install libltdl and/or libtool])]
65 -)
66 -CFLAGS="${saved_CFLAGS}"
67
68 PKG_CHECK_MODULES(
69 [OPENSSL],
70 @@ -273,8 +262,6 @@ Compiler flags: ${CFLAGS}
71 Linker flags: ${LDFLAGS}
72 Libraries: ${LIBS}
73
74 -LTLIB_CFLAGS: ${LTLIB_CFLAGS}
75 -LTLIB_LIBS: ${LTLIB_LIBS}
76 OPENSSL_CFLAGS: ${OPENSSL_CFLAGS}
77 OPENSSL_LIBS: ${OPENSSL_LIBS}
78
79 diff --git a/src/Makefile.am b/src/Makefile.am
80 index c66a8cd..0910f44 100644
81 --- a/src/Makefile.am
82 +++ b/src/Makefile.am
83 @@ -16,8 +16,8 @@ libp11_la_SOURCES += versioninfo.rc
84 else
85 dist_noinst_DATA = versioninfo.rc
86 endif
87 -libp11_la_CFLAGS = $(AM_CFLAGS) $(OPENSSL_CFLAGS) $(LTLIB_CFLAGS)
88 -libp11_la_LIBADD = $(OPENSSL_LIBS) $(LTLIB_LIBS)
89 +libp11_la_CFLAGS = $(AM_CFLAGS) $(OPENSSL_CFLAGS)
90 +libp11_la_LIBADD = $(OPENSSL_LIBS)
91 libp11_la_LDFLAGS = $(AM_LDFLAGS) \
92 -version-info @LIBP11_LT_CURRENT@:@LIBP11_LT_REVISION@:@LIBP11_LT_AGE@ \
93 -export-symbols "$(srcdir)/libp11.exports" \
94 diff --git a/src/Makefile.mak b/src/Makefile.mak
95 index 73b5428..fa0809c 100644
96 --- a/src/Makefile.mak
97 +++ b/src/Makefile.mak
98 @@ -1,10 +1,7 @@
99 -LIBLTDL_INC = # E.g. /IC:\libtool-1.5.8-lib\include
100 -LIBLTDL_LIB = # E.g. C:\libtool-1.5.8-lib\lib\libltdl.lib
101 -
102 OPENSSL_INC = /IC:\openssl\include
103 OPENSSL_LIB = C:\openssl\out32dll\libeay32.lib
104
105 -COPTS = /Zi /MD /nologo /I..\ /I. $(OPENSSL_INC) $(LIBLTDL_INC) /D_WIN32_WINNT=0x0400 /DWIN32 /DWIN32_LEAN_AND_MEAN
106 +COPTS = /Zi /MD /nologo /I..\ /I. $(OPENSSL_INC) /D_WIN32_WINNT=0x0400 /DWIN32 /DWIN32_LEAN_AND_MEAN
107 LINKFLAGS = /DEBUG /NOLOGO /INCREMENTAL:NO /MACHINE:IX86
108
109 TARGET = libp11.dll
110 @@ -28,6 +25,6 @@ $(TARGET): $(OBJECTS) versioninfo.res
111 echo EXPORTS >> $*.def
112 type $*.exports >> $*.def
113 link $(LINKFLAGS) /dll /def:$*.def /implib:$*.lib /out:$(TARGET) \
114 - $(OBJECTS) $(OPENSSL_LIB) $(LIBLTDL_LIB) versioninfo.res
115 + $(OBJECTS) $(OPENSSL_LIB) versioninfo.res
116 if EXIST $*.dll.manifest mt -manifest $*.dll.manifest -outputresource:$*.dll;2
117
118 diff --git a/src/libpkcs11.c b/src/libpkcs11.c
119 index a146361..93584d9 100644
120 --- a/src/libpkcs11.c
121 +++ b/src/libpkcs11.c
122 @@ -27,14 +27,18 @@
123 #include <stdlib.h>
124 #include <stdio.h>
125 #include <string.h>
126 -#include <ltdl.h>
127 +#ifdef WIN32
128 +#include <windows.h>
129 +#else
130 +#include <dlfcn.h>
131 +#endif
132 #include "libp11-int.h"
133
134 #define MAGIC 0xd00bed00
135
136 struct sc_pkcs11_module {
137 unsigned int _magic;
138 - lt_dlhandle handle;
139 + void *handle;
140 };
141 typedef struct sc_pkcs11_module sc_pkcs11_module_t;
142
143 @@ -52,19 +56,40 @@ C_LoadModule(const char *mspec, CK_FUNCTION_LIST_PTR_PTR funcs)
144 if (mspec == NULL)
145 return NULL;
146
147 - if (lt_dlinit() != 0)
148 - return NULL;
149 -
150 mod = (sc_pkcs11_module_t *) calloc(1, sizeof(*mod));
151 mod->_magic = MAGIC;
152
153 - mod->handle = lt_dlopen(mspec);
154 +#ifdef WIN32
155 + mod->handle = LoadLibraryA(mspec);
156 +#else
157 + mod->handle = dlopen(mspec, RTLD_NOW);
158 +#endif
159 +
160 if (mod->handle == NULL)
161 goto failed;
162
163 - /* Get the list of function pointers */
164 - c_get_function_list = (CK_RV (*)(CK_FUNCTION_LIST_PTR_PTR))
165 - lt_dlsym(mod->handle, "C_GetFunctionList");
166 +#ifdef WIN32
167 + c_get_function_list = (CK_C_GetFunctionList)GetProcAddress (
168 + mod->handle,
169 + "C_GetFunctionList"
170 + );
171 +#else
172 + {
173 + /*
174 + * Make compiler happy!
175 + */
176 + void *p = dlsym(
177 + mod->handle,
178 + "C_GetFunctionList"
179 + );
180 + memmove(
181 + &c_get_function_list,
182 + &p,
183 + sizeof(void *)
184 + );
185 + }
186 +#endif
187 +
188 if (!c_get_function_list)
189 goto failed;
190 rv = c_get_function_list(funcs);
191 @@ -89,13 +114,14 @@ C_UnloadModule(void *module)
192 if (!mod || mod->_magic != MAGIC)
193 return CKR_ARGUMENTS_BAD;
194
195 - if (lt_dlclose(mod->handle) < 0)
196 - return CKR_FUNCTION_FAILED;
197 +#ifdef WIN32
198 + FreeLibrary(mod->handle);
199 +#else
200 + dlclose(mod->handle);
201 +#endif
202
203 memset(mod, 0, sizeof(*mod));
204 free(mod);
205
206 - lt_dlexit();
207 -
208 return CKR_OK;
209 }
210 --
211 1.7.6.1