You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by Joe Orton <jo...@redhat.com> on 2007/01/29 17:43:04 UTC

[PATCH] DBD drivers as DSOs

With the apr trunk gen-build.py this should support building DBD drivers 
as DSOs if configured with --enable-dbd-dso; basic testing only, 
comments welcome!

Index: Makefile.in
===================================================================
--- Makefile.in	(revision 501084)
+++ Makefile.in	(working copy)
@@ -22,8 +22,19 @@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 
-TARGETS = $(TARGET_LIB) aprutil.exp apu-config.out
+APU_MODULES = @APU_MODULES@
+LINK_MODULE = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(ALL_CFLAGS) $(ALL_LDFLAGS) -release $(APRUTIL_MAJOR_VERSION) -module -rpath $(APU_DSO_LIBDIR)
+APU_DSO_LIBDIR = @APU_DSO_LIBDIR@
 
+EXTRA_OBJECTS = @EXTRA_OBJECTS@
+
+LDADD_dbd_pgsql = @LDADD_dbd_pgsql@
+LDADD_dbd_oracle = @LDADD_dbd_oracle@
+LDADD_dbd_sqlite2 = @LDADD_dbd_sqlite2@
+LDADD_dbd_sqlite3 = @LDADD_dbd_sqlite3@
+
+TARGETS = $(TARGET_LIB) aprutil.exp apu-config.out $(APU_MODULES)
+
 # bring in rules.mk for standard functionality
 @INCLUDE_RULES@
 @INCLUDE_OUTPUTS@
@@ -53,7 +64,7 @@
 apu-config.out: $(APU_CONFIG)
 	sed 's,^\(location=\).*$$,\1installed,' < $(APU_CONFIG) > $@
 
