http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375
--- Comment #82 from Markus Trippelsdorf <markus at trippelsdorf dot de> 2011-04-11 15:08:28 UTC --- (In reply to comment #81) > > The problem is function Elf_Ehdr::serialize(std::basic_ofstream<char, > std::char_traits<char> >&, char, char) ... > Would be possible for you to look into preprocessed source files of elfhack > and > see what units define the serialize function and among those how the swap > defintions look like? > I think it would be best if you take a look at the source files yourself once your firewall problem is solved, because there are actually only two of them (elfxx.h and elf.cpp). The instantiation takes place in elfxx.h:431 and elf.cpp:142. BTW when I use -frepo to compile host_elf.o the link error goes away. And if I recompile host_elf.o without -frepo, but leave the host_elf.rpo file, this is what happens: collect: recompiling /var/tmp/mozilla-central/build/unix/elfhack/elf.cpp collect: relinking collect2: '_ZN15Elf_Ehdr_Traits4swapI10big_endian10Elf64_Ehdr12serializableIS_EEEvRT1_RT0_' was assigned to 'host_elf.rpo', but was not defined during recompilation, or vice versa and then the link error from above follows.