https://sourceware.org/bugzilla/show_bug.cgi?id=19623
--- Comment #4 from winter-...@bfw-online.de --- Reading further in the source code (and guessing a lot) maybe the we have a section named A with VMA = 0 which means it requires no immediate relocation. Later on when the linker adds new object files, it adds sections and suddenly the section A gets a VMA != 0 for some reason. Then the symbols in section A would need to be relocated. In the old code (or new code with the "fix") the linker will see that section A has VMA = 0 and will skip relocations in the first pass. Later once VMA != 0 it will relocate such symbols. The result is a binary with all symbols perfectly relocated. In the new code the linker will not detect the special case of VMA = 0 and will relocate immediately. Since VMA = 0 the relocation will have no effect. Yet since relocation was done, flag for further relocations is cleared (if there is such a flag), not sure. Later on, section A gets a VMA != 0. The linker will ignore the section since it has already done relocation. The result is a binary with some symbols not relocated. Browsing the code I have not found whether a successful relocations sets a flag to prevent further relocations, yet the story could explain the different results the way I see them. Also I cannot explain why clearing the contents does affect the result in the way it does. Maybe my explanation model is incomplete (or completely wrong). -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils