diff mbox series

osdep.h: Remove <sys/signal.h> include

Message ID 20201027003848.10920-1-mforney@mforney.org
State New
Headers show
Series osdep.h: Remove <sys/signal.h> include | expand

Commit Message

Michael Forney Oct. 27, 2020, 12:38 a.m. UTC
Prior to 2a4b472c3c, sys/signal.h was only included on OpenBSD
(apart from two .c files). The POSIX standard location for this
header is just <signal.h> and in fact, OpenBSD's signal.h includes
sys/signal.h itself.

Unconditionally including <sys/signal.h> on musl causes warnings
for just about every source file:

  /usr/include/sys/signal.h:1:2: warning: #warning redirecting incorrect #include <sys/signal.h> to <signal.h> [-Wcpp]
      1 | #warning redirecting incorrect #include <sys/signal.h> to <signal.h>
        |  ^~~~~~~

Since there don't seem to be any platforms which require including
<sys/signal.h> in addition to <signal.h>, and some platforms like
Haiku lack it completely, just remove it.

Tested building on OpenBSD after removing this include.

Signed-off-by: Michael Forney <mforney@mforney.org>
---
 configure            | 10 ----------
 include/qemu/osdep.h |  4 ----
 2 files changed, 14 deletions(-)

Comments

Eric Blake Oct. 27, 2020, 4:30 p.m. UTC | #1
On 10/26/20 7:38 PM, Michael Forney wrote:
> Prior to 2a4b472c3c, sys/signal.h was only included on OpenBSD

> (apart from two .c files). The POSIX standard location for this

> header is just <signal.h> and in fact, OpenBSD's signal.h includes

> sys/signal.h itself.

> 

> Unconditionally including <sys/signal.h> on musl causes warnings

> for just about every source file:

> 

>   /usr/include/sys/signal.h:1:2: warning: #warning redirecting incorrect #include <sys/signal.h> to <signal.h> [-Wcpp]

>       1 | #warning redirecting incorrect #include <sys/signal.h> to <signal.h>

>         |  ^~~~~~~

> 

> Since there don't seem to be any platforms which require including

> <sys/signal.h> in addition to <signal.h>, and some platforms like

> Haiku lack it completely, just remove it.

> 

> Tested building on OpenBSD after removing this include.

> 

> Signed-off-by: Michael Forney <mforney@mforney.org>

> ---

>  configure            | 10 ----------

>  include/qemu/osdep.h |  4 ----

>  2 files changed, 14 deletions(-)


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


-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org
Thomas Huth Jan. 13, 2021, 11:44 a.m. UTC | #2
On 27/10/2020 01.38, Michael Forney wrote:
> Prior to 2a4b472c3c, sys/signal.h was only included on OpenBSD

> (apart from two .c files). The POSIX standard location for this

> header is just <signal.h> and in fact, OpenBSD's signal.h includes

> sys/signal.h itself.

> 

> Unconditionally including <sys/signal.h> on musl causes warnings

> for just about every source file:

> 

>    /usr/include/sys/signal.h:1:2: warning: #warning redirecting incorrect #include <sys/signal.h> to <signal.h> [-Wcpp]

>        1 | #warning redirecting incorrect #include <sys/signal.h> to <signal.h>

>          |  ^~~~~~~

> 

> Since there don't seem to be any platforms which require including

> <sys/signal.h> in addition to <signal.h>, and some platforms like

> Haiku lack it completely, just remove it.

> 

> Tested building on OpenBSD after removing this include.

> 

> Signed-off-by: Michael Forney <mforney@mforney.org>

> ---

>   configure            | 10 ----------

>   include/qemu/osdep.h |  4 ----

>   2 files changed, 14 deletions(-)

> 

> diff --git a/configure b/configure

> index 55e07c82dd..7b57456052 100755

> --- a/configure

> +++ b/configure

> @@ -3095,13 +3095,6 @@ if check_include "libdrm/drm.h" ; then

>       have_drm_h=yes

>   fi

>   

> -#########################################

> -# sys/signal.h check

> -have_sys_signal_h=no

> -if check_include "sys/signal.h" ; then

> -  have_sys_signal_h=yes

> -fi

> -

>   ##########################################

>   # VTE probe

>   

> @@ -6182,9 +6175,6 @@ fi

>   if test "$have_openpty" = "yes" ; then

>       echo "HAVE_OPENPTY=y" >> $config_host_mak

>   fi

> -if test "$have_sys_signal_h" = "yes" ; then

> -    echo "HAVE_SYS_SIGNAL_H=y" >> $config_host_mak

> -fi

>   

>   # Work around a system header bug with some kernel/XFS header

>   # versions where they both try to define 'struct fsxattr':

> diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h

> index f9ec8c84e9..a434382c58 100644

> --- a/include/qemu/osdep.h

> +++ b/include/qemu/osdep.h

> @@ -104,10 +104,6 @@ extern int daemon(int, int);

>   #include <setjmp.h>

>   #include <signal.h>

>   

> -#ifdef HAVE_SYS_SIGNAL_H

> -#include <sys/signal.h>

> -#endif

> -

>   #ifndef _WIN32

>   #include <sys/wait.h>

>   #else

> 


Seems like this felt through the cracks, sorry. Since there have been some 
changes to the configure scripts, could you please rework your patch and 
post again, setting qemu-trivial@nongnu.org into CC: so that it gets more 
attention?

  Thanks,
   Thomas
