GNOME Bugzilla – Bug 582878
[GstClock] ABI breakage in GIT on x86
Last modified: 2009-05-17 08:48:12 UTC
Hi, at some point in the past few days the struct size of GstClock has changed, but only on x86 and not on x86-64: Running suite(s): GstABI sizeof(GstClock) is 168, expected 172 sizeof(GstSystemClock) is 192, expected 196 0%: Checks: 1, Failures: 1, Errors: 0 gstcheck.c:504:F:size check:test_ABI:0: failed ABI check FAIL: gst/gstabi Running suite(s): LibsABI sizeof(GstNetClientClock) is 244, expected 248 0%: Checks: 1, Failures: 1, Errors: 0 gstcheck.c:504:F:size check:test_ABI:0: failed ABI check FAIL: libs/libsabi
http://cgit.freedesktop.org/gstreamer/gstreamer/diff/gst/gstclock.h?id=bb8f296d45721629c97f5283e08077829de6c206 This is the problem... 64 bit padding are removed and a pointer is added... giving a diff of 32 bits on 32 bit architectures. This is probably best fixed by using a union: union { GstClockPrivate *priv; GstClockTime _gst_reserved[GST_PADDING]; } ABI;
commit 44ea1ac6b41bbb91401cf6c7c1dfbb7bf0ea7290 Author: Sebastian Dröge <sebastian.droege@collabora.co.uk> Date: Sun May 17 10:46:39 2009 +0200 gstclock: Fix ABI breakage on 32 bit architectures The padding of GstClock is a GstClockTime and not a gpointer, so adding a pointer requires the padding size to be changed depending on the pointer size. Use an union instead. Fixes bug #582878.