-install: $(TARGETS)
+install: $(TARGETS) install-modules
 	$(APR_MKDIR) $(DESTDIR)$(includedir) $(DESTDIR)$(libdir)/pkgconfig \
 		     $(DESTDIR)$(libdir) $(DESTDIR)$(bindir)
 	for f in $(top_srcdir)/include/*.h $(top_blddir)/include/*.h; do \
@@ -67,9 +78,17 @@
 	$(INSTALL_DATA) aprutil.exp $(DESTDIR)$(libdir)
 	$(INSTALL) -m 755 apu-config.out $(DESTDIR)$(bindir)/$(APU_CONFIG)
 
-$(TARGET_LIB): $(OBJECTS)
-	$(LINK) @lib_target@ $(ALL_LIBS) $(APRUTIL_LDFLAGS) $(APRUTIL_LIBS)
+$(TARGET_LIB): $(OBJECTS) $(EXTRA_OBJECTS)
+	$(LINK) @lib_target@ $(EXTRA_OBJECTS) $(ALL_LIBS) $(APRUTIL_LDFLAGS) $(APRUTIL_LIBS)
 
+install-modules: install-modules-@APU_HAVE_MODULES@
+
+install-modules-no:
+
+install-modules-yes: $(APU_MODULES)
+	$(APR_MKDIR) $(DESTDIR)$(APU_DSO_LIBDIR)
+	@for m in $(APU_MODULES); do $(LIBTOOL) $(LTFLAGS) --mode=install $(INSTALL) -m 755 $$m $(DESTDIR)$(APU_DSO_LIBDIR); done
+
 exports.c: $(HEADERS)
 	$(APR_MKEXPORT) $(HEADERS) > $@
 
Index: build.conf
===================================================================
--- build.conf	(revision 501084)
+++ build.conf	(working copy)
@@ -19,7 +19,7 @@
   xml/*.c
   strmatch/*.c
   xlate/*.c
-  dbd/*.c
+  dbd/apr_dbd.c
   ssl/*.c
 
 # we have no platform-specific subdirs
@@ -28,7 +28,26 @@
 # the public headers
 headers = include/*.h include/private/*.h
 
+modules = dbd_pgsql dbd_sqlite2 dbd_sqlite3 dbd_oracle
+
 # gen_uri_delim.c
 
 # we have a recursive makefile for the test files (for now)
 # test/*.c
+
+[dbd_pgsql]
+paths = dbd/apr_dbd_pgsql.c
+target = dbd/apr_dbd_pgsql.la
+
+[dbd_sqlite2]
+paths = dbd/apr_dbd_sqlite2.c
+target = dbd/apr_dbd_sqlite2.la
+
+[dbd_sqlite3]
+paths = dbd/apr_dbd_sqlite3.c
+target = dbd/apr_dbd_sqlite3.la
+
+[dbd_oracle]
+paths = dbd/apr_dbd_oracle.c
+target = dbd/apr_dbd_oracle.la
+
Index: configure.in
===================================================================
--- configure.in	(revision 501084)
+++ configure.in	(working copy)
@@ -141,6 +141,8 @@
 APU_CHECK_DBD_SQLITE3
 APU_CHECK_DBD_SQLITE2
 APU_CHECK_DBD_ORACLE
+dnl Enable DSO build; must be last:
+APU_CHECK_DBD_DSO
 APU_FIND_EXPAT
 APU_FIND_ICONV
 
@@ -169,6 +171,24 @@
 APRUTIL_LIBNAME="aprutil${libsuffix}"
 AC_SUBST(APRUTIL_LIBNAME)
 
+# Set up destination directory for DSOs.
+APU_DSO_LIBDIR="\${libdir}/apr-util-${APRUTIL_MAJOR_VERSION}"
+# Set APU_HAVE_MODULES appropriate for the Makefile
+if test -n "$APU_MODULES"; then 
+   APU_HAVE_MODULES=yes
+else
+   APU_HAVE_MODULES=no
+fi
+# Define expanded libdir for apu_config.h
+APR_EXPAND_VAR(abs_dso_libdir, $APU_DSO_LIBDIR)
+AC_DEFINE_UNQUOTED([APU_DSO_LIBDIR], ["$abs_dso_libdir"],
+                   [Define to be absolute path to DSO directory])
+AC_SUBST(APU_HAVE_MODULES)
+AC_SUBST(APU_DSO_LIBDIR)
+AC_SUBST(APU_MODULES)
+
+AC_SUBST(EXTRA_OBJECTS)
+
 dnl
 dnl Prep all the flags and stuff for compilation and export to other builds
 dnl
Index: dbd/apr_dbd.c
===================================================================
--- dbd/apr_dbd.c	(revision 501084)
+++ dbd/apr_dbd.c	(working copy)
@@ -16,23 +16,23 @@
 
 #include <stdio.h>
 
+#include "apu_config.h"
 #include "apu.h"
+
 #include "apr_pools.h"
-#include "apr_dbd_internal.h"
-#include "apr_dbd.h"
+#include "apr_dso.h"
+#include "apr_strings.h"
 #include "apr_hash.h"
 #include "apr_thread_mutex.h"
-#include "apr_dso.h"
-#include "apr_strings.h"
 
+#include "apr_dbd_internal.h"
+#include "apr_dbd.h"
+#include "apu_version.h"
+
 static apr_hash_t *drivers = NULL;
 
 #define CLEANUP_CAST (apr_status_t (*)(void*))
 
-/* Once the autofoo supports building it for dynamic load, we can use
- * #define APR_DSO_BUILD APR_HAS_DSO
- */
-
 #if APR_HAS_THREADS
 static apr_thread_mutex_t* mutex = NULL;
 apr_status_t apr_dbd_mutex_lock()
@@ -52,7 +52,7 @@
 }
 #endif
 
