summaryrefslogtreecommitdiff
blob: 4ea515df5c8a7688e44fe566f9f18be19f3acf68 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
From ca8a08606d3f0900b3f4aa8f2e6547882a22dba8 Mon Sep 17 00:00:00 2001
From: Seong-ho Cho <darkcircle.0426@gmail.com>
Date: Mon, 18 Apr 2016 04:25:38 +0900
Subject: [PATCH] configure: Add AC_HEADER_MAJOR to find where major() is
 defined.

Signed-off-by: Seong-ho Cho <darkcircle.0426@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
---
 configure              | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac           |  1 +
 dlls/ntdll/cdrom.c     |  5 +++++
 dlls/ntdll/directory.c |  5 +++++
 dlls/ntdll/file.c      |  5 +++++
 include/config.h.in    |  8 ++++++++
 server/fd.c            |  5 +++++
 7 files changed, 79 insertions(+)

diff --git a/configure b/configure
index 1cb0e59..ffb1825 100755
--- a/configure
+++ b/configure
@@ -6836,6 +6836,56 @@ fi
 
 done
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sys/types.h defines makedev" >&5
+$as_echo_n "checking whether sys/types.h defines makedev... " >&6; }
+if ${ac_cv_header_sys_types_h_makedev+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+int
+main ()
+{
+return makedev(0, 0);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_header_sys_types_h_makedev=yes
+else
+  ac_cv_header_sys_types_h_makedev=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_types_h_makedev" >&5
+$as_echo "$ac_cv_header_sys_types_h_makedev" >&6; }
+
+if test $ac_cv_header_sys_types_h_makedev = no; then
+ac_fn_c_check_header_mongrel "$LINENO" "sys/mkdev.h" "ac_cv_header_sys_mkdev_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_mkdev_h" = xyes; then :
+
+$as_echo "#define MAJOR_IN_MKDEV 1" >>confdefs.h
+
+fi
+
+
+
+  if test $ac_cv_header_sys_mkdev_h = no; then
+    ac_fn_c_check_header_mongrel "$LINENO" "sys/sysmacros.h" "ac_cv_header_sys_sysmacros_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_sysmacros_h" = xyes; then :
+
+$as_echo "#define MAJOR_IN_SYSMACROS 1" >>confdefs.h
+
+fi
+
+
+  fi
+fi
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5
 $as_echo_n "checking whether stat file-mode macros are broken... " >&6; }
 if ${ac_cv_header_stat_broken+:} false; then :
diff --git a/configure.ac b/configure.ac
index 6189aa9..201bc77 100644
--- a/configure.ac
+++ b/configure.ac
@@ -512,6 +512,7 @@ AC_CHECK_HEADERS(\
 	valgrind/valgrind.h \
 	zlib.h
 )
+AC_HEADER_MAJOR()
 AC_HEADER_STAT()
 
 dnl **** Checks for headers that depend on other ones ****
diff --git a/dlls/ntdll/cdrom.c b/dlls/ntdll/cdrom.c
index ee36045..2c64106 100644
--- a/dlls/ntdll/cdrom.c
+++ b/dlls/ntdll/cdrom.c
@@ -38,6 +38,11 @@
 #ifdef HAVE_SYS_STAT_H
 # include <sys/stat.h>
 #endif
+#ifdef MAJOR_IN_MKDEV
+# include <sys/mkdev.h>
+#elif defined(MAJOR_IN_SYSMACROS)
+# include <sys/sysmacros.h>
+#endif
 #include <sys/types.h>
 
 #ifdef HAVE_SYS_IOCTL_H
diff --git a/dlls/ntdll/directory.c b/dlls/ntdll/directory.c
index 93fe594..4d431c0 100644
--- a/dlls/ntdll/directory.c
+++ b/dlls/ntdll/directory.c
@@ -47,6 +47,11 @@
 #ifdef HAVE_SYS_ATTR_H
 #include <sys/attr.h>
 #endif
+#ifdef MAJOR_IN_MKDEV
+# include <sys/mkdev.h>
+#elif defined(MAJOR_IN_SYSMACROS)
+# include <sys/sysmacros.h>
+#endif
 #ifdef HAVE_SYS_VNODE_H
 /* Work around a conflict with Solaris' system list defined in sys/list.h. */
 #define list SYSLIST
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
index 7e5da59..b3bd9d6 100644
--- a/dlls/ntdll/file.c
+++ b/dlls/ntdll/file.c
@@ -57,6 +57,11 @@
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
+#ifdef MAJOR_IN_MKDEV
+# include <sys/mkdev.h>
+#elif defined(MAJOR_IN_SYSMACROS)
+# include <sys/sysmacros.h>
+#endif
 #ifdef HAVE_UTIME_H
 # include <utime.h>
 #endif
diff --git a/include/config.h.in b/include/config.h.in
index 0650f31..06b192f 100644
--- a/include/config.h.in
+++ b/include/config.h.in
@@ -1335,6 +1335,14 @@
 /* Define to 1 if you have the `__res_get_state' function. */
 #undef HAVE___RES_GET_STATE
 
+/* Define to 1 if `major', `minor', and `makedev' are declared in <mkdev.h>.
+   */
+#undef MAJOR_IN_MKDEV
+
+/* Define to 1 if `major', `minor', and `makedev' are declared in
+   <sysmacros.h>. */
+#undef MAJOR_IN_SYSMACROS
+
 /* Define to the address where bug reports for this package should be sent. */
 #undef PACKAGE_BUGREPORT
 
diff --git a/server/fd.c b/server/fd.c
index 1fd1ce7..17b1b66 100644
--- a/server/fd.c
+++ b/server/fd.c
@@ -83,6 +83,11 @@
 #endif
 #include <sys/stat.h>
 #include <sys/time.h>
+#ifdef MAJOR_IN_MKDEV
+#include <sys/mkdev.h>
+#elif defined(MAJOR_IN_SYSMACROS)
+#include <sys/sysmacros.h>
+#endif
 #include <sys/types.h>
 #include <unistd.h>
 #ifdef HAVE_SYS_SYSCALL_H
-- 
2.7.4