[PATCH] Add configuration to detect toolset has sigaltstack() prototype
Joel Sherrill
joel.sherrill at oarcorp.com
Thu Aug 21 13:44:08 UTC 2014
Pushed. Hopefully this keeps anyone from seeing an issue with the
change to <signal.h>.
Thanks.
--joel
On 8/20/2014 8:43 PM, Gedare Bloom wrote:
> 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
--
Joel Sherrill, Ph.D. Director of Research & Development
joel.sherrill at OARcorp.com On-Line Applications Research
Ask me about RTEMS: a free RTOS Huntsville AL 35805
Support Available (256) 722-9985
More information about the devel
mailing list