-#ifndef APR_DSO_BUILD
+#ifndef APU_DSO_BUILD
 #define DRIVER_LOAD(name,driver,pool) \
     {   \
         extern const apr_dbd_driver_t driver; \
@@ -91,8 +91,8 @@
     /* This already registers a pool cleanup */
 #endif
 
-#ifndef APR_DSO_BUILD
-
+#ifndef APU_DSO_BUILD
+    /* Load statically-linked drivers: */
 #if APU_HAVE_MYSQL
     DRIVER_LOAD("mysql", apr_dbd_mysql_driver, pool);
 #endif
@@ -111,15 +111,17 @@
 #if APU_HAVE_SOME_OTHER_BACKEND
     DRIVER_LOAD("firebird", apr_dbd_other_driver, pool);
 #endif
-#endif /* APR_DSO_BUILD */
+#endif /* APU_DSO_BUILD */
+
     return ret;
 }
 APU_DECLARE(apr_status_t) apr_dbd_get_driver(apr_pool_t *pool, const char *name,
                                              const apr_dbd_driver_t **driver)
 {
-#if APR_DSO_BUILD
+#if APR_HAS_DSO
     char path[80];
     apr_dso_handle_t *dlhandle = NULL;
+    apr_dso_handle_sym_t symbol;
 #endif
     apr_status_t rv;
 
@@ -128,12 +130,12 @@
         return APR_SUCCESS;
     }
 
-#if APR_DSO_BUILD
+#if APR_HAS_DSO
 
 #if APR_HAS_THREADS
     rv = apr_thread_mutex_lock(mutex);
     if (rv != APR_SUCCESS) {
-        goto unlock;
+        return rv;
     }
     *driver = apr_hash_get(drivers, name, APR_HASH_KEY_STRING);
     if (*driver) {
@@ -144,18 +146,19 @@
 #ifdef WIN32
     sprintf(path, "apr_dbd_%s.dll", name);
 #else
-    sprintf(path, "apr_dbd_%s.so", name);
+    apr_snprintf(path, sizeof path, APU_DSO_LIBDIR "/apr_dbd_%s.so", name);
 #endif
     rv = apr_dso_load(&dlhandle, path, pool);
     if (rv != APR_SUCCESS) { /* APR_EDSOOPEN */
         goto unlock;
     }
     sprintf(path, "apr_dbd_%s_driver", name);
-    rv = apr_dso_sym((void*)driver, dlhandle, path);
+    rv = apr_dso_sym(&symbol, dlhandle, path);
     if (rv != APR_SUCCESS) { /* APR_ESYMNOTFOUND */
         apr_dso_unload(dlhandle);
         goto unlock;
     }
+    *driver = symbol;
     if ((*driver)->init) {
         (*driver)->init(pool);
     }
@@ -166,7 +169,7 @@
     apr_thread_mutex_unlock(mutex);
 #endif
 
-#else	/* APR_DSO_BUILD - so if it wasn't already loaded, it's NOTIMPL */
+#else /* not builtin and !APR_HAS_DSO => not implemented */
     rv = APR_ENOTIMPL;
 #endif
 
Index: build/dbd.m4
===================================================================
--- build/dbd.m4	(revision 501084)
+++ build/dbd.m4	(working copy)
@@ -69,9 +69,9 @@
   dnl Since we have already done the AC_CHECK_LIB tests, if we have it, 
   dnl we know the library is there.
   if test "$apu_have_pgsql" = "1"; then
-    APR_ADDTO(APRUTIL_EXPORT_LIBS,[-lpq])
-    APR_ADDTO(APRUTIL_LIBS,[-lpq])
+    LDADD_dbd_pgsql=-lpq
   fi
+  AC_SUBST(LDADD_dbd_pgsql)
 ])
 dnl
 AC_DEFUN([APU_CHECK_DBD_MYSQL], [
@@ -221,9 +221,9 @@
   dnl Since we have already done the AC_CHECK_LIB tests, if we have it, 
   dnl we know the library is there.
   if test "$apu_have_sqlite3" = "1"; then
-    APR_ADDTO(APRUTIL_EXPORT_LIBS,[-lsqlite3])
-    APR_ADDTO(APRUTIL_LIBS,[-lsqlite3])
+    LDADD_dbd_sqlite3="-lsqlite3"
   fi
+  AC_SUBST(LDADD_dbd_sqlite3)
 ])
 dnl
 AC_DEFUN([APU_CHECK_DBD_SQLITE2], [
@@ -266,9 +266,9 @@
   dnl Since we have already done the AC_CHECK_LIB tests, if we have it, 
   dnl we know the library is there.
   if test "$apu_have_sqlite2" = "1"; then
-    APR_ADDTO(APRUTIL_EXPORT_LIBS,[-lsqlite])
-    APR_ADDTO(APRUTIL_LIBS,[-lsqlite])
+    LDADD_dbd_sqlite2="-lsqlite"
   fi
+  AC_SUBST(LDADD_dbd_sqlite2)
 ])
 dnl
 AC_DEFUN([APU_CHECK_DBD_ORACLE], [
@@ -294,8 +294,7 @@
         unset ac_cv_lib_clntsh_OCIEnvCreate
         AC_CHECK_LIB(clntsh, OCIEnvCreate, [
           apu_have_oracle=1
-          APR_ADDTO(APRUTIL_EXPORT_LIBS,[-lnnz10])
-          APR_ADDTO(APRUTIL_LIBS,[-lnnz10])
+          LDADD_dbd_oracle="-lnnz10"
         ],,[-lnnz10])
       ]))
 
