https://bugs.winehq.org/show_bug.cgi?id=31836
--- Comment #33 from Andrew Eikum aeikum@codeweavers.com --- (In reply to Rafał Mużyło from comment #31)
Just before this bug gets closed, a question: What exactly is the purpose of AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <gst/gst.h>]], [[static int a[sizeof(gint64) > 4 ? 1 : -1]; if (a[0]) return 0;]])
check ?
Cause, unless I'm missing something, that check was bogus even before glib 2.0.0.
The problem here is glib and gstreamer have different header files for 32- and 64-bit, but pkgconfig doesn't have a mechanism to specify which architecture's headers you should get. This is really glib/gstreamer's fault. The vast majority of libraries write their headers so the same header files work on either architecture, and there is no need to configure pkg-config.
For most (all?) distros, the 64-bit glib/gstreamer headers are in the default location, while the 32-bit ones are in some special location (in /usr/lib32/ on Arch Linux). So pkg-config always gives the 64-bit headers, even when building 32-bit Wine, and this results in broken winegstreamer.
That check was added in b113af1b13455 to avoid building gstreamer if the headers are for the wrong architecture.
This was discussed a bit on the ML in this thread:
https://www.winehq.org/pipermail/wine-devel/2016-January/111245.html