On Tue, Jan 20, 2009 at 7:20 PM, Konrad Rzeszutek <kon...@virtualiron.com> wrote: > >> > I would recommend that you provide as the first variable in all of the >> > structs >> > an unsigned int called 'version'. This way if the structs are extended they >> > would be backwards compatible and there is an easy way to identify which >> > version of structs they are. >> > >> >> Erm, given the amount of programs which will probably end up using this (not >> all that much) a distro should be able to easily rebuild all those in case of >> an ABI change and thus a soname bump. I understand what you are trying to say >> here, but IMHO the added complexity and ugliness is not worth it. > > I disagree. The ABI in a distro is a holy thing. When a Linux distro releases > their > libraries (look for example at libvirt), they can't modify it for the next 7 > years > (sure they can do it underneath the covers, but look at the Red Hat kernel > with > those #ifdef __GENKSYSM__ to work-around this). > > I am curious to understand what is complex and ugly about it? Could you be > more specific please.
I agree that having a stable binary interface is very important for a shared library. But if glibc doesn't have versioned structs, why would these be needed in an iscsi library ? Please keep in mind that it is possible to define a new version of a shared library in case the ABI changes. Bart. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "open-iscsi" group. To post to this group, send email to open-iscsi@googlegroups.com To unsubscribe from this group, send email to open-iscsi+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/open-iscsi -~----------~----~----~----~------~----~------~--~---