@@ -322,8 +321,7 @@
         unset ac_cv_lib_clntsh_OCIEnvCreate
         AC_CHECK_LIB(clntsh, OCIEnvCreate, [
           apu_have_oracle=1
-          APR_ADDTO(APRUTIL_EXPORT_LIBS,[-lnnz10])
-          APR_ADDTO(APRUTIL_LIBS,[-lnnz10])
+          LDADD_dbd_oracle="-lnnz10"
         ],,[-lnnz10])
       ]))
       if test "$apu_have_oracle" != "0"; then
@@ -354,8 +352,7 @@
       unset ac_cv_lib_clntsh_OCIEnvCreate
       AC_CHECK_LIB(clntsh, OCIEnvCreate, [
         apu_have_oracle=1
-        APR_ADDTO(APRUTIL_EXPORT_LIBS,[-lnnz10])
-        APR_ADDTO(APRUTIL_LIBS,[-lnnz10])
+        LDADD_dbd_oracle=-lnnz10
       ],,[-lnnz10])
     ]))
 
@@ -367,8 +364,40 @@
   dnl Since we have already done the AC_CHECK_LIB tests, if we have it, 
   dnl we know the library is there.
   if test "$apu_have_oracle" = "1"; then
-    APR_ADDTO(APRUTIL_EXPORT_LIBS,[-lclntsh])
-    APR_ADDTO(APRUTIL_LIBS,[-lclntsh])
+    LDADD_dbd_oracle="$LDADD_dbd_oracle -lclntsh"
   fi
+  AC_SUBST(LDADD_dbd_oracle)
 ])
-dnl
+
+AC_DEFUN([APU_CHECK_DBD_DSO], [
+
+  AC_ARG_ENABLE([dbd-dso], 
+     APR_HELP_STRING([--enable-dbd-dso], [build DBD drivers as DSOs]))
+
+  if test $enable_dbd_dso = yes; then
+     AC_DEFINE([APU_DSO_BUILD], 1, [Define if DBD drivers are built as DSOs])
+     apu_dbd_dso=1
+     
+     dsos=
+     test $apu_have_oracle = 1 && dsos="$dsos dbd/apr_dbd_oracle.la"
+     test $apu_have_pgsql = 1 && dsos="$dsos dbd/apr_dbd_pgsql.la"
+     test $apu_have_mysql = 1 && dsos="$dsos dbd/apr_dbd_mysql.la"
+     test $apu_have_sqlite2 = 1 && dsos="$dsos dbd/apr_dbd_sqlite2.la"
+     test $apu_have_sqlite3 = 1 && dsos="$dsos dbd/apr_dbd_sqlite3.la"
+
+     APU_MODULES="$APU_MODULES $dsos"
+  else
+     # Statically link the DBD drivers:
+
+     objs=
+     test $apu_have_oracle = 1 && objs="$objs dbd/apr_dbd_oracle.lo"
+     test $apu_have_pgsql = 1 && objs="$objs dbd/apr_dbd_pgsql.lo"
+     test $apu_have_mysql = 1 && objs="$objs dbd/apr_dbd_mysql.lo"
+     test $apu_have_sqlite2 = 1 && objs="$objs dbd/apr_dbd_sqlite2.lo"
+     test $apu_have_sqlite3 = 1 && objs="$objs dbd/apr_dbd_sqlite3.lo"
+     EXTRA_OBJECTS="$EXTRA_OBJECTS $objs"
+
+     APRUTIL_LIBS="$APRUTIL_LIBS '$(LDADD_dbd_pgsql) $(LDADD_dbd_sqlite2) $(LDADD_dbd_sqlite3) $(LDADD_dbd_oracle)'"
+     APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS '$(LDADD_dbd_pgsql) $(LDADD_dbd_sqlite2) $(LDADD_dbd_sqlite3) $(LDADD_dbd_oracle)'"
+  fi
+])

