Gtk+ 2.3 ABI breakage or Gtk-Error **: incompatible build!



on G_PLATFORM__WIN32
gtk/gtkmain.c has the following code, which fails with current cvs

static void
check_sizeof_GtkWindow (size_t sizeof_GtkWindow)
{
  if (sizeof_GtkWindow != sizeof (GtkWindow))
    g_error ("Incompatible build!\n"
	     "The code using GTK+ thinks GtkWindow is of different\n"
             "size than it actually is in this build of GTK+.\n"
	     "On Windows, this probably means that you have compiled\n"
	     "your code with gcc without the -fnative-struct\n"
	     "(or -mms-bitfields) switch, or that you are using\n"
	     "an unsupported compiler.");
}

Before looking any deeper into it, is changing the size of GtkWindow
supposed to be an ABI breakge which should not happen on due to
Gtk's binary compatibility guarantees ?
[
 For everyone not knowing : the tips from the error message won't
 solve the problem cause I'm not using gcc, but msvc and my compiler
 flags haven't changed between different builds.
] 

Looking deeper into it :

The flags started from GtkWindow::allow_shrink : 1
are now 33 in sum which triggers the above sizeof check failure.

Also the addition of GtkWindow::(above|below)_initially changes
the meaning of the following flags, which is another ABI
incompatible change ...

Further, isn't always true above_initially == !below_initially.
So there would be only one flag needed ?

But even fixing this won't give us back a compatiple ABI. Apparently
some gobject has changed size as well (or at least I needed to recompile
Pango as well to get a not crashing testfilechooser ...)

Thanks,
	Hans
-------- Hans "at" Breuer "dot" Org -----------
Tell me what you need, and I'll tell you how to 
get along without it.                -- Dilbert



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]