On 2010-02-01 at 10:42:38 [+0100], Oliver Tappe <zooey@xxxxxxxxxxxxxxx> wrote: > On 2010-02-01 at 09:11:09 [+0100], Ingo Weinhold <ingo_weinhold@xxxxxx> > wrote: > > BTW, "ABI" doesn't sound correct in this context. The ABI is the low level > > specification defining how functions are called, which registers can be > > used > > for what purpose, how names are mangled, the layout of vtables, etc. > > Hm, what you've described are parts of the C++ ABI or the "system" ABI, but > according to what I've read on the net about shared libraries, the binary > (compiled) version of their API is referred to as their application binary > interface (ABI). Indeed some googling turn up articles using ABI that way, but I actually hadn't heard of that meaning before. And, although certainly not the ultimate reference, at least the Wikipedia article seems to agree with the definition I known. > I actually changed the naming because for one of the libs (not sure, but I > think it was libjpeg), there was mention of one release changing the ABI > while staying compatible with respect to the API - and we really only deal > with binary compatibility here. > > I am going to play with a couple of abi compatibility checkers in order to > find one that can help us decide whenever a library update in fact changes > the ABI (so we can bump the version). Otherwise updating a ported library > could prove to be a rather difficult job, as (judging by the three libs I've > checked) the library authors can't be trusted to say something meaningful > about their ABI versioning scheme. > If I find an ABI checker that works, I'm going to create an optional package > for it. Nice! CU, Ingo