Re: [PATCH] DBD drivers as DSOs

Posted by Bojan Smojver <bo...@rexursive.com>.
On Wed, 2007-02-14 at 15:29 -0600, William A. Rowe, Jr. wrote:

> Unlike 0.9 vs 1.x, anyone should be able to grab 1.3.x and keep going.

No worries.

-- 
Bojan


Re: [PATCH] DBD drivers as DSOs

Posted by "William A. Rowe, Jr." <wr...@rowe-clan.net>.
Bojan Smojver wrote:
> On Mon, 2007-01-29 at 16:43 +0000, Joe Orton wrote:
> 
>> this should support building DBD drivers 
>> as DSOs if configured with --enable-dbd-dso
> 
> Any plans to backport this to 1.2.x?

Unlike 0.9 vs 1.x, anyone should be able to grab 1.3.x and keep going.
Unless Joe has allot of excess energy :)


Re: [PATCH] DBD drivers as DSOs

Posted by Bojan Smojver <bo...@rexursive.com>.
On Thu, 2007-02-15 at 09:45 +0000, Joe Orton wrote:

> Yes, soon (or if you could do it please go ahead!).

This builds on FC6, but I haven't actually tested the functionality.
Anyhow, it may be some kind of start...

-- 
Bojan

Re: [PATCH] DBD drivers as DSOs

Posted by Joe Orton <jo...@redhat.com>.
On Thu, Feb 15, 2007 at 07:53:20AM +1100, Bojan Smojver wrote:
> On Mon, 2007-01-29 at 16:43 +0000, Joe Orton wrote:
> 
> > this should support building DBD drivers 
> > as DSOs if configured with --enable-dbd-dso
> 
> Any plans to backport this to 1.2.x?

Yes, soon (or if you could do it please go ahead!).  1.3.x/trunk looks 
DOA unless the SSL stuff is finished or ripped out.

joe

Re: [PATCH] DBD drivers as DSOs

Posted by Bojan Smojver <bo...@rexursive.com>.
On Mon, 2007-01-29 at 16:43 +0000, Joe Orton wrote:

> this should support building DBD drivers 
> as DSOs if configured with --enable-dbd-dso

Any plans to backport this to 1.2.x?

-- 
Bojan


Re: [PATCH] DBD drivers as DSOs

Posted by Bojan Smojver <bo...@rexursive.com>.
On Sat, 2007-02-03 at 12:12 +0000, Jorge Bastos wrote:

> This means that i can use mod_dbd_mysql as an SO instead of have to 
> recompile libapr and libapr-util ?
> If so, from wich version if this possible?

This code is in the trunk for now (1.3.0).

-- 
Bojan


Re: [PATCH] DBD drivers as DSOs

Posted by Jorge Bastos <my...@decimal.pt>.
Fantastic,
This means that i can use mod_dbd_mysql as an SO instead of have to 
recompile libapr and libapr-util ?
If so, from wich version if this possible?

Jorge


----- Original Message ----- 
From: "Joe Orton" <jo...@redhat.com>
To: <de...@apr.apache.org>
Sent: Tuesday, January 30, 2007 11:57 AM
Subject: Re: [PATCH] DBD drivers as DSOs


