openposix/20-1-buildonly, signal_h_23-1: Fix compiler errors on newer glibc

Message ID 1545304294-31111-1-git-send-email-yangx.jy@cn.fujitsu.com
State New
Headers show
Series
  • openposix/20-1-buildonly, signal_h_23-1: Fix compiler errors on newer glibc
Related show

Commit Message

Xiao Yang Dec. 20, 2018, 11:11 a.m.
Since glibc 2.26, the __USE_XOPEN2K8 macro defined by _POSIX_C_SOURCE = 200809L &&
_XOPEN_SOURCE = 700 resulted in the following compiler errors, because both sigstack
structure and bsd_signal function are only declared if __USE_XOPEN_EXTENDED is
defined and __USE_XOPEN2K8 is not defined:
-------------------------------------------------------------------------------
20-1-buildonly.c:13:8: error: invalid use of undefined type ‘struct sigstack’
  sp = t.ss_sp;
...
signal_h/23-1.c:15:13: error: ‘bsd_signal’ undeclared (first use in this function); did you mean ‘psignal’?
  dummyvar = bsd_signal;
-------------------------------------------------------------------------------

We just use _POSIX_C_SOURCE = 200112L && _XOPEN_SOURCE = 600 to run these tests.

References:
https://sourceware.org/git/?p=glibc.git;a=commit;h=666c0c5efa6db73632a6894bf028fef9f3b60d71
https://sourceware.org/git/?p=glibc.git;a=commit;h=4c3992fc459322a7c712700ba3244fcb125163d7

Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
---
 .../conformance/definitions/signal_h/20-1-buildonly.c              | 7 +++++++
 .../open_posix_testsuite/conformance/definitions/signal_h/23-1.c   | 7 +++++++
 2 files changed, 14 insertions(+)

Comments

Xiao Yang Jan. 16, 2019, 9:04 a.m. | #1
Hi,

Ping.  :-)

I also fix the wrong version of _POSIX_C_SOURCE in bsd_signal(3) manpage, as below:
https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/commit/?id=8eb09b1283be57333e7c6223080e7449479b7677

Best Regards,
Xiao Yang

On 2018/12/20 19:11, Xiao Yang wrote:
> Since glibc 2.26, the __USE_XOPEN2K8 macro defined by _POSIX_C_SOURCE = 200809L&&
> _XOPEN_SOURCE = 700 resulted in the following compiler errors, because both sigstack
> structure and bsd_signal function are only declared if __USE_XOPEN_EXTENDED is
> defined and __USE_XOPEN2K8 is not defined:
> -------------------------------------------------------------------------------
> 20-1-buildonly.c:13:8: error: invalid use of undefined type ‘struct sigstack’
>    sp = t.ss_sp;
> ...
> signal_h/23-1.c:15:13: error: ‘bsd_signal’ undeclared (first use in this function); did you mean ‘psignal’?
>    dummyvar = bsd_signal;
> -------------------------------------------------------------------------------
>
> We just use _POSIX_C_SOURCE = 200112L&&  _XOPEN_SOURCE = 600 to run these tests.
>
> References:
> https://sourceware.org/git/?p=glibc.git;a=commit;h=666c0c5efa6db73632a6894bf028fef9f3b60d71
> https://sourceware.org/git/?p=glibc.git;a=commit;h=4c3992fc459322a7c712700ba3244fcb125163d7
>
> Signed-off-by: Xiao Yang<yangx.jy@cn.fujitsu.com>
> ---
>   .../conformance/definitions/signal_h/20-1-buildonly.c              | 7 +++++++
>   .../open_posix_testsuite/conformance/definitions/signal_h/23-1.c   | 7 +++++++
>   2 files changed, 14 insertions(+)
>
> diff --git a/testcases/open_posix_testsuite/conformance/definitions/signal_h/20-1-buildonly.c b/testcases/open_posix_testsuite/conformance/definitions/signal_h/20-1-buildonly.c
> index 21d8cb4..fdb2fb8 100644
> --- a/testcases/open_posix_testsuite/conformance/definitions/signal_h/20-1-buildonly.c
> +++ b/testcases/open_posix_testsuite/conformance/definitions/signal_h/20-1-buildonly.c
> @@ -2,6 +2,13 @@
>        Test the definition of sigstack.
>      */
>
> +#if _POSIX_C_SOURCE>= 200809L
> +# undef _POSIX_C_SOURCE
> +# undef _XOPEN_SOURCE
> +# define _POSIX_C_SOURCE	200112L
> +# define _XOPEN_SOURCE		600
> +#endif
> +
>   #include<signal.h>
>
>   struct sigstack this_type_should_exist, t;
> diff --git a/testcases/open_posix_testsuite/conformance/definitions/signal_h/23-1.c b/testcases/open_posix_testsuite/conformance/definitions/signal_h/23-1.c
> index 9a4d200..4f22e07 100644
> --- a/testcases/open_posix_testsuite/conformance/definitions/signal_h/23-1.c
> +++ b/testcases/open_posix_testsuite/conformance/definitions/signal_h/23-1.c
> @@ -5,6 +5,13 @@
>        is declared.
>      */
>
> +#if _POSIX_C_SOURCE>= 200809L
> +# undef _POSIX_C_SOURCE
> +# undef _XOPEN_SOURCE
> +# define _POSIX_C_SOURCE	200112L
> +# define _XOPEN_SOURCE		600
> +#endif
> +
>   #include<signal.h>
>
>   typedef void (*(*bsd_signal_test) (int, void (*)(int))) (int);

Patch

diff --git a/testcases/open_posix_testsuite/conformance/definitions/signal_h/20-1-buildonly.c b/testcases/open_posix_testsuite/conformance/definitions/signal_h/20-1-buildonly.c
index 21d8cb4..fdb2fb8 100644
--- a/testcases/open_posix_testsuite/conformance/definitions/signal_h/20-1-buildonly.c
+++ b/testcases/open_posix_testsuite/conformance/definitions/signal_h/20-1-buildonly.c
@@ -2,6 +2,13 @@ 
      Test the definition of sigstack.
    */
 
+#if _POSIX_C_SOURCE >= 200809L
+# undef _POSIX_C_SOURCE
+# undef _XOPEN_SOURCE
+# define _POSIX_C_SOURCE	200112L
+# define _XOPEN_SOURCE		600
+#endif
+
 #include <signal.h>
 
 struct sigstack this_type_should_exist, t;
diff --git a/testcases/open_posix_testsuite/conformance/definitions/signal_h/23-1.c b/testcases/open_posix_testsuite/conformance/definitions/signal_h/23-1.c
index 9a4d200..4f22e07 100644
--- a/testcases/open_posix_testsuite/conformance/definitions/signal_h/23-1.c
+++ b/testcases/open_posix_testsuite/conformance/definitions/signal_h/23-1.c
@@ -5,6 +5,13 @@ 
      is declared.
    */
 
+#if _POSIX_C_SOURCE >= 200809L
+# undef _POSIX_C_SOURCE
+# undef _XOPEN_SOURCE
+# define _POSIX_C_SOURCE	200112L
+# define _XOPEN_SOURCE		600
+#endif
+
 #include <signal.h>
 
 typedef void (*(*bsd_signal_test) (int, void (*)(int))) (int);