Daniel P. Berrange wrote: > pread() and pwrite() do not exist on mingw, and the nodedevxml2xmltest > was adding libvirt_driver_qemu.la for some unknown reason - probably a > cut & paste error. This broke the test compile when qemu was turned off > as it is on mingw32. Although the new code doesn't have exactly the same semantics as pread/pwrite (new code doesn't restore each file pointer to its original position), it looks like no caller relied on the file pointers remaining unchanged. On a related note, don't these need EAGAIN handling? Maybe EINTR, too. > diff --git a/src/pci.c b/src/pci.c > --- a/src/pci.c > +++ b/src/pci.c > @@ -156,7 +156,8 @@ pciRead(pciDevice *dev, unsigned pos, ui > if (pciOpenConfig(dev) < 0) > return -1; > > - if (pread(dev->fd, buf, buflen, pos) < 0) { > + if (lseek(dev->fd, pos, SEEK_SET) != pos || > + read(dev->fd, buf, buflen) < 0) { > char ebuf[1024]; > VIR_WARN(_("Failed to read from '%s' : %s"), dev->path, > virStrerror(errno, ebuf, sizeof(ebuf))); > @@ -195,7 +196,8 @@ pciWrite(pciDevice *dev, unsigned pos, u > if (pciOpenConfig(dev) < 0) > return -1; > > - if (pwrite(dev->fd, buf, buflen, pos) < 0) { > + if (lseek(dev->fd, pos, SEEK_SET) != pos || > + write(dev->fd, buf, buflen) < 0) { > char ebuf[1024]; > VIR_WARN(_("Failed to write to '%s' : %s"), dev->path, > virStrerror(errno, ebuf, sizeof(ebuf))); > diff --git a/tests/Makefile.am b/tests/Makefile.am > --- a/tests/Makefile.am > +++ b/tests/Makefile.am > @@ -185,7 +185,7 @@ endif > nodedevxml2xmltest_SOURCES = \ > nodedevxml2xmltest.c \ > testutils.c testutils.h > -nodedevxml2xmltest_LDADD = ../src/libvirt_driver_qemu.la $(LDADDS) > +nodedevxml2xmltest_LDADD = $(LDADDS) > > virshtest_SOURCES = \ > virshtest.c \ -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list