gsize: improper typedef on (at least) OpenBSD
Hi.
After the move from autoconf to meson we lost that part:
dnl If int/long are the same size, we see which one produces
dnl warnings when used in the location as size_t. (This matters
dnl on AIX with xlc)
dnl
AS_IF([test $ac_cv_sizeof_size_t = $ac_cv_sizeof_int &&
test $ac_cv_sizeof_size_t = $ac_cv_sizeof_long],
This is important on (at least) OpenBSD/i386 (amd64 is fine).
$ grep 'gsize;$' /usr/local/lib/glib-2.0/include/glibconfig.h"
typedef unsigned int gsize;
That leads to errors like:
/usr/local/include/glib-2.0/glib/gconvert.h:89:8: note: candidate function not viable: no known conversion from 'size_t *' (aka 'unsigned long *') to 'gsize *' (aka 'unsigned int *') for 3rd argument
The type should be typedef unsigned long gsize;
The following simply reorders the if statement to put the one we need earlier.
Not opening a pull request yet, as I'd like some feedback on the proper way to do this.
--- a/meson.build
+++ b/meson.build
@@ -1291,13 +1291,6 @@ if sizet_size == short_size
glibconfig_conf.set_quoted('gsize_format', 'hu')
glibconfig_conf.set_quoted('gssize_format', 'hi')
glibconfig_conf.set('glib_msize_type', 'SHRT')
-elif sizet_size == int_size
- glibconfig_conf.set('glib_size_type_define', 'int')
- glibconfig_conf.set_quoted('gsize_modifier', '')
- glibconfig_conf.set_quoted('gssize_modifier', '')
- glibconfig_conf.set_quoted('gsize_format', 'u')
- glibconfig_conf.set_quoted('gssize_format', 'i')
- glibconfig_conf.set('glib_msize_type', 'INT')
elif sizet_size == long_size
glibconfig_conf.set('glib_size_type_define', 'long')
glibconfig_conf.set_quoted('gsize_modifier', 'l')
@@ -1305,6 +1298,13 @@ elif sizet_size == long_size
glibconfig_conf.set_quoted('gsize_format', 'lu')
glibconfig_conf.set_quoted('gssize_format', 'li')
glibconfig_conf.set('glib_msize_type', 'LONG')
+elif sizet_size == int_size
+ glibconfig_conf.set('glib_size_type_define', 'int')
+ glibconfig_conf.set_quoted('gsize_modifier', '')
+ glibconfig_conf.set_quoted('gssize_modifier', '')
+ glibconfig_conf.set_quoted('gsize_format', 'u')
+ glibconfig_conf.set_quoted('gssize_format', 'i')
+ glibconfig_conf.set('glib_msize_type', 'INT')
elif sizet_size == long_long_size
glibconfig_conf.set('glib_size_type_define', 'long long')
glibconfig_conf.set_quoted('gsize_modifier', int64_m)
@@ -2107,4 +2107,4 @@ if get_option('man')
endif
gnome = import('gnome')