Florian Forster wrote: > Hi, > > On Tue, Mar 17, 2009 at 03:13:53PM +0100, Markus Hoenicka wrote: >> They do, but in a reasonable way. LIB_CURRENT is the API version >> number proper. LIB_REVISION numbers the revisions that do not change >> the API (what you call "micro-releases"). LIB_AGE indicates how many >> version numbers the current release is backwards-compatible with. > > I think you're making the (common) mistake to confuse API and ABI > versions. It is not useful for a C program (or its compiler) to know the > ABI version. It's used by the linker to figure out if an installed > version of the library is compatible with the library used when > compiling and linking the program, i. e. when it is (about to be) run. > > The API version *is* useful for the C program and its compiler to know, > so it knows which features are available. In contrast to the ABI > version, this information is used at compile time. > > By all means, introduce version testing macros/defines, such as: > #define LIBDBI_MAJOR 0 > #define LIBDBI_MINOR 8 > #define LIBDBI_PATCH 3 > #define LIBDBI_VERSION ((1000000 * LIBDBI_MAJOR) \ > + (1000 * LIBDBI_MINOR) \ > + LIBDBI_PATCH) > > Andreas' code could then do something like: > #if defined(LIBDBI_VERSION) && (LIBDBI_VERSION >= 8003) > use_new_feature (); > #else > use_own_implementation (); > #endif >
That's exactly what I'm talking about :) > But mis-using the ABI version numbers for this purpose is evil, Evil, > EVIL! > Indeed. > Unfortunately I don't have a good link at hand which explains the issue > in detail, so I'll have to back up my claims with the last paragraph on > this page of the libtool manual: > <http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html> > http://people.redhat.com/drepper/dsohowto.pdf has some more info. -- Andreas Ericsson andreas.erics...@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231 Considering the successes of the wars on alcohol, poverty, drugs and terror, I think we should give some serious thought to declaring war on peace. ------------------------------------------------------------------------------ Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are powering Web 2.0 with engaging, cross-platform capabilities. Quickly and easily build your RIAs with Flex Builder, the Eclipse(TM)based development software that enables intelligent coding and step-through debugging. Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com _______________________________________________ libdbi-devel mailing list libdbi-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libdbi-devel