Thomas Huth Jan. 14, 2021, 6:26 a.m. UTC | #3
On 13/01/2021 22.56, Michael Forney wrote:
> Prior to 2a4b472c3c, sys/signal.h was only included on OpenBSD

> (apart from two .c files). The POSIX standard location for this

> header is just <signal.h> and in fact, OpenBSD's signal.h includes

> sys/signal.h itself.

> 

> Unconditionally including <sys/signal.h> on musl causes warnings

> for just about every source file:

> 

>    /usr/include/sys/signal.h:1:2: warning: #warning redirecting incorrect #include <sys/signal.h> to <signal.h> [-Wcpp]

>        1 | #warning redirecting incorrect #include <sys/signal.h> to <signal.h>

>          |  ^~~~~~~

> 

> Since there don't seem to be any platforms which require including

> <sys/signal.h> in addition to <signal.h>, and some platforms like

> Haiku lack it completely, just remove it.

> 

> Tested building on OpenBSD after removing this include.

> 

> Signed-off-by: Michael Forney <mforney@mforney.org>

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

> ---

> Changes since v1: rebase on latest master

> 

>   include/qemu/osdep.h | 4 ----

>   meson.build          | 1 -

>   2 files changed, 5 deletions(-)

> 

> diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h

> index f9ec8c84e9..a434382c58 100644

> --- a/include/qemu/osdep.h

> +++ b/include/qemu/osdep.h

> @@ -104,10 +104,6 @@ extern int daemon(int, int);

>   #include <setjmp.h>

>   #include <signal.h>

>   

> -#ifdef HAVE_SYS_SIGNAL_H

> -#include <sys/signal.h>

> -#endif

> -

>   #ifndef _WIN32

>   #include <sys/wait.h>

>   #else

> diff --git a/meson.build b/meson.build

> index 3d889857a0..af2bc89741 100644

> --- a/meson.build

> +++ b/meson.build

> @@ -1113,7 +1113,6 @@ config_host_data.set('HAVE_DRM_H', cc.has_header('libdrm/drm.h'))

>   config_host_data.set('HAVE_PTY_H', cc.has_header('pty.h'))

>   config_host_data.set('HAVE_SYS_IOCCOM_H', cc.has_header('sys/ioccom.h'))

>   config_host_data.set('HAVE_SYS_KCOV_H', cc.has_header('sys/kcov.h'))

> -config_host_data.set('HAVE_SYS_SIGNAL_H', cc.has_header('sys/signal.h'))

>   

>   ignored = ['CONFIG_QEMU_INTERP_PREFIX'] # actually per-target

>   arrays = ['CONFIG_AUDIO_DRIVERS', 'CONFIG_BDRV_RW_WHITELIST', 'CONFIG_BDRV_RO_WHITELIST']

> 


Reviewed-by: Thomas Huth <thuth@redhat.com>
John Snow Jan. 14, 2021, 10:01 p.m. UTC | #4
On 1/13/21 4:56 PM, Michael Forney wrote:
> Prior to 2a4b472c3c, sys/signal.h was only included on OpenBSD

> (apart from two .c files). The POSIX standard location for this

> header is just <signal.h> and in fact, OpenBSD's signal.h includes

> sys/signal.h itself.

> 

> Unconditionally including <sys/signal.h> on musl causes warnings

> for just about every source file:

> 

>    /usr/include/sys/signal.h:1:2: warning: #warning redirecting incorrect #include <sys/signal.h> to <signal.h> [-Wcpp]

>        1 | #warning redirecting incorrect #include <sys/signal.h> to <signal.h>

>          |  ^~~~~~~

> 

> Since there don't seem to be any platforms which require including

> <sys/signal.h> in addition to <signal.h>, and some platforms like

> Haiku lack it completely, just remove it.

> 

> Tested building on OpenBSD after removing this include.

> 

> Signed-off-by: Michael Forney <mforney@mforney.org>

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


I ran into this myself when testing an Alpine linux build with musl.

Seems to certainly cut down on the number of errors seen when building 
in Alpine. There's still a few more, but there's definitely less.

Tested-by: John Snow <jsnow@redhat.com>
diff mbox series

Patch

diff --git a/configure b/configure
index 55e07c82dd..7b57456052 100755
--- a/configure
+++ b/configure
@@ -3095,13 +3095,6 @@  if check_include "libdrm/drm.h" ; then
     have_drm_h=yes
 fi
 
-#########################################
-# sys/signal.h check
-have_sys_signal_h=no
-if check_include "sys/signal.h" ; then
-  have_sys_signal_h=yes
-fi
-
 ##########################################
 # VTE probe
 
@@ -6182,9 +6175,6 @@  fi
 if test "$have_openpty" = "yes" ; then
     echo "HAVE_OPENPTY=y" >> $config_host_mak
 fi
-if test "$have_sys_signal_h" = "yes" ; then
-    echo "HAVE_SYS_SIGNAL_H=y" >> $config_host_mak
-fi
 
 # Work around a system header bug with some kernel/XFS header
 # versions where they both try to define 'struct fsxattr':
diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
index f9ec8c84e9..a434382c58 100644
--- a/include/qemu/osdep.h
+++ b/include/qemu/osdep.h
@@ -104,10 +104,6 @@  extern int daemon(int, int);
 #include <setjmp.h>
 #include <signal.h>
 
-#ifdef HAVE_SYS_SIGNAL_H
-#include <sys/signal.h>
-#endif
-
 #ifndef _WIN32
 #include <sys/wait.h>
 #else