Vladimir, your dvv build does a lot with C++, any interest in trying to reproduce it on a base system that has this patch installed?
On Wednesday 03 December 2008 21:19:59 Michael Deutschmann wrote: > Last March, I made a suggestion to this list: That the many functions > which are cancellation points, but would otherwise never throw C++ > exceptions, be marked with a "__THROW_CP" macro. This would be a no-op on > threaded builds of uClibc, but would be equivalent to __THROW for a > threadless build. > > This would produce a tiny optimization boost for threadless builds, and > more importantly, would make the include files much clearer. No longer > will every tenth line be part of a comment explaining why __THROW is not > applied to a given function. For C++ threadless builds, or for threadless builds in general? I can test a threadless C build, and vladimir can test a threaded C++ build. I don't know anybody who uses a C++ without thread support enabled, it seems kind of like one of those "hot fudge sundae with a diet coke" type combinations... > There was no response, probably because while the idea is simple, it > requires a lot of typing to implement. Well, I'm back, having done the > work. > > I now have a patch available at: > > ftp://ftp.ocis.net/pub/users/ldeutsch/beta/uClibc-0.9.30-throwcp.diff > > The patch adds "__THROW_CP", and applies it to every function previously > having a "such-and-such is a cancellation point and so not marked with > __THROW" comment. Additionally, fputw(), fgetw(), and BSD sigpause() have > been marked __THROW_CP. sigpause() was formerly __THROW, which looked > wrong to me. > > I'm "dogfooding" the patch, but that doesn't really count for much since > I don't use C++. I'd be interested to see any heavy-duty exception users > try it out, both to see if it helps the unthreaded case, and verify it > does not break the multithreaded case. What environments _are_ interesting to test? Rob _______________________________________________ uClibc mailing list [email protected] http://busybox.net/cgi-bin/mailman/listinfo/uclibc