> On Tue, Jan 30, 2007 at 12:34:02PM +1100, Bojan Smojver wrote:
> ...
>> Fixed up the same for MySQL above.
>>
>> Otherwise, looks good (FC6)! I tested with all 5 databases we support
>> and drivers got picked up just fine.
>
> Great, thanks a lot for working on that!  This is committed to the trunk
> with a few additional fixes.
>
> joe
> 


Re: [PATCH] DBD drivers as DSOs

Posted by Joe Orton <jo...@redhat.com>.
On Tue, Jan 30, 2007 at 12:34:02PM +1100, Bojan Smojver wrote:
...
> Fixed up the same for MySQL above.
>
> Otherwise, looks good (FC6)! I tested with all 5 databases we support
> and drivers got picked up just fine.

Great, thanks a lot for working on that!  This is committed to the trunk 
with a few additional fixes.

joe

Re: [PATCH] DBD drivers as DSOs

Posted by Bojan Smojver <bo...@rexursive.com>.
On Mon, 2007-01-29 at 16:43 +0000, Joe Orton wrote:

> +LINK_MODULE = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(ALL_CFLAGS) $(ALL_LDFLAGS) -release $(APRUTIL_MAJOR_VERSION) -module -rpath $(APU_DSO_LIBDIR)

I needed to whack $(APRUTIL_LDFLAGS) into the above line to make things
link properly.

> +LDADD_dbd_pgsql = @LDADD_dbd_pgsql@
> +LDADD_dbd_oracle = @LDADD_dbd_oracle@
> +LDADD_dbd_sqlite2 = @LDADD_dbd_sqlite2@
> +LDADD_dbd_sqlite3 = @LDADD_dbd_sqlite3@

I added MySQL stuff here, since I build with that enabled too.
 
> +modules = dbd_pgsql dbd_sqlite2 dbd_sqlite3 dbd_oracle

Added MySQL above too.

> +[dbd_pgsql]
> +paths = dbd/apr_dbd_pgsql.c
> +target = dbd/apr_dbd_pgsql.la
> +
> +[dbd_sqlite2]
> +paths = dbd/apr_dbd_sqlite2.c
> +target = dbd/apr_dbd_sqlite2.la
> +
> +[dbd_sqlite3]
> +paths = dbd/apr_dbd_sqlite3.c
> +target = dbd/apr_dbd_sqlite3.la
> +
> +[dbd_oracle]
> +paths = dbd/apr_dbd_oracle.c
> +target = dbd/apr_dbd_oracle.la

And here, of course.
 
> Index: build/dbd.m4
> ===================================================================
> --- build/dbd.m4	(revision 501084)
> +++ build/dbd.m4	(working copy)

[..snip..]
 
> @@ -367,8 +364,40 @@
>    dnl Since we have already done the AC_CHECK_LIB tests, if we have it, 
>    dnl we know the library is there.
>    if test "$apu_have_oracle" = "1"; then
> -    APR_ADDTO(APRUTIL_EXPORT_LIBS,[-lclntsh])
> -    APR_ADDTO(APRUTIL_LIBS,[-lclntsh])
> +    LDADD_dbd_oracle="$LDADD_dbd_oracle -lclntsh"
>    fi
> +  AC_SUBST(LDADD_dbd_oracle)
>  ])
> -dnl

Fixed up the same for MySQL above.

Otherwise, looks good (FC6)! I tested with all 5 databases we support
and drivers got picked up just fine.

Also, ldd for libaprutil-1.so showed exactly what we want (no database
dependencies):

----------------------------------------
        linux-gate.so.1 =>  (0x00d29000)
        libdb-4.3.so => /lib/libdb-4.3.so (0x002c1000)
        libexpat.so.0 => /lib/libexpat.so.0 (0x00563000)
        libapr-1.so.0 => /home/groups/devel/run/apache/lib/libapr-1.so.0
(0x00a83000)
        libuuid.so.1 => /lib/libuuid.so.1 (0x001bb000)
        librt.so.1 => /lib/librt.so.1 (0x004ea000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x00db7000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00110000)
        libdl.so.2 => /lib/libdl.so.2 (0x00127000)
        libc.so.6 => /lib/libc.so.6 (0x0093c000)
        /lib/ld-linux.so.2 (0x80000000)
