kopia lustrzana https://gitlab.com/sane-project/website
216 wiersze
7.3 KiB
HTML
216 wiersze
7.3 KiB
HTML
<!-- received="Thu Oct 22 19:58:25 1998 PDT" -->
|
|
<!-- sent="Mon, 19 Oct 1998 18:55:52 +0200 (METDST)" -->
|
|
<!-- name="Petter Reinholdtsen" -->
|
|
<!-- email="pere@hungry.com" -->
|
|
<!-- subject="HP/UX 10.20 DLL support" -->
|
|
<!-- id="199810191655.SAA08460@zero.cc.uit.no" -->
|
|
<!-- inreplyto="" -->
|
|
<title>sane-devel: HP/UX 10.20 DLL support</title>
|
|
<h1>HP/UX 10.20 DLL support</h1>
|
|
<b>Petter Reinholdtsen</b> (<a href="mailto:pere@hungry.com"><i>pere@hungry.com</i></a>)<br>
|
|
<i>Mon, 19 Oct 1998 18:55:52 +0200 (METDST)</i>
|
|
<p>
|
|
<ul>
|
|
<li> <b>Messages sorted by:</b> <a href="date.html#232">[ date ]</a><a href="index.html#232">[ thread ]</a><a href="subject.html#232">[ subject ]</a><a href="author.html#232">[ author ]</a>
|
|
<!-- next="start" -->
|
|
<li> <b>Next message:</b> <a href="0233.html">Carsten Wartmann: "AGFA Focus scanner backend released"</a>
|
|
<li> <b>Previous message:</b> <a href="0231.html">Petter Reinholdtsen: "SANE 0.74 patch for HP/UX 10.20"</a>
|
|
<!-- nextthread="start" -->
|
|
<!-- reply="end" -->
|
|
</ul>
|
|
<!-- body="start" -->
|
|
After some tweaking, I managed to get DLL support running on HP/UX<br>
|
|
10.20. Please include the following patch into the next release.<br>
|
|
<p>
|
|
diff -ru src-0.74/ChangeLog src-0.74-hppa20ux10/ChangeLog<br>
|
|
--- src-0.74/ChangeLog Tue Jul 28 07:29:04 1998<br>
|
|
+++ src-0.74-hppa20ux10/ChangeLog Mon Oct 19 17:27:26 1998<br>
|
|
@@ -1,3 +1,12 @@<br>
|
|
+1998-10-19 Petter Reinholdtsen <<a href="mailto:pere@td.org.uit.no">pere@td.org.uit.no</a>><br>
|
|
+<br>
|
|
+ * configure.in include/sane/config.h.in backends/dll.c:<br>
|
|
+ Use dhl_load() family for DLL support on HP/UX.<br>
|
|
+<br>
|
|
1998-07-27 David Mosberger-Tang <<a href="mailto:David.Mosberger@acm.org">David.Mosberger@acm.org</a>><br>
|
|
<br>
|
|
* Version 0.74 released.<br>
|
|
diff -ru src-0.74/backend/dll.c src-0.74-hppa20ux10/backend/dll.c<br>
|
|
--- src-0.74/backend/dll.c Fri May 15 09:08:47 1998<br>
|
|
+++ src-0.74-hppa20ux10/backend/dll.c Mon Oct 19 18:38:36 1998<br>
|
|
@@ -68,6 +68,13 @@<br>
|
|
# ifndef RTLD_LAZY<br>
|
|
# define RTLD_LAZY 1<br>
|
|
# endif<br>
|
|
+# define HAVE_DLL<br>
|
|
+#endif<br>
|
|
+<br>
|
|
+/* HP/UX DLL support */<br>
|
|
+#if defined (HAVE_SHL_LOAD) && defined(HAVE_DL_H)<br>
|
|
+# include <dl.h><br>
|
|
+# define HAVE_DLL<br>
|
|
#endif<br>
|
|
<br>
|
|
#include <sys/types.h><br>
|
|
@@ -222,14 +229,24 @@<br>
|
|
static SANE_Status<br>
|
|
load (struct backend *be)<br>
|
|
{<br>
|
|
-#ifdef HAVE_DLOPEN<br>
|
|
- int mode = getenv ("LD_BIND_NOW") ? RTLD_NOW : RTLD_LAZY;<br>
|
|
+#ifdef HAVE_DLL<br>
|
|
+ int mode = 0;<br>
|
|
char *funcname, *src, *dir, *path = 0;<br>
|
|
char libname[PATH_MAX];<br>
|
|
int i;<br>
|
|
FILE *fp = 0;<br>
|
|
+<br>
|
|
+#if defined(HAVE_DLOPEN)<br>
|
|
# define PREFIX "libsane-"<br>
|
|
# define POSTFIX ".so.%u"<br>
|
|
+ mode = getenv ("LD_BIND_NOW") ? RTLD_NOW : RTLD_LAZY;<br>
|
|
+#elif defined(HAVE_SHL_LOAD)<br>
|
|
+# define PREFIX "libsane-"<br>
|
|
+# define POSTFIX ".sl.%u"<br>
|
|
+ mode = BIND_DEFERRED;<br>
|
|
+#else<br>
|
|
+# error "Tried to compile unsupported DLL."<br>
|
|
+#endif /* HAVE_DLOPEN */<br>
|
|
<br>
|
|
DBG(1, "loading backend %s\n", be->name);<br>
|
|
<br>
|
|
@@ -270,13 +287,19 @@<br>
|
|
free (path);<br>
|
|
if (!fp)<br>
|
|
{<br>
|
|
- DBG(2, "load: couldn't find "PREFIX"%s"POSTFIX" (%s)\n",<br>
|
|
- be->name, V_MAJOR, strerror (errno));<br>
|
|
+ DBG(2, "load: couldn't find %s (%s)\n",<br>
|
|
+ libname, strerror (errno));<br>
|
|
return SANE_STATUS_INVAL;<br>
|
|
}<br>
|
|
DBG(2, "dlopen()ing `%s'\n", libname);<br>
|
|
<br>
|
|
+#ifdef HAVE_DLOPEN<br>
|
|
be->handle = dlopen (libname, mode);<br>
|
|
+#elif defined(HAVE_SHL_LOAD)<br>
|
|
+ be->handle = (shl_t)shl_load (libname, mode, 0L);<br>
|
|
+#else<br>
|
|
+# error "Tried to compile unsupported DLL."<br>
|
|
+#endif /* HAVE_DLOPEN */<br>
|
|
if (!be->handle)<br>
|
|
{<br>
|
|
DBG(2, "dlopen() failed (%s)\n", strerror (errno));<br>
|
|
@@ -292,27 +315,41 @@<br>
|
|
sprintf (funcname, "_sane_%s_%s", be->name, op_name[i]);<br>
|
|
<br>
|
|
/* First try looking up the symbol without a leading underscore. */<br>
|
|
+#ifdef HAVE_DLOPEN<br>
|
|
op = (void *(*)()) dlsym (be->handle, funcname + 1);<br>
|
|
+#elif defined(HAVE_SHL_LOAD)<br>
|
|
+ shl_findsym ((shl_t*)&(be->handle), funcname + 1, TYPE_UNDEFINED, &op);<br>
|
|
+#else<br>
|
|
+# error "Tried to compile unsupported DLL."<br>
|
|
+#endif /* HAVE_DLOPEN */<br>
|
|
if (op)<br>
|
|
be->op[i] = op;<br>
|
|
else<br>
|
|
{<br>
|
|
/* Try again, with an underscore prepended. */<br>
|
|
+#ifdef HAVE_DLOPEN<br>
|
|
op = (void *(*)()) dlsym (be->handle, funcname);<br>
|
|
+#elif defined(HAVE_SHL_LOAD)<br>
|
|
+ shl_findsym (be->handle, funcname, TYPE_UNDEFINED, &op);<br>
|
|
+#else<br>
|
|
+# error "Tried to compile unsupported DLL."<br>
|
|
+#endif /* HAVE_DLOPEN */<br>
|
|
if (op)<br>
|
|
be->op[i] = op;<br>
|
|
}<br>
|
|
+ if (NULL == op)<br>
|
|
+ DBG(2, "unable to find %s\n", funcname);<br>
|
|
}<br>
|
|
<br>
|
|
return SANE_STATUS_GOOD;<br>
|
|
<br>
|
|
# undef PREFIX<br>
|
|
# undef POSTFIX<br>
|
|
-#else /* HAVE_DLOPEN */<br>
|
|
+#else /* HAVE_DLL */<br>
|
|
DBG(1, "load: ignoring attempt to load `%s'; compiled without dl support\n",<br>
|
|
be->name);<br>
|
|
return SANE_STATUS_UNSUPPORTED;<br>
|
|
-#endif /* HAVE_DLOPEN */<br>
|
|
+#endif /* HAVE_DLL */<br>
|
|
}<br>
|
|
<br>
|
|
static SANE_Status<br>
|
|
@@ -402,10 +439,19 @@<br>
|
|
{<br>
|
|
DBG(2, "calling backend `%s's exit function\n", be->name);<br>
|
|
(*be->op[OP_EXIT]) ();<br>
|
|
+#ifdef HAVE_DLL<br>
|
|
+<br>
|
|
#ifdef HAVE_DLOPEN<br>
|
|
if (be->handle)<br>
|
|
dlclose (be->handle);<br>
|
|
-#endif<br>
|
|
+#elif defined(HAVE_SHL_LOAD)<br>
|
|
+ if (be->handle)<br>
|
|
+ shl_unload(be->handle);<br>
|
|
+#else<br>
|
|
+# error "Tried to compile unsupported DLL."<br>
|
|
+#endif /* HAVE_DLOPEN */<br>
|
|
+<br>
|
|
+#endif /* HAVE_DLL */<br>
|
|
}<br>
|
|
if (!be->permanent)<br>
|
|
{<br>
|
|
diff -ru src-0.74/configure.in src-0.74-hppa20ux10/configure.in<br>
|
|
--- src-0.74/configure.in Tue Jul 28 07:28:07 1998<br>
|
|
+++ src-0.74-hppa20ux10/configure.in Mon Oct 19 18:19:52 1998<br>
|
|
@@ -97,6 +97,12 @@<br>
|
|
AC_CHECK_HEADERS(dlfcn.h,<br>
|
|
[AC_CHECK_LIB(dl,dlopen)<br>
|
|
AC_CHECK_FUNCS(dlopen, , enable_dynamic=no)],<br>
|
|
+ [enable_dynamic=no])<br>
|
|
+<br>
|
|
+ # HP/UX DLL handling<br>
|
|
+ AC_CHECK_HEADERS(dl.h,<br>
|
|
+ [AC_CHECK_LIB(dld,shl_load)<br>
|
|
+ AC_CHECK_FUNCS(shl_load, , enable_dynamic=no)],<br>
|
|
[enable_dynamic=no])<br>
|
|
fi<br>
|
|
<br>
|
|
diff -ru src-0.74/include/sane/config.h.in src-0.74-hppa20ux10/include/sane/config.h.in<br>
|
|
--- src-0.74/include/sane/config.h.in Fri Jul 24 07:36:30 1998<br>
|
|
+++ src-0.74-hppa20ux10/include/sane/config.h.in Mon Oct 19 17:51:26 1998<br>
|
|
@@ -299,6 +299,12 @@<br>
|
|
/* Define if you have the dlopen function. */<br>
|
|
#undef HAVE_DLOPEN<br>
|
|
<br>
|
|
+/* Define if you have the <dl.h> header file. */<br>
|
|
+#undef HAVE_DL_H<br>
|
|
+<br>
|
|
+/* Define if you have the shl_load function. */<br>
|
|
+#undef HAVE_SHL_LOAD<br>
|
|
+<br>
|
|
/* Define if you have the GIMP header files and library. */<br>
|
|
#undef HAVE_LIBGIMP_GIMP_H<br>
|
|
<br>
|
|
<p>
|
|
<p>
|
|
<pre>
|
|
--
|
|
Source code, list archive, and docs: <a href="http://www.mostang.com/sane/">http://www.mostang.com/sane/</a>
|
|
To unsubscribe: echo unsubscribe sane-devel | mail <a href="mailto:majordomo@mostang.com">majordomo@mostang.com</a>
|
|
</pre>
|
|
<!-- body="end" -->
|
|
<p>
|
|
<ul>
|
|
<!-- next="start" -->
|
|
<li> <b>Next message:</b> <a href="0233.html">Carsten Wartmann: "AGFA Focus scanner backend released"</a>
|
|
<li> <b>Previous message:</b> <a href="0231.html">Petter Reinholdtsen: "SANE 0.74 patch for HP/UX 10.20"</a>
|
|
<!-- nextthread="start" -->
|
|
<!-- reply="end" -->
|
|
</ul>
|