Thanks for your efforts, Chris. I wound up just biting the bullet and building a gcc-2.95.2 cross-compiler on my Linux box and cross-compiling hurd with that myself last night. I'm now able to reproduce the problem you are seeing.
I am still at a loss for exactly what is going on, but I only spent a little while digging into it. It might be a while before I can spend a lot of time looking into this, so if anyone else feels like some hardcore debugging and wants to take a crack at it, please do. Anyone who looks into this, please post early and often with whatever clues you are developing (let's cut down the CC's and just use bug-hurd for this). There is one more thing I can think of in the way of tests to eliminate possibilities, that someone could do without a lot of intimate hurd debugging know-how. That is, try all permutations of using old shared libraries with the new proc, varying old vs new libraries one by one (I mean the same exact hurd sources where "new" is compiled with gcc-2.95.2 and "old" is compiled with another compiler and the "old" set all works together fine in your setup). I'm not yet sure whether the problem is in proc (in which case old libraries and new proc still loses), in one of the libraries it uses (in which case new libraries and old proc still loses), or in a weird interaction between the two (in which case new proc wins or loses depending on the new/old choice for each library).

