On Mon, 2007-03-12 at 21:51 +0000, Nick Kew wrote: > Not really. It's just #ifdefs in the source. > > But within those #ifdefs it could emit a startup message detailing > exactly what it's compiled for.
I understand Joe's proposal to mean that a magic number will be included within the apr_dbd.h, therefore making it compiled-in into the third party (or APU-shipped) driver. If that magic matches what the apr-util knows about, the driver is accepted after being dynamically linked. This is the APU API/ABI compatibility check. On the other hand, the actual .so being loaded, say apr_dbd_mysql.so, would already have references to correct shared libraries, put in at link time (e.g. libmysqlclient_r.so.15 or some other version), which should in itself make sure that incorrect driver isn't loaded. In other words, dynamic linker will enforce this restriction anyway. Or did I miss something again? -- Bojan