[PATCH] [RTEMS] Update RTEMS thread model

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Sep 1 10:10:35 UTC 2015



On 31/07/15 09:23, Sebastian Huber wrote:
>
>
> On 31/07/15 09:10, Chris Johns wrote:
>> On 31/07/2015 4:44 pm, Sebastian Huber wrote:
>>> >
>>>> >>Is this for 4.12 ?
>>> >
>>> >This is just a proof-of-concept patch, but it would be nice to include
>>> >this in the next release along with the C11 threads support.
>>> >
>> If you have tests and they are ok then why not put it in.
>>
>
> It is thoroughly tested in the libstdc++ test suite, unfortunately we 
> have do adjust all test cases since they contain stuff like this:
>
> // { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* 
> *-*-linux* *-*-gnu* *-*-solaris* *-*-cygwin *-*-darwin* 
> powerpc-ibm-aix* } }
> // { dg-options " -std=gnu++11 -pthread" { target *-*-freebsd* 
> *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-gnu* powerpc-ibm-aix* } }
> // { dg-options " -std=gnu++11 -pthreads" { target *-*-solaris* } }
> // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-darwin* } }
> // { dg-require-cstdint "" }
> // { dg-require-gthreads "" }
>
> So, there is a target white list.
>

See also:

https://gcc.gnu.org/ml/gcc-patches/2015-09/msg00019.html

https://devel.rtems.org/ticket/2402
https://devel.rtems.org/ticket/2403

The test results are not that bad. Some tests use files, which are not 
available to the RTEMS test driver. The main issues are due to thread 
cancel/exit misbehaviour of RTEMS. Shared mutexes are not implemented in 
general.

Target is arm-unknown-rtems4.11
Host   is arm-unknown-rtems4.11
Build  is x86_64-pc-linux-gnu

                 === libstdc++ tests ===

Schedule of variations:
     rtems-arm-realview_pbx_a9_qemu

Running target rtems-arm-realview_pbx_a9_qemu
Using 
/scratch/git-rtems-testing/dejagnu/boards/rtems-arm-realview_pbx_a9_qemu.exp 
as board description file for target.
Using /usr/share/dejagnu/config/sim.exp as generic interface file for 
target.
Using /usr/share/dejagnu/baseboards/basic-sim.exp as board description 
file for target.
Using 
/home/EB/sebastian_h/archive/gcc-git/libstdc++-v3/testsuite/config/default.exp 
as tool-and-target-specific interface file.
Running 
/home/EB/sebastian_h/archive/gcc-git/libstdc++-v3/testsuite/libstdc++-abi/abi.exp 
...
Running 
/home/EB/sebastian_h/archive/gcc-git/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp 
...
FAIL: 25_algorithms/copy/streambuf_iterators/wchar_t/4.cc execution test
FAIL: 25_algorithms/find/istreambuf_iterators/wchar_t/2.cc execution test
FAIL: 25_algorithms/random_shuffle/moveable.cc execution test
FAIL: 27_io/basic_istream/extractors_other/wchar_t/2.cc execution test
FAIL: 27_io/basic_istream/get/wchar_t/2.cc execution test
FAIL: 27_io/basic_istream/ignore/wchar_t/3.cc execution test
FAIL: 27_io/basic_istream/seekg/wchar_t/sstream.cc execution test
FAIL: 27_io/basic_istream/tellg/wchar_t/sstream.cc execution test
FAIL: 27_io/basic_ostream/inserters_other/wchar_t/1.cc execution test
FAIL: 27_io/basic_stringbuf/setbuf/char/4.cc execution test
FAIL: 27_io/objects/wchar_t/12048-1.cc execution test
FAIL: 27_io/objects/wchar_t/12048-2.cc execution test
FAIL: 27_io/objects/wchar_t/12048-3.cc execution test
FAIL: 27_io/objects/wchar_t/12048-4.cc execution test
WARNING: program timed out.
FAIL: 30_threads/condition_variable/members/3.cc execution test
FAIL: 30_threads/shared_mutex/cons/1.cc (test for excess errors)
WARNING: 30_threads/shared_mutex/cons/1.cc compilation failed to produce 
executable
FAIL: 30_threads/shared_mutex/try_lock/1.cc (test for excess errors)
WARNING: 30_threads/shared_mutex/try_lock/1.cc compilation failed to 
produce executable
FAIL: 30_threads/shared_mutex/try_lock/2.cc (test for excess errors)
WARNING: 30_threads/shared_mutex/try_lock/2.cc compilation failed to 
produce executable
FAIL: 30_threads/shared_timed_mutex/try_lock/3.cc execution test
WARNING: program timed out.
FAIL: 30_threads/thread/native_handle/cancel.cc execution test
FAIL: 30_threads/timed_mutex/try_lock_until/57641.cc execution test
FAIL: tr1/8_c_compatibility/complex/50880.cc (test for excess errors)
WARNING: tr1/8_c_compatibility/complex/50880.cc compilation failed to 
produce executable
FAIL: tr1/8_c_compatibility/complex/functions.cc (test for excess errors)
Running 
/home/EB/sebastian_h/archive/gcc-git/libstdc++-v3/testsuite/libstdc++-prettyprinters/prettyprinters.exp 
...
Running 
/home/EB/sebastian_h/archive/gcc-git/libstdc++-v3/testsuite/libstdc++-xmethods/xmethods.exp 
...

                 === libstdc++ Summary ===

# of expected passes            8807
# of unexpected failures        23
# of expected failures          65
# of unsupported tests          843

-- 
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  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

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



More information about the devel mailing list