* [Qemu-devel] build regression on osx in block layer @ 2014-09-29 10:10 Igor Mammedov 2014-09-29 13:58 ` Peter Maydell 0 siblings, 1 reply; 3+ messages in thread From: Igor Mammedov @ 2014-09-29 10:10 UTC (permalink / raw) To: Hu Tao; +Cc: Kevin Wolf, qemu-devel Build fails with: $ make LINK qemu-nbd Undefined symbols for architecture x86_64: "_posix_fallocate", referenced from: _raw_create in raw-posix.o ld: symbol(s) not found for architecture x86_64 introduced by 06247428be raw-posix: Add falloc and full preallocation ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] build regression on osx in block layer 2014-09-29 10:10 [Qemu-devel] build regression on osx in block layer Igor Mammedov @ 2014-09-29 13:58 ` Peter Maydell 2014-09-29 15:36 ` Kevin Wolf 0 siblings, 1 reply; 3+ messages in thread From: Peter Maydell @ 2014-09-29 13:58 UTC (permalink / raw) To: Igor Mammedov; +Cc: Kevin Wolf, Hu Tao, QEMU Developers On 29 September 2014 11:10, Igor Mammedov <imammedo@redhat.com> wrote: > Build fails with: > > $ make > LINK qemu-nbd > Undefined symbols for architecture x86_64: > "_posix_fallocate", referenced from: > _raw_create in raw-posix.o > ld: symbol(s) not found for architecture x86_64 > > introduced by > 06247428be raw-posix: Add falloc and full preallocation I think the MacOSX interface to this involves fcntl(F_PREALLOCATE). This is what Mozilla uses: fstore_t store = {F_ALLOCATECONTIG, F_PEOFPOSMODE, 0, aLength}; // Try to get a continous chunk of disk space int ret = fcntl(fd, F_PREALLOCATE, &store); if(-1 == ret){ // OK, perhaps we are too fragmented, allocate non-continuous store.fst_flags = F_ALLOCATEALL; ret = fcntl(fd, F_PREALLOCATE, &store); if (-1 == ret) return false; } return 0 == ftruncate(fd, aLength); This has probably broken compilation on the BSDs as well, since I don't suppose they all have posix_fallocate(). In extremis we can implement it with truncate-and-write, cf: http://stackoverflow.com/questions/11497567/fallocate-command-equivalent-in-os-x We probably need a util/qemu-fallocate.c... In the meantime, maybe we should revert commits 06247428b and 0e4271b711a8 ? thanks -- PMM ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] build regression on osx in block layer 2014-09-29 13:58 ` Peter Maydell @ 2014-09-29 15:36 ` Kevin Wolf 0 siblings, 0 replies; 3+ messages in thread From: Kevin Wolf @ 2014-09-29 15:36 UTC (permalink / raw) To: Peter Maydell; +Cc: Igor Mammedov, QEMU Developers, Hu Tao Am 29.09.2014 um 15:58 hat Peter Maydell geschrieben: > On 29 September 2014 11:10, Igor Mammedov <imammedo@redhat.com> wrote: > > Build fails with: > > > > $ make > > LINK qemu-nbd > > Undefined symbols for architecture x86_64: > > "_posix_fallocate", referenced from: > > _raw_create in raw-posix.o > > ld: symbol(s) not found for architecture x86_64 > > > > introduced by > > 06247428be raw-posix: Add falloc and full preallocation > > I think the MacOSX interface to this involves > fcntl(F_PREALLOCATE). This is what Mozilla uses: > > fstore_t store = {F_ALLOCATECONTIG, F_PEOFPOSMODE, 0, aLength}; > // Try to get a continous chunk of disk space > int ret = fcntl(fd, F_PREALLOCATE, &store); > if(-1 == ret){ > // OK, perhaps we are too fragmented, allocate non-continuous > store.fst_flags = F_ALLOCATEALL; > ret = fcntl(fd, F_PREALLOCATE, &store); > if (-1 == ret) > return false; > } > return 0 == ftruncate(fd, aLength); > > This has probably broken compilation on the BSDs > as well, since I don't suppose they all have > posix_fallocate(). In extremis we can implement > it with truncate-and-write, cf: > http://stackoverflow.com/questions/11497567/fallocate-command-equivalent-in-os-x > > We probably need a util/qemu-fallocate.c... Sent a patch to make the build of that code conditional. Having some util/qemu-fallocate.c probably wouldn't hurt, but it needs to be done by someone who has a system that uses a different path (i.e. not me). Kevin ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-09-29 15:37 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-09-29 10:10 [Qemu-devel] build regression on osx in block layer Igor Mammedov 2014-09-29 13:58 ` Peter Maydell 2014-09-29 15:36 ` Kevin Wolf
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).