These are defined by a POSIX standard, and we should assert that we have them, or define sane fallbacks (as per sys_types.h(0P)). --- meson.build | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/meson.build b/meson.build index c2ed707a..ec94a44a 100644 --- a/meson.build +++ b/meson.build @@ -185,6 +185,21 @@ foreach member : [ conf.set('HAVE_' + '_'.join([member[0], member[1]]).underscorify().to_upper(), have) endforeach +foreach type : [ + # type # program prefix # fallback + ['mode_t', '''#include <sys/types.h>''', 'unsigned int'], + ['uid_t', '''#include <sys/types.h>''', 'unsigned int'], + ['off_t', '''#include <sys/types.h>''', 'signed int'], + ['pid_t', '''#include <sys/types.h>''', 'signed int'], + ['size_t', '''#include <sys/types.h>''', 'unsigned int'], + ['ssize_t', '''#include <sys/types.h>''', 'signed int'], + ['int64_t', '''#include <stdint.h>''', 'signed long int'], + ] + if not cc.has_type(type[0], prefix: type[1]) + conf.set(type[0], type[2]) + endif +endforeach + if conf.has('HAVE_STRUCT_STATVFS_F_FLAG') conf.set('FSSTATSTYPE', 'struct statvfs') elif conf.has('HAVE_STRUCT_STATFS_F_FLAGS') -- 2.22.0