Re: Do opaque struct changes break C library ABIs
Le jeudi 16 mai 2013 à 17:35 -0700, Russ Allbery a écrit : 
> I have a C shared library that takes a pointer to an opaque struct as the
> first argument to most of its API calls.  The internal layout of that
> opaque struct is changing (to add new members).  The only way to create
> the opaque state struct is via a call to remctl_new(), which returns a
> pointer to it.  Nothing else about the ABI is changing, and client
> programs cannot see or manipulate the struct members directly (at least
> without poking about in memory, of course).
> 
> Is that an ABI break that requires an SONAME change?
Opaque structures are usually here precisely to avoid SONAME changes.
Glib and GTK+ do that all the time, and I don’t see applications
breaking horribly, unless they do unwarranted assumptions about the
internals of those structures.
So if this is the only change, I’d say you are pretty safe here.
Cheers,
-- 
 .''`.      Josselin Mouette
: :' :
`. `'
  `-
Reply to: