gsize is not equivalent to size_t on certain platforms
My understanding is that gsize
should be equivalent to size_t
everywhere. However, on certain platforms (at least on 32-bit PPC which is quite obsolete, but possibly on other 32-bit platforms), int
and long
are the same size and size_t
is defined to be unsigned long
, whereas this logic in GLib's build system will end up defining gsize
to be unsigned int
, meaning that gsize
and size_t
will then be incompatible. We received a bug report about this in GJS (gjs!680 (closed)).
I'm not sure what exactly is going wrong. Maybe the issue is that the checks in that build system code are not using -fpermissive
, or maybe the checks need to check the reverse as well, that size_t*
is convertible to gsize*
without error, or maybe the checks need to use C++?