From dd1af7541f18399bcdcb129a8b6618c18ebd9d63 Mon Sep 17 00:00:00 2001
From: Tomasz Torcz <tomek@pipebreaker.pl>
Date: Sat, 17 Mar 2018 12:56:04 +0100
Subject: [PATCH] include <sys/sysmacros.h> for major()

  Linux glibc ceased to include it in sys/types.h:
https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html

Upstream-Status: Backport
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 configure.ac                  | 2 +-
 module/owlib/src/include/ow.h | 6 +++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index 86751bf7..d625d3f0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -180,7 +180,7 @@ m4_include([src/scripts/m4/acx_pthread.m4])
 # Checks for header files.
 AC_HEADER_DIRENT
 AC_HEADER_STDC
-AC_CHECK_HEADERS([asm/types.h arpa/inet.h sys/ioctl.h sys/mkdev.h sys/socket.h sys/time.h sys/times.h sys/types.h sys/param.h sys/uio.h feature_tests.h fcntl.h netinet/in.h stdlib.h string.h strings.h sys/file.h syslog.h termios.h unistd.h limits.h stdint.h features.h getopt.h resolv.h semaphore.h])
+AC_CHECK_HEADERS([asm/types.h arpa/inet.h sys/ioctl.h sys/mkdev.h sys/socket.h sys/sysmacros.h sys/time.h sys/times.h sys/types.h sys/param.h sys/uio.h feature_tests.h fcntl.h netinet/in.h stdlib.h string.h strings.h sys/file.h syslog.h termios.h unistd.h limits.h stdint.h features.h getopt.h resolv.h semaphore.h])
 AC_CHECK_HEADERS([linux/limits.h linux/types.h netdb.h dlfcn.h])
 AC_CHECK_HEADERS(sys/event.h sys/inotify.h)
 
diff --git a/module/owlib/src/include/ow.h b/module/owlib/src/include/ow.h
index 9dbec5f3..0a310552 100644
--- a/module/owlib/src/include/ow.h
+++ b/module/owlib/src/include/ow.h
@@ -188,8 +188,12 @@
 #include <netdb.h>				/* for getaddrinfo */
 #endif							/* HAVE_NETDB_H */
 
+#ifdef HAVE_SYS_SYSMACROS_H
+#include <sys/sysmacros.h>			/* for major() */
+#endif							/* HAVE_SYS_SYSMACROS_H */
+
 #ifdef HAVE_SYS_MKDEV_H
-#include <sys/mkdev.h>			/* for major() */
+#include <sys/mkdev.h>			/* for major() on Solaris */
 #endif							/* HAVE_SYS_MKDEV_H */
 
 #include <stddef.h> // for offsetof()
