[Rock-dev] Problems with C++ constructors and RTEMS

Anita ana.vazquez.alonso at gmail.com
Fri Sep 16 14:44:34 CEST 2011


Hi, according to

http://www.dfki.de/pipermail/rock-dev/2011-September/000842.html

only half of my mail has been sent. I do not know why, but just in
cases, here it is the whole mail: http://pastebin.com/aPaXWWqu

Hi,

I managed to compile and link all the dependencies libraries together with
RTEMS 4.10.1 and Newlib, producing a final binary of about 32Mb.
I run it with QEMU but a problem in  runtime arose:

The problem happens inside a c++ constructor, called
from __do_global_ctors_aux (which if I understand it correctly,
basically call all the constructors from the table of pointers to
constructor defined in the .ctors section (i386-rtems-objdump -s -j
.ctors message_producer_test | vim -)).

__do_global_ctors_aux is called from RTEMS (_Thread_Handler->INIT_NAME ->
_init).

The constructor is part of omniORB, omni_mutex::omni_mutex (
http://pastebin.com/Pcd50Bni). Inside this constructor, a call
to pthread_mutex_init is produced.



More information about the Rock-dev mailing list