Description of problem: The attached testcase produces wrong relocation: RELOCATION RECORDS FOR [.text]: OFFSET TYPE VALUE 0000000e R_386_GOTPC _GLOBAL_OFFSET_TABLE_ 00000014 R_386_GOT32 _ZN16QCoreApplication4selfE 00000033 R_386_GOTPC _GLOBAL_OFFSET_TABLE_ 0000003c R_386_GOTOFF _ZN16QCoreApplication4selfE The last one is incorrect and causes crashes in applications using Qt4 (qt designer, assistant). [15:38:26] < SadEagle> mornfall: a bit more background: the way variables work is that the space for them gets allocated in the binary [15:38:45] < SadEagle> mornfall: and the library gets patched up to use the binary's copy. [15:39:16] < SadEagle> mornfall: with this relocation type, there is nothing to patch up in the library -- it basically just gets relative addressing wrt to the library base in the final .so [15:39:22] < SadEagle> mornfall: so you end up with 2 copies of the symbol The attached testcase has compile flags in it. The above is output of objdump -x on the resulting object file. Version-Release number of selected component (if applicable): gcc (GCC) 3.4.3 20050227 (Red Hat 3.4.3-22.fc3)
Created attachment 114995 [details] testcase
I have tested the PR18925 fix seems to cure this and looks safe for RHEL4 U2.
Created attachment 115004 [details] gcc34-pr18925.patch Backported patch.
Should be fixed in gcc-3.4.4-2{,.fc3}.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2005-677.html