PATCH: a bit further with a cygwin build (fixed patch)
Rafael Kitover
caelum at debian.org
Tue Jul 30 19:41:35 CDT 2002
Sorry, due to brain-deadness on my part the previous version of this
patch didn't build properly. This version is much cleaner and builds
properly on linux.
-------------- next part --------------
Index: configure.ac
===================================================================
RCS file: /home/wine/wine/configure.ac,v
retrieving revision 1.65
diff -u -r1.65 configure.ac
--- configure.ac 30 Jul 2002 02:44:19 -0000 1.65
+++ configure.ac 30 Jul 2002 23:51:10 -0000
@@ -863,12 +863,14 @@
AC_FUNC_ALLOCA()
AC_CHECK_FUNCS(\
__libc_fork \
+ _fstat \
_lwp_create \
_pclose \
_popen \
_snprintf \
_stricmp \
_strnicmp \
+ _stat \
chsize \
clone \
ecvt \
@@ -1083,6 +1085,82 @@
then
AC_DEFINE(HAVE_LINUX_22_JOYSTICK_API, 1,
[Define if <linux/joystick.h> defines the Linux 2.2 joystick API])
+ fi
+fi
+
+dnl **** check for struct netent, getnetbyaddr() and getnetbyname() in <netdb.h> and for _off_t in <sys/types.h> ****
+
+if test "$ac_cv_header_netdb_h" = "yes"
+then
+ AC_CACHE_CHECK([whether netdb.h defines struct netent],
+ wine_cv_netdb_h_defines_struct_netent,
+ AC_TRY_COMPILE([
+ #include <netdb.h>
+ ], [
+ struct netent foo;
+ ],
+ wine_cv_netdb_h_defines_struct_netent=yes,
+ wine_cv_netdb_h_defines_struct_netent=no
+ )
+ )
+ if test "$wine_cv_netdb_h_defines_struct_netent" = "yes"
+ then
+ AC_DEFINE(NETDB_H_DEFINES_STRUCT_NETENT, 1,
+ [Define if <netdb.h> defines struct netent])
+ fi
+
+ AC_CACHE_CHECK([whether netdb.h defines getnetbyaddr],
+ wine_cv_netdb_defines_getnetbyaddr,
+ AC_TRY_COMPILE([
+ #include <netdb.h>
+ ], [
+ getnetbyaddr(0,0);
+ ],
+ wine_cv_netdb_h_defines_getnetbyaddr=yes,
+ wine_cv_netdb_h_defines_getnetbyaddr=no
+ )
+ )
+ if test "$wine_cv_netdb_h_defines_getnetbyaddr" = "yes"
+ then
+ AC_DEFINE(NETDB_H_DEFINES_GETNETBYADDR, 1,
+ [Define if <netdb.h> defines getnetbyaddr()])
+ fi
+
+ AC_CACHE_CHECK([whether netdb.h defines getnetbyname],
+ wine_cv_netdb_h_defines_getnetbyname,
+ AC_TRY_COMPILE([
+ #include <netdb.h>
+ ], [
+ getnetbyname("");
+ ],
+ wine_cv_netdb_h_defines_getnetbyname=yes,
+ wine_cv_netdb_h_defines_getnetbyname=no
+ )
+ )
+ if test "$wine_cv_netdb_h_defines_getnetbyname" = "yes"
+ then
+ AC_DEFINE(NETDB_H_DEFINES_GETNETBYNAME, 1,
+ [Define if <netdb.h> defines getnetbyname()])
+ fi
+fi
+
+if test "$ac_cv_header_sys_types_h" = "yes"
+then
+ AC_CACHE_CHECK([whether sys/types.h defines _off_t],
+ wine_cv_sys_types_h_defines__off_t,
+ AC_TRY_COMPILE([
+ #include <sys/types.h>
+ ], [
+ _off_t o;
+ ],
+ wine_cv_sys_types_h_defines__off_t=yes,
+ wine_cv_sys_types_h_defines__off_t=no
+ )
+ )
+ if test "$wine_cv_sys_types_h_defines__off_t" = "yes"
+ then
+ AC_DEFINE(SYS_TYPES_H_DEFINES__OFF_T, 1,
+ [Define if <sys/types.h> defines _off_t])
fi
fi
Index: dlls/kernel/sync.c
===================================================================
RCS file: /home/wine/wine/dlls/kernel/sync.c,v
retrieving revision 1.21
diff -u -r1.21 sync.c
--- dlls/kernel/sync.c 25 Jul 2002 00:22:03 -0000 1.21
+++ dlls/kernel/sync.c 30 Jul 2002 23:51:11 -0000
@@ -536,6 +536,7 @@
BOOL WINAPI PeekNamedPipe( HANDLE hPipe, LPVOID lpvBuffer, DWORD cbBuffer,
LPDWORD lpcbRead, LPDWORD lpcbAvail, LPDWORD lpcbMessage )
{
+#ifdef FIONREAD
int avail=0,fd;
fd = FILE_GetUnixHandle(hPipe, GENERIC_READ);
@@ -555,6 +556,7 @@
*lpcbAvail= avail;
return TRUE;
}
+#endif /* defined(FIONREAD) */
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
FIXME("function not implemented\n");
Index: dlls/msvcrt/file.c
===================================================================
RCS file: /home/wine/wine/dlls/msvcrt/file.c,v
retrieving revision 1.32
diff -u -r1.32 file.c
--- dlls/msvcrt/file.c 19 Jul 2002 03:24:50 -0000 1.32
+++ dlls/msvcrt/file.c 30 Jul 2002 23:51:13 -0000
@@ -670,7 +670,11 @@
/*********************************************************************
* _fstat (MSVCRT.@)
*/
+#ifndef HAVE__FSTAT
int _fstat(int fd, struct _stat* buf)
+#else
+int MSVCRT(_fstat)(int fd, struct _stat* buf)
+#endif /* HAVE__FSTAT */
{
DWORD dw;
BY_HANDLE_FILE_INFORMATION hfi;
@@ -1135,7 +1139,11 @@
/*********************************************************************
* _stat (MSVCRT.@)
*/
+#ifndef HAVE__STAT
int _stat(const char* path, struct _stat * buf)
+#else
+int MSVCRT(_stat)(const char* path, struct _stat * buf)
+#endif /* HAVE__STAT */
{
DWORD dw;
WIN32_FILE_ATTRIBUTE_DATA hfi;
Index: dlls/ntdll/signal_i386.c
===================================================================
RCS file: /home/wine/wine/dlls/ntdll/signal_i386.c,v
retrieving revision 1.40
diff -u -r1.40 signal_i386.c
--- dlls/ntdll/signal_i386.c 22 Jul 2002 20:47:11 -0000 1.40
+++ dlls/ntdll/signal_i386.c 30 Jul 2002 23:51:15 -0000
@@ -249,8 +249,44 @@
#endif /* __EMX__ */
+#ifdef __CYGWIN__
-#if defined(linux) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__EMX__)
+/* FIXME: This section is just here so it can compile, it's most likely
+ * completely wrong. */
+
+typedef struct
+{
+ unsigned short sc_gs, __gsh;
+ unsigned short sc_fs, __fsh;
+ unsigned short sc_es, __esh;
+ unsigned short sc_ds, __dsh;
+ unsigned long sc_edi;
+ unsigned long sc_esi;
+ unsigned long sc_ebp;
+ unsigned long sc_esp;
+ unsigned long sc_ebx;
+ unsigned long sc_edx;
+ unsigned long sc_ecx;
+ unsigned long sc_eax;
+ unsigned long sc_trapno;
+ unsigned long sc_err;
+ unsigned long sc_eip;
+ unsigned short sc_cs, __csh;
+ unsigned long sc_eflags;
+ unsigned long esp_at_signal;
+ unsigned short sc_ss, __ssh;
+ unsigned long i387;
+ unsigned long oldmask;
+ unsigned long cr2;
+} SIGCONTEXT;
+
+#define HANDLER_DEF(name) void name( int __signal, SIGCONTEXT __context )
+#define HANDLER_CONTEXT (&__context)
+
+#endif /* __CYGWIN__ */
+
+#if defined(linux) || defined(__NetBSD__) || defined(__FreeBSD__) ||\
+ defined(__OpenBSD__) || defined(__EMX__) || defined(__CYGWIN__)
#define EAX_sig(context) ((context)->sc_eax)
#define EBX_sig(context) ((context)->sc_ebx)
Index: dlls/wineps/builtin.c
===================================================================
RCS file: /home/wine/wine/dlls/wineps/builtin.c,v
retrieving revision 1.1
diff -u -r1.1 builtin.c
--- dlls/wineps/builtin.c 24 Jun 2002 23:44:18 -0000 1.1
+++ dlls/wineps/builtin.c 30 Jul 2002 23:51:16 -0000
@@ -49,7 +49,7 @@
* Scale builtin font to requested lfHeight
*
*/
-inline static float round(float f)
+inline static float Round(float f)
{
return (f > 0) ? (f + 0.5) : (f - 0.5);
}
@@ -73,15 +73,15 @@
(float)(wm->usWinAscent + wm->usWinDescent);
}
- font->size = (INT)round(font->fontinfo.Builtin.scale * (float)wm->usUnitsPerEm);
+ font->size = (INT)Round(font->fontinfo.Builtin.scale * (float)wm->usUnitsPerEm);
- usUnitsPerEm = (USHORT)round((float)(wm->usUnitsPerEm) * font->fontinfo.Builtin.scale);
- sAscender = (SHORT)round((float)(wm->sAscender) * font->fontinfo.Builtin.scale);
- sDescender = (SHORT)round((float)(wm->sDescender) * font->fontinfo.Builtin.scale);
- sLineGap = (SHORT)round((float)(wm->sLineGap) * font->fontinfo.Builtin.scale);
- usWinAscent = (USHORT)round((float)(wm->usWinAscent) * font->fontinfo.Builtin.scale);
- usWinDescent = (USHORT)round((float)(wm->usWinDescent) * font->fontinfo.Builtin.scale);
- sAvgCharWidth = (SHORT)round((float)(wm->sAvgCharWidth) * font->fontinfo.Builtin.scale);
+ usUnitsPerEm = (USHORT)Round((float)(wm->usUnitsPerEm) * font->fontinfo.Builtin.scale);
+ sAscender = (SHORT)Round((float)(wm->sAscender) * font->fontinfo.Builtin.scale);
+ sDescender = (SHORT)Round((float)(wm->sDescender) * font->fontinfo.Builtin.scale);
+ sLineGap = (SHORT)Round((float)(wm->sLineGap) * font->fontinfo.Builtin.scale);
+ usWinAscent = (USHORT)Round((float)(wm->usWinAscent) * font->fontinfo.Builtin.scale);
+ usWinDescent = (USHORT)Round((float)(wm->usWinDescent) * font->fontinfo.Builtin.scale);
+ sAvgCharWidth = (SHORT)Round((float)(wm->sAvgCharWidth) * font->fontinfo.Builtin.scale);
tm->tmAscent = (LONG)usWinAscent;
tm->tmDescent = (LONG)usWinDescent;
@@ -125,7 +125,7 @@
font->fontinfo.Builtin.scale *= (float)wm->usUnitsPerEm / 1000.0;
- tm->tmMaxCharWidth = (LONG)round(
+ tm->tmMaxCharWidth = (LONG)Round(
(afm->FontBBox.urx - afm->FontBBox.llx) * font->fontinfo.Builtin.scale);
font->underlinePosition = afm->UnderlinePosition * font->fontinfo.Builtin.scale;
Index: include/config.h.in
===================================================================
RCS file: /home/wine/wine/include/config.h.in,v
retrieving revision 1.125
diff -u -r1.125 config.h.in
--- include/config.h.in 30 Jul 2002 02:44:20 -0000 1.125
+++ include/config.h.in 30 Jul 2002 23:51:17 -0000
@@ -611,6 +611,9 @@
/* Define if the X libraries support XVideo */
#undef HAVE_XVIDEO
+/* Define to 1 if you have the `_fstat' function. */
+#undef HAVE__FSTAT
+
/* Define to 1 if you have the `_lwp_create' function. */
#undef HAVE__LWP_CREATE
@@ -623,6 +626,9 @@
/* Define to 1 if you have the `_snprintf' function. */
#undef HAVE__SNPRINTF
+/* Define to 1 if you have the `_stat' function. */
+#undef HAVE__STAT
+
/* Define to 1 if you have the `_stricmp' function. */
#undef HAVE__STRICMP
@@ -635,6 +641,15 @@
/* Define if stdcall symbols need to be decorated */
#undef NEED_STDCALL_DECORATION
+/* Define if <netdb.h> defines getnetbyaddr() */
+#undef NETDB_H_DEFINES_GETNETBYADDR
+
+/* Define if <netdb.h> defines getnetbyname() */
+#undef NETDB_H_DEFINES_GETNETBYNAME
+
+/* Define if <netdb.h> defines struct netent */
+#undef NETDB_H_DEFINES_STRUCT_NETENT
+
/* Define to disable all debug messages. */
#undef NO_DEBUG_MSGS
@@ -699,6 +714,9 @@
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
+
+/* Define if <sys/types.h> defines _off_t */
+#undef SYS_TYPES_H_DEFINES__OFF_T
/* Define to 1 if the X Window System is missing or not being used. */
#undef X_DISPLAY_MISSING
Index: include/msvcrt/sys/stat.h
===================================================================
RCS file: /home/wine/wine/include/msvcrt/sys/stat.h,v
retrieving revision 1.4
diff -u -r1.4 stat.h
--- include/msvcrt/sys/stat.h 27 Apr 2002 21:14:50 -0000 1.4
+++ include/msvcrt/sys/stat.h 30 Jul 2002 23:51:17 -0000
@@ -9,6 +9,7 @@
#define __WINE_SYS_STAT_H
#define __WINE_USE_MSVCRT
+#include "config.h"
#include "msvcrt/sys/types.h"
@@ -34,7 +35,11 @@
short st_uid;
short st_gid;
_dev_t st_rdev;
+#ifndef SYS_TYPES_H_DEFINES__OFF_T
_off_t st_size;
+#else
+ MSVCRT(_off_t) st_size;
+#endif /* SYS_TYPES_H_DEFINES__OFF_T */
MSVCRT(time_t) st_atime;
MSVCRT(time_t) st_mtime;
MSVCRT(time_t) st_ctime;
@@ -59,9 +64,20 @@
extern "C" {
#endif
+#ifndef HAVE__FSTAT
int _fstat(int,struct _stat*);
+#else
+int MSVCRT(_fstat)(int,struct _stat*);
+#endif /* HAVE__FSTAT */
+
int _fstati64(int,struct _stati64*);
+
+#ifndef HAVE__STAT
int _stat(const char*,struct _stat*);
+#else
+int MSVCRT(_stat)(const char*,struct _stat*);
+#endif /* HAVE__STAT */
+
int _stati64(const char*,struct _stati64*);
int _wstat(const WCHAR*,struct _stat*);
Index: include/msvcrt/sys/types.h
===================================================================
RCS file: /home/wine/wine/include/msvcrt/sys/types.h,v
retrieving revision 1.4
diff -u -r1.4 types.h
--- include/msvcrt/sys/types.h 10 Mar 2002 00:02:38 -0000 1.4
+++ include/msvcrt/sys/types.h 30 Jul 2002 23:51:17 -0000
@@ -21,6 +21,7 @@
#define __WINE_SYS_TYPES_H
#define __WINE_USE_MSVCRT
+#include "config.h"
#ifdef USE_MSVCRT_PREFIX
#define MSVCRT(x) MSVCRT_##x
@@ -31,7 +32,11 @@
typedef unsigned int _dev_t;
typedef unsigned short _ino_t;
+#ifndef SYS_TYPES_H_DEFINES__OFF_T
typedef int _off_t;
+#else
+typedef int MSVCRT(_off_t);
+#endif /* SYS_TYPES_H_DEFINES__OFF_T */
typedef long MSVCRT(time_t);
Index: include/wine/port.h
===================================================================
RCS file: /home/wine/wine/include/wine/port.h,v
retrieving revision 1.28
diff -u -r1.28 port.h
--- include/wine/port.h 29 Jul 2002 23:55:40 -0000 1.28
+++ include/wine/port.h 30 Jul 2002 23:51:17 -0000
@@ -61,14 +61,16 @@
typedef int ssize_t;
#endif
-#if !defined(HAVE_GETNETBYADDR) && !defined(HAVE_GETNETBYNAME)
+#if !defined(HAVE_GETNETBYADDR) && !defined(HAVE_GETNETBYNAME) &&\
+ !defined(NETDB_H_DEFINES_STRUCT_NETENT)
struct netent {
char *n_name;
char **n_aliases;
int n_addrtype;
unsigned long n_net;
};
-#endif /* !defined(HAVE_GETNETBYADDR) && !defined(HAVE_GETNETBYNAME) */
+#endif /* !defined(HAVE_GETNETBYADDR) && !defined(HAVE_GETNETBYNAME) &&
+ !defined(NETDB_H_DEFINES_STRUCT_NETENT) */
#if !defined(HAVE_GETPROTOBYNAME) && !defined(HAVE_GETPROTOBYNUMBER)
struct protoent {
@@ -186,13 +188,13 @@
int clone(int (*fn)(void *arg), void *stack, int flags, void *arg);
#endif /* !defined(HAVE_CLONE) && defined(linux) */
-#ifndef HAVE_GETNETBYADDR
+#if !defined(HAVE_GETNETBYADDR) && !defined(NETDB_H_DEFINES_GETNETBYADDR)
struct netent *getnetbyaddr(unsigned long net, int type);
-#endif /* defined(HAVE_GETNETBYNAME) */
+#endif /* !defined(HAVE_GETNETBYNAME) && !defined(NETDB_H_DEFINES_GETNETBYADDR) */
-#ifndef HAVE_GETNETBYNAME
+#if !defined(HAVE_GETNETBYNAME) && !defined(NETDB_H_DEFINES_GETNETBYNAME)
struct netent *getnetbyname(const char *name);
-#endif /* defined(HAVE_GETNETBYNAME) */
+#endif /* !defined(HAVE_GETNETBYNAME) && !defined(NETDB_H_DEFINES_GETNETBYNAME) */
#ifndef HAVE_GETPAGESIZE
size_t getpagesize(void);
Index: library/Makefile.in
===================================================================
RCS file: /home/wine/wine/library/Makefile.in,v
retrieving revision 1.15
diff -u -r1.15 Makefile.in
--- library/Makefile.in 20 Jun 2002 23:21:27 -0000 1.15
+++ library/Makefile.in 30 Jul 2002 23:51:17 -0000
@@ -33,7 +33,11 @@
$(RANLIB) $@
libwine.dll: $(OBJS)
- $(DLLWRAP) $(DLLWRAPFLAGS) --export-all --implib libwine.a -o libwine.dll $(OBJS) -lmsvcrt
+ if echo $(CFLAGS) | grep -i mingw > /dev/null 2>&1; then \
+ $(DLLWRAP) $(DLLWRAPFLAGS) --export-all --implib libwine.a -o libwine.dll $(OBJS) -lmsvcrt; \
+ else \
+ $(DLLWRAP) $(DLLWRAPFLAGS) --export-all --implib libwine.a -o libwine.dll $(OBJS); \
+ fi
.PHONY: install_so install_a install_dll
Index: tsx11/Makefile.in
===================================================================
RCS file: /home/wine/wine/tsx11/Makefile.in,v
retrieving revision 1.14
diff -u -r1.14 Makefile.in
--- tsx11/Makefile.in 14 Jun 2002 23:48:28 -0000 1.14
+++ tsx11/Makefile.in 30 Jul 2002 23:51:18 -0000
@@ -37,7 +37,7 @@
$(RANLIB) $@
libwine_tsx11.dll: $(OBJS)
- $(DLLWRAP) $(DLLWRAPFLAGS) --export-all --implib libwine_tsx11.a -o libwine_tsx11.dll $(OBJS)
+ $(DLLWRAP) $(DLLWRAPFLAGS) --export-all --implib libwine_tsx11.a -o libwine_tsx11.dll $(OBJS) $(EXTRALIBS)
.PHONY: install_so install_a
More information about the wine-patches
mailing list