On 02/12/16 11:10, Jiri Gaisler wrote:

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 ...

No, this was a NULL pointer access:

https://git.rtems.org/rtems/commit/?id=aadd318cd92e42839cf86260e1085f2953113180

GCC generates a trap 5 instruction in case it detects certain kinds of undefined behaviour, e.g.

void f(void)
{
  int *i = 0;
  *i = 0;
}

sparc-rtems4.12-gcc -S -O2 -o - test.c
        .file   "test.c"
        .section        ".text"
        .align 4
        .global f
        .type   f, #function
        .proc   020
f:
        st      %g0, [%g0+0]
        ta      5
        .size   f, .-f
        .ident  "GCC: (GNU) 6.1.1 20160526"

--
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : [email protected]
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

_______________________________________________
devel mailing list
[email protected]
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to