Why is ncurses built --without-pthread --without-reentrant without even a USE flag to make a thread-safe version possible? This is causing a ton of race conditions reported by Helgrind :(
there's a comment in the ebuild already explains why: the ABI breaks. threading/etc... requires the ABI to be bumped from 5 to 6. we're waiting for the ABI to generally be bumped and then we'll enable these extra features at that time. a USE flag isn't really appropriate here.
(In reply to SpanKY from comment #1) > there's a comment in the ebuild already explains why: the ABI breaks. > threading/etc... requires the ABI to be bumped from 5 to 6. Ah, I misinterpreted the comment to refer only to the chtype/mmask-t settings since those were singled out. > we're waiting for the ABI to generally be bumped and then we'll enable > these extra features at that time. In the meantime, users of multithreads curses applications are hitting race conditions which screw up my terminal because of this :( > a USE flag isn't really appropriate here. Why not? Seems the perfect scenario for the threads USE flag. Other software packages also break ABI compatibility when built with/without threads support, so there is nothing special here (unless I missed something).
(In reply to Luke-Jr from comment #2) sorry, but that's not a compelling reason. we're talking about the SONAME changing here, not adding/removing a handful of functions.
(In reply to SpanKY from comment #3) > (In reply to Luke-Jr from comment #2) > > sorry, but that's not a compelling reason. we're talking about the SONAME > changing here, not adding/removing a handful of functions. Even better, it means both threadsafe and non-threadsafe versions can be installed at the same time. Will you accept a patch to cleanly do this?
(In reply to Luke-Jr from comment #4) go through the headers with all those flags enabled and see if there's an API difference. i'd give this serious consideration.
Created attachment 377322 [details, diff] ebuild patch to add threads support (In reply to SpanKY from comment #5) > (In reply to Luke-Jr from comment #4) > > go through the headers with all those flags enabled and see if there's an > API difference. i'd give this serious consideration. There *are* differences, but since the SONAME is different, it shouldn't affect anything that doesn't explicitly support those differences and build against them. I wasn't sure what the best way to do the global is, but please take a look at the attached draft ebuild patch. With USE='unicode threads', this results in 4 library sets being built, each with their own headers, pkgconfig, etc.
Comment on attachment 377322 [details, diff] ebuild patch to add threads support sorry, but no, we're not adding this to the ncurses-5 package. that's too much of a headache to manage and not worth the effort.
(In reply to Luke-Jr from comment #6) seems the use of SONAME was overloaded. i was talking about .so.[56] but you were talking about libncurses{,w,t,tw}.so.5. since upstream supports this naming convention, i'll merge it into ncurses-6.0.
USE=threads now exists in ncurses-6.0 and installs the t variants alongside http://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f812f0eafe80c5dc524b300f41c7d32b35e8f6f1
Thanks