This is the mail archive of the mailing list for the libstdc++ project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

sizeof() segfault and mutex initialization?


During the rewrite of our allocator into a patch for stl_alloc.h we have encountered two problems.

1) Compiler segfaults with

snon:~/projects/alloc/source# /root/projects/alloc/local/bin/g++ -static -pthread
In file included from /root/projects/alloc/local/include/c++/3.4/vector:68,
/root/projects/alloc/local/include/c++/3.4/bits/stl_alloc.h: In static member
function `static void std::__mt_alloc<__inst>::_S_init()':
/root/projects/alloc/local/include/c++/3.4/bits/stl_alloc.h:287: internal compiler error: Segmentation
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:> for instructions.

when doing a sizeof inside a template method:

_S_thread_freelist_mutex = (__gthread_mutex_t*)malloc (sizeof (__gthread_mutex_t));

It's possible to do sizeof on structs defined inside the template class, but not on for instance int or - what we really want to do - __gthread_mutex_t. This seems to be the PR7112. Any work arounds?

2) gthr does not implement a __gthread_mutex_init () function, only a static initializer. However we need to create 1-n mutexes - one per bin - during initialization code. How can this be done? Is it possible/ok to call __gthread_objc_mutex_allocate?



Experience is what you get when you were expecting something else.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]