I am trying to link kernel32 and ntdll libraries to my source code on SPARC Solaris 8.0. My executable does not exit.
It gets stuck after spawning 4 threads. The gdb trace is as below:
 

Starting program: /export/home/mrugan/src/HACore/HaNuanceChannelComRCE/nuancetest.exe
warning: Lowest section in /usr/lib/libintl.so.1 is .hash at 00000074
warning: Lowest section in /usr/lib/libw.so.1 is .hash at 00000074
[New LWP 1]
[New LWP 2]
[New LWP 3]
[New LWP 4]
^C
Program received signal SIGINT, Interrupt.
0xff19b390 in ___lwp_cond_wait () from /usr/lib/libc.so.1
(gdb) where
#0  0xff19b390 in ___lwp_cond_wait () from /usr/lib/libc.so.1
#1  0xff192c08 in _lwp_cond_wait () from /usr/lib/libc.so.1
#2  0xfef8c2f0 in _lrw_wrlock () from /usr/lib/libthread.so.1
#3  0xff3bdacc in ?? ()
#4  0xff3c34f0 in ?? ()
#5  0xff3b29a0 in ?? ()
#6  0xff0863c8 in __DTOR_END__ () from /opt/wine/dlls/libkernel32.so
#7  0xff02e140 in frame_dummy () from /opt/wine/dlls/libkernel32.so
#8  0xff02cf80 in _init () from /opt/wine/dlls/libkernel32.so
#9  0xff3bada0 in ?? ()
#10 0xff3baa18 in ?? ()
#11 0xff3c4da0 in ?? ()
#12 0xff3b2958 in ?? ()
(gdb) inf thr
  8 Thread 3          0xfef8d948 in _reap_wait () from /usr/lib/libthread.so.1
  7 Thread 2 (LWP 2)  0xff19ad50 in _signotifywait () from /usr/lib/libc.so.1
  6 Thread 1 (LWP 1)  0xff19b390 in ___lwp_cond_wait () from /usr/lib/libc.so.1
* 5 LWP    1          0xff19b390 in ___lwp_cond_wait () from /usr/lib/libc.so.1
  4 LWP    4          0xff19b390 in ___lwp_cond_wait () from /usr/lib/libc.so.1
  3 LWP    3          0xff1988f4 in door_restart () from /usr/lib/libc.so.1
  2 LWP    2          0xff19ad50 in _signotifywait () from /usr/lib/libc.so.1
* 1 LWP    1          0xff19b390 in ___lwp_cond_wait () from /usr/lib/libc.so.1
Note that I had to hit cntl-C to come out of thread message.
I guess this is happening because kernel32 tries to use thread library. Is there any way I can make it use pthread or is there any other solution to this?
 
Any help will be greatly appreciated
 
Thanks
Mrugan