[PATCH] Add configuration to detect toolset has sigaltstack() prototype
Gedare Bloom
gedare at rtems.org
Thu Aug 21 01:43:57 UTC 2014
Sure.
On Wed, Aug 20, 2014 at 7:48 PM, Joel Sherrill
<joel.sherrill at oarcorp.com> wrote:
> With the recent addition of a prototype for sigaltstack() and
> associated data structures to newlib, the declaration in
> rtems_bsdnet_internal.h is no longer needed. But to ease the
> transition, I added an autoconf probe to determine if it
> was needed or not.
>
> After 4.11, I would like to rip this and and <sys/cpuset.h>
> checks out.
>
> ---
> cpukit/configure.ac | 12 ++++++++++++
> cpukit/libnetworking/rtems/rtems_bsdnet_internal.h | 10 ++++++----
> 2 files changed, 18 insertions(+), 4 deletions(-)
>
> diff --git a/cpukit/configure.ac b/cpukit/configure.ac
> index 56815e2..fcf3437 100644
> --- a/cpukit/configure.ac
> +++ b/cpukit/configure.ac
> @@ -116,6 +116,12 @@ RTEMS_CHECK_FUNC([pthread_getattr_np],[
> #include <pthread.h>])
> AC_CHECK_HEADERS([sys/cpuset.h])
>
> +# This was added to newlib in August 2014 to improve conformance.
> +# Disable use of internal definition if it is present.
> +RTEMS_CHECK_FUNC([sigaltstack],[
> + #define _GNU_SOURCE
> + #include <signal.h>])
> +
> # Mandated by POSIX, not declared in some versions of newlib.
> AC_CHECK_DECLS([getrusage],,,[#include sys/resource.h])
>
> @@ -236,6 +242,12 @@ RTEMS_CPUOPT([__RTEMS_HAVE_SYS_CPUSET_H__],
> [1],
> [indicate if <sys/cpuset.h> is present in toolset])
>
> +## Header file differences that need to be known in .h after install
> +RTEMS_CPUOPT([__RTEMS_HAVE_DECL_SIGALTSTACK__],
> + [test x"${ac_cv_have_decl_sigaltstack}" = x"yes"],
> + [1],
> + [indicate if <signal.h> in toolset has sigaltstack()])
> +
> ## This improves both the size and coverage analysis.
> RTEMS_CPUOPT([__RTEMS_DO_NOT_INLINE_THREAD_ENABLE_DISPATCH__],
> [test x"${RTEMS_DO_NOT_INLINE_THREAD_ENABLE_DISPATCH}" = x"1"],
> diff --git a/cpukit/libnetworking/rtems/rtems_bsdnet_internal.h b/cpukit/libnetworking/rtems/rtems_bsdnet_internal.h
> index 05e54b2..567cc8a 100644
> --- a/cpukit/libnetworking/rtems/rtems_bsdnet_internal.h
> +++ b/cpukit/libnetworking/rtems/rtems_bsdnet_internal.h
> @@ -83,11 +83,13 @@ typedef quad_t * qaddr_t;
> typedef void __sighandler_t(int);
> typedef __sighandler_t *sig_t; /* type of pointer to a signal function */
> #define NSIG 32
> -struct sigaltstack {
> - char *ss_sp; /* signal stack base */
> - int ss_size; /* signal stack length */
> - int ss_flags; /* SS_DISABLE and/or SS_ONSTACK */
> +#if (__RTEMS_HAVE_DECL_SIGALTSTACK__ == 0)
> +struct sigaltstack {
> + char *ss_sp; /* signal stack base */
> + int ss_size; /* signal stack length */
> + int ss_flags; /* SS_DISABLE and/or SS_ONSTACK */
> };
> +#endif
>
> #ifdef _KERNEL
> typedef int boolean_t;
> --
> 1.9.3
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
More information about the devel
mailing list