On Tuesday 04 December 2001 14:11, Bradley T Hughes wrote: And of course, it helps if I post the correct patch. This is the corerct one: --- objprelink.c~ Tue Dec 4 12:34:01 2001 +++ objprelink.c Tue Dec 4 14:10:09 2001 @@ -239,12 +239,12 @@ is_vt_section(bfd *abfd, asection *p) { const char *name = bfd_section_name(abfd, p); - static const char prefix[] = ".gnu.linkonce.d.__vt_"; + static const char prefix[] = ".gnu.linkonce.d._vt"; static flagword w = (SEC_ALLOC|SEC_LOAD|SEC_RELOC|SEC_DATA|SEC_LINK_ONCE); flagword f = bfd_get_section_flags (abfd, p); if (f & w == w) if (!strncmp(name, prefix, sizeof(prefix)-1)) - return name + sizeof(prefix)-6; + return name + sizeof(prefix)-4; return false; } > in case someone is interested, this make objprelink work on freebsd: > > --- objprelink.c Tue Dec 4 14:10:09 2001 > +++ objprelink.c~ Tue Dec 4 12:34:01 2001 > @@ -239,12 +239,12 @@ > is_vt_section(bfd *abfd, asection *p) > { > const char *name = bfd_section_name(abfd, p); > - static const char prefix[] = ".gnu.linkonce.d._vt"; > + static const char prefix[] = ".gnu.linkonce.d.__vt_"; > static flagword w = > (SEC_ALLOC|SEC_LOAD|SEC_RELOC|SEC_DATA|SEC_LINK_ONCE); > flagword f = bfd_get_section_flags (abfd, p); > if (f & w == w) > if (!strncmp(name, prefix, sizeof(prefix)-1)) > - return name + sizeof(prefix)-4; > + return name + sizeof(prefix)-6; > return false; > } > > The reason it didn't work before is because the virtual table symbol > prefixes were different from those hard coded in the source. > > Enjoy... -- -- Bradley T. Hughes Trolltech AS - Waldemar Thranes gt. 98 N-0175 Oslo, Norway Office: +47 21604892 Mobile: +47 92019781