Test Failures on erc32 (sis)

Jiri Gaisler jiri at gaisler.se
Fri Dec 2 10:10:15 UTC 2016



On 01/12/16 17:43, Joel Sherrill wrote:
> Hi
>
> erc32 has a couple of test failures on master:
>
>
> *** BEGIN OF TEST PSXSPIN 1 ***
> pthread_spin_init( &spinlock, PTHREAD_PROCESS_PRIVATE ) -- OK
> pthread_spin_destroy( &spinlock ) -- OK
> pthread_spin_init( &spinlock, PTHREAD_PROCESS_SHARED ) -- OK
> pthread_spin_destroy( &spinlock ) -- OK
> pthread_spin_init( &spinlock, 0x1234 ) -- OK
> pthread_spin_init( &spinlock2, 0 ) -- OK
> pthread_spin_lock( &spinlock ) -- OK
> Unexpected trap ( 9) at address 0x02008758
> data access exception at 0x00000008
>
>
> *** BEGIN OF TEST SPCONTEXT 1 ***
> Test configuration N N N... done
> Test configuration N N F...
> ../../../../../../../rtems/c/src/../../testsuites/sptests/spcontext01/init.c:
> 44 0
>
> I have not had a chance to check other BSPs yet.
>
> Thanks.
>
> --joel
>

Could it be a gcc/binutils problem? Software trap 5 is called to set/get
the interrupt level of a spinlock, but RTEMS's sparc.h does not mention
this trap at all. In old SunOS, software trap 5 (0x85) was 'range
check', whatever that meant ...


 2008750:    81 c3 e0 08     retl
 2008754:    90 10 20 00     clr  %o0
    the_spinlock->interrupt_state = level;
 2008758:    c0 20 20 08     clr  [ 8 ]
 200875c:    91 d0 20 05     ta  5

02008760 <pthread_spin_unlock>:
{
  POSIX_Spinlock_Control *the_spinlock;
  ISR_Level               level;

  the_spinlock = _POSIX_Spinlock_Get( lock );
  level = the_spinlock->interrupt_state;
 2008760:    c2 00 20 08     ld  [ 8 ], %g1
 2008764:    91 d0 20 05     ta  5

Jiri.




More information about the devel mailing list