A difficult question about locale_mutex uninitialized

Benjamin Kosnik bkoz@redhat.com
Thu Sep 7 09:36:00 GMT 2006

> SEH: System call: ose_mutex_lock
> SEH: Error: A pointer to an uninitialized mutex (at 0x00b27988) was presented to
>  the kernSEH: Information about current process "core_supervisor"
> SEH: Pid 0x0001000b bid 0x00010008 progpid 0x00000000
> SEH: Callstack backtrace:
> SEH: FrameAddress ReturnAddress FrameSize
> SEH:  0x0aa54390           -         -
> SEH: Analyzing pool of faulty process
> After looked up our system.map file, we found that it always refer the following pointer:
>  .bss        0x00b27988       0x20 /vobs/rtosdev/OSE/gcc_solaris2_powerpc_3.4.2/powerpc-eabi/lib/nof/libstdc++.a(locale_init.o)
>              0x00b27988          __gnu_internal::locale_mutex

Are you compiling with threads enabled? On many platforms, a special
flag (-pthread) is required to use threads. 

> I want to know how to find the bug? 
> It is the problem of the libstdc++ or our application ? 
> How to rightly initialize the locale_mutex ? 
> Why it isn't initialized in  libstdc++.a under OSE ?

If you pre-process the libstdc++ file locale_init.cc, you should see
what is going on. At least, this will tell you what libstdc++ thinks it
should use for locks.


More information about the Gcc-help mailing list