Description of problem: While (second) rebuilding on postgresql error appears at the test stage: some network-mask related functions returns bad results. Previous rebuild with same rpm was fine (local build 31 mar 2006). Version-Release number of selected component (if applicable): postgresql-8.1.3-2 gcc-4.1.0-7 glibc-2.4-5 How reproducible: now always Steps to Reproduce: 1. rpmbuild -bi --target i586 postgresql.spec Actual results: build failed on test stage. Expected results: Build without errors. Additional info:
Created attachment 127989 [details] regression diff file
This looks to me like it could be a compiler bug, seeing that the same source code passes this test fine on many other platforms. Did you update gcc since your last successful build? Does the failure go away if you change the --target spec? The code in question is network_network() in src/backend/utils/adt/network.c if you want to take a closer look. I'm betting that gcc is misoptimizing the shift-and-mask operations.
Yes, gcc was updated every time as it was updated in ``development'' Fedora branch. Tested arch: i566, i686. I will try to rewrite some code to find misoptimization. And will update gcc once again.
It's really a gcc bug. The miscompilated code in src/backend/utils/adt/network.c: network_network: byte = 0; while (bits) { ... } If bits == 25, the loop running 3 times, not 4, If loop header rewrited as while(bits>0) all tests passed. gcc-4.1.0-9
Reclassifying as gcc bug.
Tracking thsi upstream.