build: Use AC_HEADER_MAJOR to find device macros

Depending on the OS/libc, device macros are defined in different
headers. This change ensures we include the right one.

sys/types.h - BSD
sys/mkdev.h - Sun
sys/sysmacros.h - glibc (Linux)

glibc currently pulls sys/sysmacros.h into sys/types.h, but this may
change in a future release.

https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html
This commit is contained in:
Mike Gilbert 2016-04-19 14:27:22 -04:00 committed by Andrei Borzenkov
parent abf9beb7d6
commit 7a5b301e3a
5 changed files with 22 additions and 2 deletions

View file

@ -35,6 +35,12 @@
#include <limits.h>
#endif
#if defined(MAJOR_IN_MKDEV)
#include <sys/mkdev.h>
#elif defined(MAJOR_IN_SYSMACROS)
#include <sys/sysmacros.h>
#endif
#include <grub/types.h>
#include <sys/ioctl.h> /* ioctl */
#include <sys/mount.h>