Waschk,Kolja wrote: > Hi, > >> reference, and the program is bogus in the way it handles >> pthread_cond_wait errors, as I already explained, > > You're certainly right with that. It's just that I have to deal with foreign > code that contains exactly such tight loops with pthread_cond_wait as its > only brake, and this code I'd like to use unmodified, as far as possible. Now > the test code try.c started as a clone of the original, so it has the same > obvious shortcomings. > >> missing a call to mlockall without which it can not possibly run under >> Xenomai. > > Oh, you're right (but it's present in the original code)
Ok. mlockall may not be needed on uclinux after all. > >> program, since you should be using #include <pthread.h>, instead of >> #include <posix/pthread.h>, and more importantly, this program is > > Yes. That's an artefact of another problem which seems more toolchain-related > in my case. Already noted in our issue tracking system. However, I tried to > verify that everything is wrapped and linked as supposed; As reminder, the correct way to compile a xenomai posix skin program is described here: http://www.xenomai.org/index.php/Porting_POSIX_applications_to_Xenomai#Compilation_flags. > >> So, to settle the matters, could you post here the result of >> "bfin-linux-uclibc-nm -s try". >> ? > > The result is > > 00002158 A ___bss_start > 00002158 b _completed.4861 > 000021ac B _cond > 00001f78 d ___CTOR_END__ > 00001f74 d ___CTOR_LIST__ > w ___deregister_frame_info@@GCC_3.0 > 00000e5c t ___do_global_ctors_aux > 00000a58 t ___do_global_dtors_aux > 00002068 D ___dso_handle > 00000ea0 R _dt > 00001f80 d ___DTOR_END__ > 0000215c b _dtor_idx.4863 > 00001f7c d ___DTOR_LIST__ > 00001f88 d _DYNAMIC > 00002158 A __edata > 00000f70 r ___EH_FRAME_BEGIN__ > 000021b8 A __end > 00002184 B _errbits > U ___errno_location > 00000e8c T __fini > 00000ac4 t _frame_dummy > 00000f70 r ___FRAME_END__ > 000020e0 d __GLOBAL_OFFSET_TABLE_ > 00000780 T __init > 00001f84 d ___JCR_END__ > 00001f84 d ___JCR_LIST__ > w __Jv_RegisterClasses > 00002178 B _loopcount > 00000c7c T _main > 00002190 B _mutex > 00002160 b _object.4883 > U _printf > 00000b0c W _pthread_atfork > U _pthread_attr_init > U _pthread_join > w ___register_frame_info@@GCC_3.0 > 00000f70 R __ROFIXUP_END__ > 00000f1c R __ROFIXUP_LIST__ > 000021a8 B _run > 000008ec t ___self_reloc > 00000b20 W _shm_open > 00000b3c W _shm_unlink > U _sleep > 00020000 A __stacksize > 00000888 T __start > 00000b54 T _test_thread > U ___uClibc_main > U ___wrap_pthread_cond_broadcast > U ___wrap_pthread_cond_init > U ___wrap_pthread_cond_wait > U ___wrap_pthread_create > U ___wrap_pthread_mutex_init > U ___wrap_pthread_mutex_lock > U ___wrap_pthread_mutex_unlock > U ___wrap_pthread_yield > > you sure this is the "try" program for which you sent the sources? I do not understand the references to shm_open, shm_unlink, for instance. -- Gilles. _______________________________________________ Xenomai-help mailing list [email protected] https://mail.gna.org/listinfo/xenomai-help
