diff mbox series

[v2,3/3] nbd: disable signals and forking on Windows builds

Message ID 20200825103850.119911-4-berrange@redhat.com
State New
Headers show
Series nbd: build qemu-nbd on Windows | expand

Commit Message

Daniel P. Berrangé Aug. 25, 2020, 10:38 a.m. UTC
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(-)

Comments

Eric Blake Sept. 2, 2020, 9:27 p.m. UTC | #1
On 8/25/20 5:38 AM, Daniel P. Berrangé 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(-)

Reviewed-by: Eric Blake <eblake@redhat.com>

Queuing through my NBD tree.
Yonggang Luo Sept. 2, 2020, 10:07 p.m. UTC | #2
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(-)
>
> 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 */
>      }
>
May us replace fork with alternative such as spawn?

>
>      if (device != NULL && sockpath == NULL) {
> --
> 2.26.2
>
>
>
Eric Blake Sept. 2, 2020, 11:29 p.m. UTC | #3
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 
one.
Yonggang Luo Sept. 3, 2020, 7:06 a.m. UTC | #4
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 mbox series

Patch

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) {