]> git.sur5r.net Git - bacula/bacula/commitdiff
ebl Tweak code to compile win64 version with mingw
authorEric Bollengier <eric@eb.homelinux.org>
Mon, 23 Mar 2009 08:56:20 +0000 (08:56 +0000)
committerEric Bollengier <eric@eb.homelinux.org>
Mon, 23 Mar 2009 08:56:20 +0000 (08:56 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@8584 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/baconfig.h
bacula/src/bc_types.h
bacula/src/win32/compat/compat.cpp
bacula/src/win32/compat/compat.h
bacula/src/win32/filed/plugins/dbi_node.c
bacula/src/win32/filed/vss.cpp
bacula/src/win32/libwin32/main.cpp
bacula/technotes-2.5

index f7d2327b01f44cc3859785be298fda5188c27ce4..c341826e7c6a3784d2ddeb5761aedc8549767fa5 100644 (file)
 #define TRUE  1
 #define FALSE 0
 
-#ifndef MAX
-#define MAX(a, b) ((a) > (b) ? (a) : (b))
-#endif
-#ifndef MIN
-#define MIN(a, b) ((a) < (b) ? (a) : (b))
-#endif
-
 #ifdef HAVE_TLS
 #define have_tls 1
 #else
index 4a7c30de5393fc38782454df0f9b17302245dd9b..bd08067dd67121186cd968f66c37b40db82ecc48 100644 (file)
@@ -247,5 +247,11 @@ enum {
    CF_CREATED                         /* file created, no data to extract */
 };
 
+#ifndef MAX
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
+#endif
+#ifndef MIN
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
+#endif
 
 #endif /* __bc_types_INCLUDED */
index cb1ebc9829da14839ed67c138e11c754427d12eb..dc91721651d6c8f05367bd0f14bdc39bb5760b83 100644 (file)
@@ -733,7 +733,7 @@ statDir(const char *file, struct stat *sb)
 }
 
 int
-fstat(int fd, struct stat *sb)
+fstat(intptr_t fd, struct stat *sb)
 {
    BY_HANDLE_FILE_INFORMATION info;
 
@@ -827,7 +827,7 @@ stat2(const char *file, struct stat *sb)
       return -1;
    }
 
-   rval = fstat((int)h, sb);
+   rval = fstat((intprt_t)h, sb);
    CloseHandle(h);
 
    if (attr & FILE_ATTRIBUTE_DIRECTORY &&
@@ -2201,7 +2201,7 @@ open_bpipe(char *prog, int wait, const char *mode)
                                      // process terminates we can
                                      // detect eof.
         // ugly but convert WIN32 HANDLE to FILE*
-        int rfd = _open_osfhandle((long)hChildStdoutRdDup, O_RDONLY | O_BINARY);
+        int rfd = _open_osfhandle((intptr_t)hChildStdoutRdDup, O_RDONLY | O_BINARY);
         if (rfd >= 0) {
            bpipe->rfd = _fdopen(rfd, "rb");
         }
@@ -2210,7 +2210,7 @@ open_bpipe(char *prog, int wait, const char *mode)
         CloseHandle(hChildStdinRd); // close our read side so as not
                                     // to interfre with child's copy
         // ugly but convert WIN32 HANDLE to FILE*
-        int wfd = _open_osfhandle((long)hChildStdinWrDup, O_WRONLY | O_BINARY);
+        int wfd = _open_osfhandle((intptr_t)hChildStdinWrDup, O_WRONLY | O_BINARY);
         if (wfd >= 0) {
            bpipe->wfd = _fdopen(wfd, "wb");
         }
@@ -2316,6 +2316,7 @@ close_wpipe(BPIPE *bpipe)
     return result;
 }
 
+#ifndef MINGW64
 int
 utime(const char *fname, struct utimbuf *times)
 {
@@ -2367,6 +2368,7 @@ utime(const char *fname, struct utimbuf *times)
     }
     return rval;
 }
+#endif
 
 #if 0
 int
index 184e7fe17048a1d3df247eaa1b4f16fe89080eac..4df0e732b8cb70f4ac6dc87eba02a60ddf1e4658 100644 (file)
 
 #include <malloc.h>
 
+#ifdef MINGW64
+#include <direct.h>
+#define _declspec __declspec
+#endif
+
+#ifdef _WIN64
+# define GWL_USERDATA  GWLP_USERDATA
+#endif
+
 #ifndef INT64
 #define INT64 long long int
 #endif
@@ -255,10 +264,12 @@ ssize_t win32_read(int fd, void *buffer, size_t count);
 ssize_t win32_write(int fd, const void *buffer, size_t count);
 int win32_ioctl(int fd, unsigned long int req, ...);
 
+#ifndef MINGW64
 #define open   _open
+#endif
 
 int fcntl(int fd, int cmd, long arg);
-int fstat(int fd, struct stat *sb);
+int fstat(intptr_t fd, struct stat *sb);
 
 int inet_aton(const char *cp, struct in_addr *inp);
 int kill(int pid, int signo);
index 7744b040f57f1834c866f19631f6310fa071bcdd..d00ac2f043c3907aa4c475bc7e545fedc3fa4370 100644 (file)
@@ -172,7 +172,7 @@ dbi_node_t::pluginIoRead(exchange_fd_context_t *context, struct io_pkt *io)
         io->status = 0;
         io->io_errno = 0;
 
-        io->status = min(io->count, (int)(buffer_size - buffer_pos));
+        io->status = MIN(io->count, (int)(buffer_size - buffer_pos));
         if (io->status == 0)
                 return bRC_OK;
         memcpy(io->buf, buffer + buffer_pos, io->status);
index 706565ae163dc140600ef7299cc794b27b137b4c..7a73c32fe43c1e95bdf6fd1259e682b8e65c4166 100644 (file)
@@ -215,7 +215,7 @@ const char* VSSClient::GetWriterInfo(int nIndex)
 const int VSSClient::GetWriterState(int nIndex)
 {
    alist* pV = (alist*)m_pAlistWriterState;   
-   return (int)pV->get(nIndex);
+   return (intptr_t)pV->get(nIndex);
 }
 
 void VSSClient::AppendWriterInfo(int nState, const char* pszInfo)
index a195eef0561eaf99df398483b26fc7100d44a39d..4c6bc3ef36977daa75097efcd2b9d9b36e2350f9 100644 (file)
 #include <pthread.h>
 
 #undef  _WIN32_IE
-#define _WIN32_IE 0x0401
+#ifdef MINGW64
+# define _WIN32_IE 0x0501
+#else
+# define _WIN32_IE 0x0401
+#endif  // MINGW64
 #undef  _WIN32_WINNT
 #define _WIN32_WINNT 0x0501
 #include <commctrl.h>
index f61d1f36287260eae2e686312710da4ad12e502f..05e49296e4f65520875e475441dc2b05ecb964fa 100644 (file)
@@ -49,6 +49,8 @@ Code to be completed before 3.0.0 is released:
 
 
 General:
+23Mar09
+ebl  Tweak code to compile win64 version with mingw
 21Mar09
 Kes  Attempt to correct timing problems with starting bat and obtaining
      lists. Maintain in_command counter to know when a list is coming.