I'm not linking to glibc. gthread is a thin wrapper over pthread used by gcc (i.e https://gcc.gnu.org/onlinedocs/libstdc++/manual/ext_concurrency_impl.html). It seems my problem is related to this: http://www.riscos.info/pipermail/gcc/2008-July/004525.html I have compiled g++ toolchain using musl-1.1.5 Is this a bug in musl or do i need to turn off the _GTHREAD in the libstdc++ library? ------------------------------------------------------------------ Hi, Am Dienstag, den 14.10.2014, 17:07 +1100 schrieb Michael: > I have compiled my app using musl entirely statically however when it > is run on initialization it crashes with the attached stacktrace under > x86_64. Is this because the local stuff in musl is not fully > finished? > > > Program received signal SIGSEGV, Segmentation fault. > 0x0000000000000000 in ?? () > (gdb) bt > #0 0x0000000000000000 in ?? () > #1 0x00000000006ccecf in __gthread_once () > #2 0x00000000006cd285 in std::locale::_S_initialize() () > #3 0x00000000006cd012 in std::locale::locale() () > #4 0x0000000000683614 in std::basic_streambuf std::char_traits >::basic_streambuf() () > #5 0x00000000006ae590 in __gnu_cxx::stdio_sync_filebuf std::char_traits >::stdio_sync_filebuf(_IO_FILE*) () > #6 0x0000000000684beb in std::ios_base::Init::Init() () > #7 0x00000000004021ee in > _GLOBAL__sub_I__ZN9wxPrivate18GetUntypedNullDataEv () > #8 0x00000000006f5056 in __do_global_ctors_aux () > #9 0x000000000040012b in _init () > #10 0x0000000000000000 in ?? () This looks as if you are using the native C++ lib, and this is using internal stuff from glibc under the hood. In particular, here it seems to be using glibc's implementation of pthread_once to initialize things. Not surprising that this doesn't work. Jens