When compiling with gcc 3 (I used 3.3.4-r1), this warning appears at many points: "warning: use of cast expression as L-value is deprecated". However, it is not fatal, and compilation completes successfully. When compiling with gcc 4 (I used 4.0.2-r2), the same warnings are now errors. I realize that gcc 4 is unsupported by the Gentoo team, but I'm posting this bug to speed up the inevitable transition. (I've had good luck with 4.0.2-r2.) Because PCSX is now unmaintained, I'm not expecting the code to be updated anytime soon. I'm not much of a coder, otherwise I would probably fix the code myself. In lieu of that, I propose some possible fixes. 1. The best fix would be a patch that is applied between unpacking and compilation that would update the code for gcc 4 compatibility. 2. A faster fix would be for emerge to detect the active compiler, and if gcc 4.x.x is being used, to activate a 3.4.x profile for the duration of the emerge (3.4.x is suggested for binary compatiblity so that libstdc++-v3 wouldn't be needed at runtime). 3. Alternatively, emerge could abort compilation if gcc 4.x.x is being used, and spit out a warning message prompting the user to switch to a lower version for compilation. Thanks for your time.
suggestion 2 is right out; modifying the running system during a build like that is not allowed. I mention this in case anyone reading this thinks it's a good idea.
Created attachment 76188 [details, diff] gcc-4 patch Well, here's a patch to make it compile, but I seem to be running into a wrong code bug now. Games team: you can apply the patch if you please, since it doesn't harm 3.3, but I don't think anyone is going to have luck with gcc-4. If someone else running gcc-4 could verify this for me, that would be great. I kept getting a hang everytime I tried to play Wipeout.
4.1 is affected as well.
Is this still a problem? I see that a 4.1 patch has been applied in the tree, which leads me to believe its no longer a problem. Reopen if so.