----------------------------------------

And correct dependencies for drivers:

----------------------------------------
/home/groups/devel/run/apache/lib/apr-util-1/apr_dbd_mysql-1.so:
        linux-gate.so.1 =>  (0x007f9000)
        libmysqlclient_r.so.15 => /usr/lib/mysql/libmysqlclient_r.so.15
(0x00349000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00546000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x008de000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x007fe000)
        libm.so.6 => /lib/libm.so.6 (0x00110000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00137000)
        libssl.so.6 => /lib/libssl.so.6 (0x009ec000)
        libcrypto.so.6 => /lib/libcrypto.so.6 (0x0014e000)
        libc.so.6 => /lib/libc.so.6 (0x00559000)
        /lib/ld-linux.so.2 (0x80000000)
        libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x006d1000)
        libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00b5e000)
        libcom_err.so.2 => /lib/libcom_err.so.2 (0x00280000)
        libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00aec000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x00283000)
        libdl.so.2 => /lib/libdl.so.2 (0x00296000)
        libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00330000)
/home/groups/devel/run/apache/lib/apr-util-1/apr_dbd_oracle-1.so:
        linux-gate.so.1 =>  (0x0048f000)
        libnnz10.so
=> /usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libnnz10.so
(0x00d3e000)
        libclntsh.so.10.1
=> /usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1 (0x00f4d000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x005b2000)
        libc.so.6 => /lib/libc.so.6 (0x00144000)
        libdl.so.2 => /lib/libdl.so.2 (0x006bd000)
        libm.so.6 => /lib/libm.so.6 (0x00299000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x00110000)
        /lib/ld-linux.so.2 (0x80000000)
/home/groups/devel/run/apache/lib/apr-util-1/apr_dbd_pgsql-1.so:
        linux-gate.so.1 =>  (0x00573000)
        libpq.so.4 => /usr/lib/libpq.so.4 (0x00ea7000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00bfb000)
        libc.so.6 => /lib/libc.so.6 (0x0035e000)
        libssl.so.6 => /lib/libssl.so.6 (0x00af8000)
        libcrypto.so.6 => /lib/libcrypto.so.6 (0x00110000)
        libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00242000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x002c8000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x00acb000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x002f6000)
        /lib/ld-linux.so.2 (0x80000000)
        libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00326000)
        libcom_err.so.2 => /lib/libcom_err.so.2 (0x0060b000)
        libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x0049b000)
        libdl.so.2 => /lib/libdl.so.2 (0x00657000)
        libz.so.1 => /usr/lib/libz.so.1 (0x0030d000)
        libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00787000)
/home/groups/devel/run/apache/lib/apr-util-1/apr_dbd_sqlite2-1.so:
        linux-gate.so.1 =>  (0x009eb000)
        libsqlite.so.0 => /usr/lib/libsqlite.so.0 (0x00d75000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x008fe000)
        libc.so.6 => /lib/libc.so.6 (0x00466000)
        /lib/ld-linux.so.2 (0x80000000)
/home/groups/devel/run/apache/lib/apr-util-1/apr_dbd_sqlite3-1.so:
        linux-gate.so.1 =>  (0x0074c000)
        libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0x00d5a000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x0071b000)
        libc.so.6 => /lib/libc.so.6 (0x009e5000)
        /lib/ld-linux.so.2 (0x80000000)
----------------------------------------

The patch that I used is attached.

-- 
Bojan

Re: [PATCH] DBD drivers as DSOs

Posted by Nick Kew <ni...@webthing.com>.
On Mon, 29 Jan 2007 16:43:04 +0000
Joe Orton <jo...@redhat.com> wrote:

> With the apr trunk gen-build.py this should support building DBD
> drivers as DSOs if configured with --enable-dbd-dso; basic testing
> only, comments welcome!

This is how it should've been from the start.  Thanks for tackling
that final link in the chain!

-- 
Nick Kew

Application Development with Apache - the Apache Modules Book
http://www.apachetutor.org/