https://bugs.winehq.org/show_bug.cgi?id=31836
--- Comment #34 from Rafał Mużyło galtgendo@o2.pl --- (In reply to Andrew Eikum from comment #33)
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.
Not quite correct and Gentoo here, so I kind of know about arch-specific headers. While almost exclusively a spectator, I did watch the growing pains of multilib-minimal and related eclases and did notice some packages started wrapping some of their headers (those, that weren't already using /usr/lib{32,64} for that purpose). While some of the used solutions weren't technically quite correct (like passing '-m32' as a tail of CC/CXX instead of in C{,XX}FLAGS), sme were quite interesting.
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.
...unless you've got a real 32bit machine or using such vm...but kind of off-topic. Anyway, even if you don't have a host-prefixed pkg-config (which is the most simple way of making pkg-config "just work"), there's still PKG_CONFIG_LIBDIR, which, again, is a mater of a proper toolchain setup.
That check was added in b113af1b13455 to avoid building gstreamer if the headers are for the wrong architecture.
That check is nevertheless bogus - sizeof(gint64) by design is *always* 8.
This was discussed a bit on the ML in this thread:
https://www.winehq.org/pipermail/wine-devel/2016-January/111245.html
...and this was the thread I was referring to when I've said "the errors are simply cases of incorrect toolchain setup".