Message ID | 20200825103850.119911-4-berrange@redhat.com |
---|---|
State | New |
Headers | show |
Series | nbd: build qemu-nbd on Windows | expand |
On Thu, Sep 3, 2020 at 7:29 AM Eric Blake <eblake@redhat.com> wrote: > On 9/2/20 5:07 PM, 罗勇刚(Yonggang Luo) wrote: > > On Tue, Aug 25, 2020 at 6:40 PM Daniel P. Berrangé <berrange@redhat.com> > > wrote: > > > >> Disabling these parts are sufficient to get the qemu-nbd program > >> compiling in a Windows build. > >> > >> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> > >> --- > >> meson.build | 7 ++----- > >> qemu-nbd.c | 5 +++++ > >> 2 files changed, 7 insertions(+), 5 deletions(-) > > >> +++ b/qemu-nbd.c > >> @@ -899,6 +899,7 @@ int main(int argc, char **argv) > >> #endif > >> > >> if ((device && !verbose) || fork_process) { > >> +#ifndef WIN32 > >> int stderr_fd[2]; > >> pid_t pid; > >> int ret; > >> @@ -962,6 +963,10 @@ int main(int argc, char **argv) > >> */ > >> exit(errors); > >> } > >> +#else /* WIN32 */ > >> + error_report("Unable to fork into background on Windows > hosts"); > >> + exit(EXIT_FAILURE); > >> +#endif /* WIN32 */ > >> } > >> > > May us replace fork with alternative such as spawn? > > You're certainly welcome to propose a patch along those lines, if > spawning a task is a common Windows counterpart to the Unix notion of > forking off a daemon. But even requiring qemu-nbd to run in the > foreground is already an improvement over what we had previously, so any > change to use spawn will be a separate series, and will not hold up this > Yes, of cause. > one. > > -- > Eric Blake, Principal Software Engineer > Red Hat, Inc. +1-919-301-3226 > Virtualization: qemu.org | libvirt.org > >
diff --git a/meson.build b/meson.build index df5bf728b5..1071871605 100644 --- a/meson.build +++ b/meson.build @@ -1074,12 +1074,9 @@ if have_tools dependencies: [authz, block, crypto, io, qom, qemuutil], install: true) qemu_io = executable('qemu-io', files('qemu-io.c'), dependencies: [block, qemuutil], install: true) - qemu_block_tools += [qemu_img, qemu_io] - if targetos == 'linux' or targetos == 'sunos' or targetos.endswith('bsd') - qemu_nbd = executable('qemu-nbd', files('qemu-nbd.c'), + qemu_nbd = executable('qemu-nbd', files('qemu-nbd.c'), dependencies: [block, qemuutil], install: true) - qemu_block_tools += [qemu_nbd] - endif + qemu_block_tools += [qemu_img, qemu_io, qemu_nbd] subdir('storage-daemon') subdir('contrib/rdmacm-mux') diff --git a/qemu-nbd.c b/qemu-nbd.c index dc6ef089af..33476a1000 100644 --- a/qemu-nbd.c +++ b/qemu-nbd.c @@ -899,6 +899,7 @@ int main(int argc, char **argv) #endif if ((device && !verbose) || fork_process) { +#ifndef WIN32 int stderr_fd[2]; pid_t pid; int ret; @@ -962,6 +963,10 @@ int main(int argc, char **argv) */ exit(errors); } +#else /* WIN32 */ + error_report("Unable to fork into background on Windows hosts"); + exit(EXIT_FAILURE); +#endif /* WIN32 */ } if (device != NULL && sockpath == NULL) {
Disabling these parts are sufficient to get the qemu-nbd program compiling in a Windows build. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- meson.build | 7 ++----- qemu-nbd.c | 5 +++++ 2 files changed, 7 insertions(+), 5 deletions(-)