[Bug libstdc++/62023] [4.10 regression] 30_threads/condition_variable_any/50862.cc FAILs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62023 Rainer Orth changed: What|Removed |Added Target Milestone|--- |4.10.0
[Bug libstdc++/62023] [4.10 regression] 30_threads/condition_variable_any/50862.cc FAILs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62023 --- Comment #1 from Jonathan Wakely --- That exception comes from here in src/c++11/thread.cc void thread::_M_start_thread(__shared_base_type __b) { if (!__gthread_active_p()) #if __EXCEPTIONS throw system_error(make_error_code(errc::operation_not_permitted), "Enable multithreading to use std::thread"); Which means the __gthread_active_p() function in libgcc/gthr-posix.h is returning false (I think the "Not owner" part is a red herring, due to the errc::operation_not_permitted enum having the wrong value on Solaris)
[Bug libstdc++/62023] [4.10 regression] 30_threads/condition_variable_any/50862.cc FAILs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62023 Rainer Orth changed: What|Removed |Added CC||jason at gcc dot gnu.org --- Comment #2 from Rainer Orth --- A reghunt revealed that this was caused by this patch: 2014-07-30 Jason Merrill PR lto/53808 PR c++/61659 * pt.c (push_template_decl_real): Set DECL_COMDAT on templates. (check_explicit_specialization): Clear it on specializations. * decl.c (duplicate_decls, start_decl): Likewise. (grokmethod, grokfndecl): Set DECL_COMDAT on inlines. * method.c (implicitly_declare_fn): Set DECL_COMDAT. Determine linkage after setting the appropriate flags. * tree.c (decl_linkage): Don't check DECL_COMDAT. * decl2.c (mark_needed): Mark clones. (import_export_decl): Not here. I've not yet checked what exactly is going wrong here. Rainer
[Bug libstdc++/62023] [4.10 regression] 30_threads/condition_variable_any/50862.cc FAILs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62023 --- Comment #3 from Jason Merrill --- (In reply to Jonathan Wakely from comment #1) > Which means the __gthread_active_p() function in libgcc/gthr-posix.h is > returning false Looks like there's a Solaris-specific version of __gthread_active_p, but I can't think why marking it as DECL_COMDAT would break things. Let me know what you find.