------- Comment #13 from ramana at gcc dot gnu dot org 2009-10-27 14:58 ------- (In reply to comment #0) > when binutils 2.20 branch is built with gcc-4.4 branch or trunk, I see the > following test failures in the ld testsuite. Checked with gcc-4.4 from > debian/testing, debian/unstable and ubuntu/karmic, and gcc-snapshot (4.5 > 20091010) from debian/unstable. > > Running > /home/doko/tmp/binutils-2.19.91.20091006/ld/testsuite/ld-elfvsb/elfvsb.exp ... > FAIL: visibility (hidden_normal) (non PIC) > FAIL: visibility (hidden_normal) (non PIC, load offset) > FAIL: visibility (normal) (non PIC) > FAIL: visibility (normal) (non PIC, load offset) > Running > /home/doko/tmp/binutils-2.19.91.20091006/ld/testsuite/ld-shared/shared.exp ... > FAIL: shared (non PIC) > FAIL: shared (non PIC, load offset) > FAIL: shared (PIC main, non PIC so)
When generating code that is not position independent, the compiler is entitled to enable optimizations that don't retain the property of symbol pre-emption that is possible with shared libraries and position independent code. Section anchors is one optimization that doesn't retain symbol pre-emptibility in shared libraries and hence is disabled when generating PIC code. All these failures are because the tests are trying to create non-PIC .so's with section anchors turned on. The tests need to be fixed with respect to section anchors by building them with -fno-section-anchors for the arm-linux-gnueabi port. The Objective C testsuite failures should be fixed by disabling section anchors in the objective C and C++ frontend and not by disabling this in the backend. Look at the mail thread here for reference. http://gcc.gnu.org/ml/gcc-patches/2008-08/msg02194.html However that is a subject of a separate bug report, though these failures might be related to PR41617. Hence this is an INVALID bug as far as GCC is concerned and hence marking it so. cheers Ramana -- ramana at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution| |INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41684