From ffd8f3bea8c30f54fdf30a51930af2171ded6e85 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 30 Aug 2016 23:34:35 +0100 Subject: add gallium nine enabled wine --- app-emulation/wine/files/builtin_ms_va_list.c | 9 ++ app-emulation/wine/files/pr66838.c | 36 +++++ app-emulation/wine/files/pr69140.c | 37 +++++ .../wine/files/wine-1.4_rc2-multilib-portage.patch | 40 +++++ app-emulation/wine/files/wine-1.5.26-winegcc.patch | 59 +++++++ app-emulation/wine/files/wine-1.6-memset-O3.patch | 21 +++ .../wine/files/wine-1.7.12-osmesa-check.patch | 38 +++++ .../wine/files/wine-1.8-gnutls-3.5-compat.patch | 39 +++++ .../wine/files/wine-1.9.5-multilib-portage.patch | 31 ++++ .../wine/files/wine-gcc-4.9-null-pointer.patch | 35 ++++ app-emulation/wine/files/wine-sysmacros.patch | 177 +++++++++++++++++++++ 11 files changed, 522 insertions(+) create mode 100644 app-emulation/wine/files/builtin_ms_va_list.c create mode 100644 app-emulation/wine/files/pr66838.c create mode 100644 app-emulation/wine/files/pr69140.c create mode 100644 app-emulation/wine/files/wine-1.4_rc2-multilib-portage.patch create mode 100644 app-emulation/wine/files/wine-1.5.26-winegcc.patch create mode 100644 app-emulation/wine/files/wine-1.6-memset-O3.patch create mode 100644 app-emulation/wine/files/wine-1.7.12-osmesa-check.patch create mode 100644 app-emulation/wine/files/wine-1.8-gnutls-3.5-compat.patch create mode 100644 app-emulation/wine/files/wine-1.9.5-multilib-portage.patch create mode 100644 app-emulation/wine/files/wine-gcc-4.9-null-pointer.patch create mode 100644 app-emulation/wine/files/wine-sysmacros.patch (limited to 'app-emulation/wine/files') diff --git a/app-emulation/wine/files/builtin_ms_va_list.c b/app-emulation/wine/files/builtin_ms_va_list.c new file mode 100644 index 00000000..f36fc260 --- /dev/null +++ b/app-emulation/wine/files/builtin_ms_va_list.c @@ -0,0 +1,9 @@ +/* Taken from Wine's configure script. LGPL 2.1+ */ + +#include + +int main(void) +{ + void func(__builtin_ms_va_list *args); + return 0; +} diff --git a/app-emulation/wine/files/pr66838.c b/app-emulation/wine/files/pr66838.c new file mode 100644 index 00000000..cd616859 --- /dev/null +++ b/app-emulation/wine/files/pr66838.c @@ -0,0 +1,36 @@ +/* From gcc svn, /branches/gcc-5-branch/gcc/testsuite/gcc.target/i386/pr66838.c */ +/* Copyrighted and distributed under the same terms as gcc */ + +void abort (void); + +char global; + +__attribute__((sysv_abi, noinline, noclone)) +void sysv_abi_func(char const *desc, void *local) +{ + register int esi asm ("esi"); + register int edi asm ("edi"); + + if (local != &global) + abort (); + + /* Clobber some of the extra SYSV ABI registers. */ + asm volatile ("movl\t%2, %0\n\tmovl\t%2, %1" + : "=r" (esi), "=r" (edi) + : "i" (0xdeadbeef)); +} + +__attribute__((ms_abi, noinline, noclone)) +void ms_abi_func () +{ + sysv_abi_func ("1st call", &global); + sysv_abi_func ("2nd call", &global); + sysv_abi_func ("3rd call", &global); +} + +int +main(void) +{ + ms_abi_func(); + return 0; +} diff --git a/app-emulation/wine/files/pr69140.c b/app-emulation/wine/files/pr69140.c new file mode 100644 index 00000000..7c9e001f --- /dev/null +++ b/app-emulation/wine/files/pr69140.c @@ -0,0 +1,37 @@ +/* { dg-do compile { target lp64 } } */ +/* { dg-options "-O2 -mincoming-stack-boundary=3" } */ + +typedef struct { + unsigned int buf[4]; + unsigned char in[64]; +} MD4_CTX; + +static void +MD4Transform (unsigned int buf[4], const unsigned int in[16]) +{ + unsigned int a, b, c, d; + (b) += ((((c)) & ((d))) | ((~(c)) & ((a)))) + (in[7]); + (a) += ((((b)) & ((c))) | ((~(b)) & ((d)))) + (in[8]); + (d) += ((((a)) & ((b))) | ((~(a)) & ((c)))) + (in[9]); + buf[3] += d; +} + +void __attribute__((ms_abi)) +MD4Update (MD4_CTX *ctx, const unsigned char *buf) +{ + MD4Transform( ctx->buf, (unsigned int *)ctx->in); + MD4Transform( ctx->buf, (unsigned int *)ctx->in); +} + +int +main(void) +{ + MD4_CTX ctx_test = + { + { 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476 }, + { 0, 0 } + }; + unsigned char buf[64]; + + MD4Update(&ctx_test, (const unsigned char *) &buf); +} diff --git a/app-emulation/wine/files/wine-1.4_rc2-multilib-portage.patch b/app-emulation/wine/files/wine-1.4_rc2-multilib-portage.patch new file mode 100644 index 00000000..be6ffc56 --- /dev/null +++ b/app-emulation/wine/files/wine-1.4_rc2-multilib-portage.patch @@ -0,0 +1,40 @@ +https://bugs.gentoo.org/show_bug.cgi?id=395615 + +Explicitly add the required -m32/m64 to *FLAGS; this overrides any +arch-specific -m* flags that may have been appended by multilib-portage. + +Even though -m32/m64 is now added to *FLAGS, -m32/m64 still has to be +explicitly added to CC and CXX due to wine's build system. For example, +winegcc saves the build-time value of CC and uses it at runtime. + +--- a/configure.ac ++++ b/configure.ac +@@ -133,12 +133,18 @@ + then + CC="$CC -m64" + CXX="$CXX -m64" ++ CFLAGS="$CFLAGS -m64" ++ LDFLAGS="$LDFLAGS -m64" ++ CXXFLAGS="$CXXFLAGS -m64" + host_cpu="x86_64" + notice_platform="64-bit " + AC_SUBST(TARGETFLAGS,"-m64") + else + CC="$CC -m32" + CXX="$CXX -m32" ++ CFLAGS="$CFLAGS -m32" ++ LDFLAGS="$LDFLAGS -m32" ++ CXXFLAGS="$CXXFLAGS -m32" + host_cpu="i386" + notice_platform="32-bit " + AC_SUBST(TARGETFLAGS,"-m32") +@@ -150,6 +156,9 @@ + then + CC="$CC -m32" + CXX="$CXX -m32" ++ CFLAGS="$CFLAGS -m32" ++ LDFLAGS="$LDFLAGS -m32" ++ CXXFLAGS="$CXXFLAGS -m32" + AC_MSG_CHECKING([whether $CC works]) + AC_LINK_IFELSE([AC_LANG_PROGRAM()],AC_MSG_RESULT([yes]), + [AC_MSG_RESULT([no]) diff --git a/app-emulation/wine/files/wine-1.5.26-winegcc.patch b/app-emulation/wine/files/wine-1.5.26-winegcc.patch new file mode 100644 index 00000000..2045e343 --- /dev/null +++ b/app-emulation/wine/files/wine-1.5.26-winegcc.patch @@ -0,0 +1,59 @@ +http://bugs.gentoo.org/260726 + +diff --git a/tools/winebuild/main.c b/tools/winebuild/main.c +index 16b4165..5c77267 100644 +--- a/tools/winebuild/main.c ++++ b/tools/winebuild/main.c +@@ -48,10 +48,13 @@ int link_ext_symbols = 0; + int force_pointer_size = 0; + int unwind_tables = 0; + ++#undef FORCE_POINTER_SIZE + #ifdef __i386__ + enum target_cpu target_cpu = CPU_x86; ++#define FORCE_POINTER_SIZE + #elif defined(__x86_64__) + enum target_cpu target_cpu = CPU_x86_64; ++#define FORCE_POINTER_SIZE + #elif defined(__powerpc__) + enum target_cpu target_cpu = CPU_POWERPC; + #elif defined(__arm__) +@@ -611,6 +614,10 @@ int main(int argc, char **argv) + signal( SIGTERM, exit_on_signal ); + signal( SIGINT, exit_on_signal ); + ++#ifdef FORCE_POINTER_SIZE ++ force_pointer_size = sizeof(size_t); ++#endif ++ + output_file = stdout; + argv = parse_options( argc, argv, spec ); + +diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c +index 06aa200..c44d2e3 100644 +--- a/tools/winegcc/winegcc.c ++++ b/tools/winegcc/winegcc.c +@@ -213,10 +213,13 @@ struct options + strarray* files; + }; + ++#undef FORCE_POINTER_SIZE + #ifdef __i386__ + static const enum target_cpu build_cpu = CPU_x86; ++#define FORCE_POINTER_SIZE + #elif defined(__x86_64__) + static const enum target_cpu build_cpu = CPU_x86_64; ++#define FORCE_POINTER_SIZE + #elif defined(__powerpc__) + static const enum target_cpu build_cpu = CPU_POWERPC; + #elif defined(__arm__) +@@ -1258,6 +1261,9 @@ int main(int argc, char **argv) + opts.linker_args = strarray_alloc(); + opts.compiler_args = strarray_alloc(); + opts.winebuild_args = strarray_alloc(); ++#ifdef FORCE_POINTER_SIZE ++ opts.force_pointer_size = sizeof(size_t); ++#endif + + /* determine the processor type */ + if (strendswith(argv[0], "winecpp")) opts.processor = proc_cpp; diff --git a/app-emulation/wine/files/wine-1.6-memset-O3.patch b/app-emulation/wine/files/wine-1.6-memset-O3.patch new file mode 100644 index 00000000..75372f86 --- /dev/null +++ b/app-emulation/wine/files/wine-1.6-memset-O3.patch @@ -0,0 +1,21 @@ +Avoid "undefined reference to `memset'" error when building with +USE=custom-cflags and -O3 in CFLAGS with gcc-4.8. + +See: + +http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56888 +http://bugs.winehq.org/show_bug.cgi?id=33521 +https://bugs.gentoo.org/show_bug.cgi?id=480508 + +diff --git a/configure.ac b/configure.ac +index d8033cf..fe7cc7d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1767,6 +1767,7 @@ then + + dnl Check for some compiler flags + WINE_TRY_CFLAGS([-fno-builtin],[AC_SUBST(BUILTINFLAG,"-fno-builtin")]) ++ WINE_TRY_CFLAGS([-fno-tree-loop-distribute-patterns]) + WINE_TRY_CFLAGS([-fno-strict-aliasing]) + dnl clang needs to be told to fail on unknown options + saved_CFLAGS=$CFLAGS diff --git a/app-emulation/wine/files/wine-1.7.12-osmesa-check.patch b/app-emulation/wine/files/wine-1.7.12-osmesa-check.patch new file mode 100644 index 00000000..7cafcd4e --- /dev/null +++ b/app-emulation/wine/files/wine-1.7.12-osmesa-check.patch @@ -0,0 +1,38 @@ +From 6932b9a17c4f64c13f7060895d46334bc7022430 Mon Sep 17 00:00:00 2001 +From: Alexandre Rostovtsev +Date: Tue, 7 Aug 2012 01:29:01 -0400 +Subject: [PATCH] Do not check for libGL symbols when checking libOSMesa + +If mesa had been built with shared glapi, glAccum is not available in +libOSMesa without explicitly linking to libGL. In addition, in +mesa-8.0.x and earlier, libOSMesa needs to be explicitly linked to +libglapi if mesa was built with shared glapi, see +https://bugs.gentoo.org/show_bug.cgi?id=399813 +And in mesa-8.1.x, libOSMesa in addition needs libdl, libpthread, and +libstdc++, see https://bugs.gentoo.org/show_bug.cgi?id=431832 +--- + configure.ac | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index de807d2..a2e8684 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1233,7 +1233,13 @@ This probably prevents linking to OpenGL. Try deleting the file and restarting c + + if test "x$with_osmesa" != "xno" + then +- WINE_CHECK_SONAME(OSMesa,glAccum,,,[$X_LIBS -lm $X_EXTRA_LIBS]) ++ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[$X_LIBS -lm $X_EXTRA_LIBS]) ++ if test "x$ac_cv_lib_soname_OSMesa" = "x"; then ++ osmesa_save_CC=$CC ++ CC=$CXX ++ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[-lglapi -lpthread -ldl $X_LIBS -lm $X_EXTRA_LIBS]) ++ CC=$osmesa_save_CC ++ fi + WINE_NOTICE_WITH(osmesa,[test "x$ac_cv_lib_soname_OSMesa" = "x"], + [libOSMesa ${notice_platform}development files not found (or too old), OpenGL rendering in bitmaps won't be supported.]) + fi +-- +1.8.5.3 + diff --git a/app-emulation/wine/files/wine-1.8-gnutls-3.5-compat.patch b/app-emulation/wine/files/wine-1.8-gnutls-3.5-compat.patch new file mode 100644 index 00000000..291c4a51 --- /dev/null +++ b/app-emulation/wine/files/wine-1.8-gnutls-3.5-compat.patch @@ -0,0 +1,39 @@ +From bf5ac531a030bce9e798ab66bc53e84a65ca8fdb Mon Sep 17 00:00:00 2001 +From: Michael Cronenworth +Date: Thu, 16 Jun 2016 00:21:13 -0500 +Subject: [PATCH] secur32: Provide a static declaration for + gnutls_cipher_get_block_size. + +Instead of providing an extern provide a static declaration. The +function return type changed from signed to unsigned in GnuTLS 3.5. + +Signed-off-by: Michael Cronenworth +Signed-off-by: Alexandre Julliard +--- + dlls/secur32/schannel_gnutls.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/dlls/secur32/schannel_gnutls.c b/dlls/secur32/schannel_gnutls.c +index b10b629..bcadd47 100644 +--- a/dlls/secur32/schannel_gnutls.c ++++ b/dlls/secur32/schannel_gnutls.c +@@ -42,7 +42,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(secur32); + WINE_DECLARE_DEBUG_CHANNEL(winediag); + + /* Not present in gnutls version < 2.9.10. */ +-extern int gnutls_cipher_get_block_size(gnutls_cipher_algorithm_t algorithm); ++static int (*pgnutls_cipher_get_block_size)(gnutls_cipher_algorithm_t algorithm); + + static void *libgnutls_handle; + #define MAKE_FUNCPTR(f) static typeof(f) * p##f +@@ -52,7 +52,6 @@ MAKE_FUNCPTR(gnutls_certificate_allocate_credentials); + MAKE_FUNCPTR(gnutls_certificate_free_credentials); + MAKE_FUNCPTR(gnutls_certificate_get_peers); + MAKE_FUNCPTR(gnutls_cipher_get); +-MAKE_FUNCPTR(gnutls_cipher_get_block_size); + MAKE_FUNCPTR(gnutls_cipher_get_key_size); + MAKE_FUNCPTR(gnutls_credentials_set); + MAKE_FUNCPTR(gnutls_deinit); +-- +2.1.4 + diff --git a/app-emulation/wine/files/wine-1.9.5-multilib-portage.patch b/app-emulation/wine/files/wine-1.9.5-multilib-portage.patch new file mode 100644 index 00000000..c19d0d8a --- /dev/null +++ b/app-emulation/wine/files/wine-1.9.5-multilib-portage.patch @@ -0,0 +1,31 @@ +https://bugs.gentoo.org/show_bug.cgi?id=395615 + +Explicitly add the required -m32/m64 to *FLAGS; this overrides any +arch-specific -m* flags that may have been appended by multilib-portage. + +Even though -m32/m64 is now added to *FLAGS, -m32/m64 still has to be +explicitly added to CC and CXX due to wine's build system. For example, +winegcc saves the build-time value of CC and uses it at runtime. + +--- a/configure.ac 2016-03-05 20:53:50.574628728 -0500 ++++ b/configure.ac 2016-03-05 20:57:54.945617833 -0500 +@@ -141,6 +141,9 @@ + then + CC="$CC -m32" + CXX="$CXX -m32" ++ CFLAGS="$CFLAGS -m32" ++ LDFLAGS="$LDFLAGS -m32" ++ CXXFLAGS="$CXXFLAGS -m32" + AC_MSG_CHECKING([whether $CC works]) + AC_LINK_IFELSE([AC_LANG_PROGRAM()],AC_MSG_RESULT([yes]), + [AC_MSG_RESULT([no]) +@@ -160,6 +163,9 @@ + fi + CC="$CC -m64" + CXX="$CXX -m64" ++ CFLAGS="$CFLAGS -m64" ++ LDFLAGS="$LDFLAGS -m64" ++ CXXFLAGS="$CXXFLAGS -m64" + host_cpu="x86_64" + notice_platform="64-bit " + AC_SUBST(TARGETFLAGS,"-m64") diff --git a/app-emulation/wine/files/wine-gcc-4.9-null-pointer.patch b/app-emulation/wine/files/wine-gcc-4.9-null-pointer.patch new file mode 100644 index 00000000..213f2c6c --- /dev/null +++ b/app-emulation/wine/files/wine-gcc-4.9-null-pointer.patch @@ -0,0 +1,35 @@ +From deb274226783ab886bdb44876944e156757efe2b Mon Sep 17 00:00:00 2001 +From: Daniel Beitler +Date: Sun, 18 May 2014 13:27:42 -0400 +Subject: [PATCH] msi: Prevent call to memset with a null pointer in + get_tablecolumns function. + +--- + dlls/msi/table.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/dlls/msi/table.c b/dlls/msi/table.c +index 8012369..9ed9421 100644 +--- a/dlls/msi/table.c ++++ b/dlls/msi/table.c +@@ -671,7 +671,7 @@ static UINT get_tablecolumns( MSIDATABASE *db, LPCWSTR szTableName, MSICOLUMNINF + /* Note: _Columns table doesn't have non-persistent data */ + + /* if maxcount is non-zero, assume it's exactly right for this table */ +- memset( colinfo, 0, maxcount * sizeof(*colinfo) ); ++ if (colinfo) memset( colinfo, 0, maxcount * sizeof(*colinfo) ); + count = table->row_count; + for (i = 0; i < count; i++) + { +@@ -684,7 +684,7 @@ static UINT get_tablecolumns( MSIDATABASE *db, LPCWSTR szTableName, MSICOLUMNINF + /* check the column number is in range */ + if (col < 1 || col > maxcount) + { +- ERR("column %d out of range\n", col); ++ ERR("column %d out of range (maxcount: %d)\n", col, maxcount); + continue; + } + /* check if this column was already set */ +-- +1.9.1 + diff --git a/app-emulation/wine/files/wine-sysmacros.patch b/app-emulation/wine/files/wine-sysmacros.patch new file mode 100644 index 00000000..4ea515df --- /dev/null +++ b/app-emulation/wine/files/wine-sysmacros.patch @@ -0,0 +1,177 @@ +From ca8a08606d3f0900b3f4aa8f2e6547882a22dba8 Mon Sep 17 00:00:00 2001 +From: Seong-ho Cho +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 +Signed-off-by: Alexandre Julliard +--- + 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 ++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 + #endif ++#ifdef MAJOR_IN_MKDEV ++# include ++#elif defined(MAJOR_IN_SYSMACROS) ++# include ++#endif + #include + + #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 + #endif ++#ifdef MAJOR_IN_MKDEV ++# include ++#elif defined(MAJOR_IN_SYSMACROS) ++# include ++#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 + #endif ++#ifdef MAJOR_IN_MKDEV ++# include ++#elif defined(MAJOR_IN_SYSMACROS) ++# include ++#endif + #ifdef HAVE_UTIME_H + # include + #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 . ++ */ ++#undef MAJOR_IN_MKDEV ++ ++/* Define to 1 if `major', `minor', and `makedev' are declared in ++ . */ ++#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 + #include ++#ifdef MAJOR_IN_MKDEV ++#include ++#elif defined(MAJOR_IN_SYSMACROS) ++#include ++#endif + #include + #include + #ifdef HAVE_SYS_SYSCALL_H +-- +2.7.4 + -- cgit v1.2.3