forked from Imagelibrary/rtems
Bug report and fix from Jay Kulpinski <jskulpin@eng01.gdds.com> where
sigemptyset(&old_mask) needed to be added on glibc2 systems. Ian Lance Taylor pointed out that sigemptyset() is portable so Joel removed all conditionals around calls to sigemptyset().
This commit is contained in:
@@ -47,7 +47,7 @@ void _CPU_Signal_initialize(void);
|
|||||||
void _CPU_Stray_signal(int);
|
void _CPU_Stray_signal(int);
|
||||||
void _CPU_ISR_Handler(int);
|
void _CPU_ISR_Handler(int);
|
||||||
|
|
||||||
static sigset_t _CPU_Signal_mask;
|
static sigset_t _CPU_Signal_mask;
|
||||||
static Context_Control_overlay
|
static Context_Control_overlay
|
||||||
_CPU_Context_Default_with_ISRs_enabled CPU_STRUCTURE_ALIGNMENT;
|
_CPU_Context_Default_with_ISRs_enabled CPU_STRUCTURE_ALIGNMENT;
|
||||||
static Context_Control_overlay
|
static Context_Control_overlay
|
||||||
@@ -248,9 +248,7 @@ unsigned32 _CPU_ISR_Get_level( void )
|
|||||||
{
|
{
|
||||||
sigset_t old_mask;
|
sigset_t old_mask;
|
||||||
|
|
||||||
#if defined(__linux__)
|
|
||||||
sigemptyset( &old_mask );
|
sigemptyset( &old_mask );
|
||||||
#endif
|
|
||||||
sigprocmask(SIG_BLOCK, 0, &old_mask);
|
sigprocmask(SIG_BLOCK, 0, &old_mask);
|
||||||
|
|
||||||
if (memcmp((void *)&posix_empty_mask, (void *)&old_mask, sizeof(sigset_t)))
|
if (memcmp((void *)&posix_empty_mask, (void *)&old_mask, sizeof(sigset_t)))
|
||||||
@@ -657,6 +655,7 @@ unsigned32 _CPU_ISR_Disable_support(void)
|
|||||||
int status;
|
int status;
|
||||||
sigset_t old_mask;
|
sigset_t old_mask;
|
||||||
|
|
||||||
|
sigemptyset( &old_mask );
|
||||||
status = sigprocmask(SIG_BLOCK, &_CPU_Signal_mask, &old_mask);
|
status = sigprocmask(SIG_BLOCK, &_CPU_Signal_mask, &old_mask);
|
||||||
if ( status )
|
if ( status )
|
||||||
_Internal_error_Occurred(
|
_Internal_error_Occurred(
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ void _CPU_Signal_initialize(void);
|
|||||||
void _CPU_Stray_signal(int);
|
void _CPU_Stray_signal(int);
|
||||||
void _CPU_ISR_Handler(int);
|
void _CPU_ISR_Handler(int);
|
||||||
|
|
||||||
static sigset_t _CPU_Signal_mask;
|
static sigset_t _CPU_Signal_mask;
|
||||||
static Context_Control_overlay
|
static Context_Control_overlay
|
||||||
_CPU_Context_Default_with_ISRs_enabled CPU_STRUCTURE_ALIGNMENT;
|
_CPU_Context_Default_with_ISRs_enabled CPU_STRUCTURE_ALIGNMENT;
|
||||||
static Context_Control_overlay
|
static Context_Control_overlay
|
||||||
@@ -248,9 +248,7 @@ unsigned32 _CPU_ISR_Get_level( void )
|
|||||||
{
|
{
|
||||||
sigset_t old_mask;
|
sigset_t old_mask;
|
||||||
|
|
||||||
#if defined(__linux__)
|
|
||||||
sigemptyset( &old_mask );
|
sigemptyset( &old_mask );
|
||||||
#endif
|
|
||||||
sigprocmask(SIG_BLOCK, 0, &old_mask);
|
sigprocmask(SIG_BLOCK, 0, &old_mask);
|
||||||
|
|
||||||
if (memcmp((void *)&posix_empty_mask, (void *)&old_mask, sizeof(sigset_t)))
|
if (memcmp((void *)&posix_empty_mask, (void *)&old_mask, sizeof(sigset_t)))
|
||||||
@@ -657,6 +655,7 @@ unsigned32 _CPU_ISR_Disable_support(void)
|
|||||||
int status;
|
int status;
|
||||||
sigset_t old_mask;
|
sigset_t old_mask;
|
||||||
|
|
||||||
|
sigemptyset( &old_mask );
|
||||||
status = sigprocmask(SIG_BLOCK, &_CPU_Signal_mask, &old_mask);
|
status = sigprocmask(SIG_BLOCK, &_CPU_Signal_mask, &old_mask);
|
||||||
if ( status )
|
if ( status )
|
||||||
_Internal_error_Occurred(
|
_Internal_error_Occurred(
|
||||||
|
|||||||
Reference in New Issue
Block a user