mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-03-03 06:32:10 +01:00
build: Define MAJOR_IN_TYPES when major is defined in sys/types.h
Autoconf macro AC_HEADER_MAJOR doesn't define a macro in config.h when major is defined in sys/types.h. This was not a problem because major is assumed to be always available. However, commit aefffa3fbc3901 changes this assumption in order to fix build on systems without major, which causes code using major to be disabled on systems putting major in sys/types.h. This commit defines a new macro MAJOR_IN_TYPES for both autotools and meson builds to make major useful on these systems again.
This commit is contained in:
parent
f752515925
commit
c61f01f0ff
@ -665,6 +665,8 @@ AC_CHECK_HEADERS([sys/mount.h sys/sysctl.h], [], [],
|
||||
AC_CHECK_FUNCS(sysctlbyname)
|
||||
|
||||
AC_HEADER_MAJOR
|
||||
AS_IF([test "$ac_cv_header_sys_types_h_makedev" = "yes"],
|
||||
[AC_DEFINE([MAJOR_IN_TYPES], [1], [Define to 1 if `major', `minor', and `makedev' are declared in <sys/types.h>.])])
|
||||
AC_CHECK_HEADERS([xlocale.h])
|
||||
|
||||
# check for structure fields
|
||||
|
@ -32,6 +32,8 @@
|
||||
#include <sys/mkdev.h>
|
||||
#elif MAJOR_IN_SYSMACROS
|
||||
#include <sys/sysmacros.h>
|
||||
#elif MAJOR_IN_TYPES
|
||||
#include <sys/types.h>
|
||||
#else
|
||||
#define MAJOR_MINOR_NOT_FOUND 1
|
||||
#endif
|
||||
|
@ -542,6 +542,8 @@ if cc.has_header_symbol('sys/sysmacros.h', 'major')
|
||||
glib_conf.set('MAJOR_IN_SYSMACROS', 1)
|
||||
elif cc.has_header_symbol('sys/mkdev.h', 'major')
|
||||
glib_conf.set('MAJOR_IN_MKDEV', 1)
|
||||
elif cc.has_header_symbol('sys/types.h', 'major')
|
||||
glib_conf.set('MAJOR_IN_TYPES', 1)
|
||||
endif
|
||||
|
||||
if cc.has_header_symbol('dlfcn.h', 'RTLD_LAZY')
|
||||
|
Loading…
x
Reference in New Issue
Block a user