diff options
author | Daniel P. Berrange <berrange@redhat.com> | 2009-04-02 18:42:33 +0000 |
---|---|---|
committer | Daniel P. Berrange <berrange@redhat.com> | 2009-04-02 18:42:33 +0000 |
commit | d9ec9c693756ddabcc8f243c083b4f169d9e73f8 (patch) | |
tree | bfa211469fea713b6a6a91ab7d37d8456908446b | |
parent | 0722925986d681becbfb9919134e3468cc06cf2c (diff) | |
download | libvirt-d9ec9c693756ddabcc8f243c083b4f169d9e73f8.tar.gz |
Fix mingw32 portability
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | configure.in | 4 | ||||
-rw-r--r-- | src/util.c | 11 |
3 files changed, 19 insertions, 3 deletions
@@ -1,3 +1,10 @@ +Thu Apr 2 19:41:00 BST 2009 Daniel P. Berrange <berrange@redhat.com> + + Mingw portability fixes + * src/util.c: Fix virFileResolveLink for Win32 platform. + Fix offset usage in safezero for mmap() and write() impls + * configure.in: Add check for readlink() + Thu Apr 2 15:18:00 CEST 2009 Daniel Veillard <veillard@redhat.com> * docs/schemas/domain.rng: some missing disk bus values and cleanups diff --git a/configure.in b/configure.in index 392f2b9f05..70a6b1ac77 100644 --- a/configure.in +++ b/configure.in @@ -72,7 +72,7 @@ dnl Use --disable-largefile if you don't want this. AC_SYS_LARGEFILE dnl Availability of various common functions (non-fatal if missing). -AC_CHECK_FUNCS([cfmakeraw regexec uname sched_getaffinity getuid getgid posix_fallocate mmap]) +AC_CHECK_FUNCS([cfmakeraw regexec uname sched_getaffinity getuid getgid posix_fallocate mmap readlink]) dnl Availability of various not common threadsafe functions AC_CHECK_FUNCS([strerror_r strtok_r getmntent_r getgrnam_r getpwuid_r]) @@ -937,8 +937,8 @@ if test "$with_storage_scsi" = "check"; then AC_DEFINE_UNQUOTED([WITH_STORAGE_SCSI], 1, [whether SCSI backend for storage driver is enabled]) - AM_CONDITIONAL([WITH_STORAGE_SCSI], [test "$with_storage_scsi" = "yes"]) fi +AM_CONDITIONAL([WITH_STORAGE_SCSI], [test "$with_storage_scsi" = "yes"]) LIBPARTED_CFLAGS= diff --git a/src/util.c b/src/util.c index 65088b04c5..5abdbbcec4 100644 --- a/src/util.c +++ b/src/util.c @@ -136,7 +136,7 @@ int safezero(int fd, int flags ATTRIBUTE_UNUSED, off_t offset, off_t len) /* memset wants the mmap'ed file to be present on disk so create a * sparse file */ - r = ftruncate(fd, len); + r = ftruncate(fd, offset + len); if (r < 0) return -errno; @@ -158,6 +158,9 @@ int safezero(int fd, int flags ATTRIBUTE_UNUSED, off_t offset, off_t len) char *buf; unsigned long long remain, bytes; + if (lseek(fd, offset, SEEK_SET) < 0) + return errno; + /* Split up the write in small chunks so as not to allocate lots of RAM */ remain = len; bytes = 1024 * 1024; @@ -949,6 +952,7 @@ int virFileLinkPointsTo(const char *checkLink, int virFileResolveLink(const char *linkpath, char **resultpath) { +#ifdef HAVE_READLINK struct stat st; char *buf; int n; @@ -981,6 +985,11 @@ int virFileResolveLink(const char *linkpath, *resultpath = buf; return 0; +#else + if (!(*resultpath = strdup(linkpath))) + return -ENOMEM; + return 0; +#endif } |