------- Additional Comments From amodra at bigpond dot net dot au 2009-07-30 01:26 ------- > Your change duplicates the logic in elf_link_output_extsym so that > you can fix this bug. You have to do this for all backends which > support IFUNC symbols.
Rubbish. See for example the powerpc backend. > That begs the question why it shouldn't be > done in elf_link_output_extsym. Can someone give me one good reason > for this madness? Thanks. I've already stated why ref_regular should not be tested in generic code. Why do you keep ignoring me? You can "fix" your backend either with the boilerplate style patch Nick presented or more elegantly. More elegantly is preferable. In fact, completely reimplementing your ifunc support for x86 is preferable. The only "madness" involved here was trusting your implementation enough to allow it to be committed. It looks like you have just kept adding code until it "worked" for the limited set of testcases you have assembled and linked. For an example of your muddy thinking, I need look no further than check_relocs. There, you start doing special things for ifunc symbols when def_regular. But check_relocs is called as each object file is added. So your code can't work if a regular object file references an undefined symbol which a later regular object file defines as STT_GNU_IFUNC. When check_relocs is called for the first object file it just sees a normal undefined symbol. No special treatment for ifunc. When check_relocs is called for the later object, there may be no reference in it to the ifunc definition. Again no special treatment for ifunc. -- http://sourceware.org/bugzilla/show_bug.cgi?id=10433 ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils