------- Comment #8 from bkoz at gcc dot gnu dot org 2006-09-21 20:24 -------
> I applied r116954 to 116942. Well, then it's still my patch or patches then. Sorry. > It's still using linuxthreads. Also because of the limitations > of the ldcw semaphore instruction in PA 1.1, the atomic lock type > is 16 bytes and there is a dynamic alignment calculation to > select the aligned 4-byte object to use for the ldcw lock. As > a result, there are limitations on copying/moving lock objects > that aren't present in other implementations. Ah. This is interesting, thanks. One thing you could try, to confirm that this is what's up, is to replace the hppa atomics config with the generic pthreads layer. Probably the best way to do this is to: %mv config/cpu/hppa config/cpu/hppa.dis blow away the build directory, and then rebuild. During the rebuild, you should see this on the configure line: ... configure: CPU config directory is cpu/generic ... checking for thread model used by GCC... posix checking for atomic builtins... no ... To confirm, if you go into the freshly built libstdc++/src directory and ls -al atomicity.cc You should see it pointing to config/cpu/generic/atomicity_mutex/atomicity.h instead of the current config/cpu/hppa/atomicity.h If you try this and run "make check-target-libstdc++-v3" and the testresults are fine, then I can try to put in a hack for you that will bypass the current (presumably flawed) hppa atomics config. Or, we can try to fix it to deal with the limitations that are not present on the other linux cpu's. best, -benjamin -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29118