Hello, On Wednesday, 6. March 2002 00:41, Chris Howells wrote: > Hi, > > Has anybody successfully got objprelink working on woody? When I try to > compile qt-copy, make segfaults....
Using sid and gcc 3.0.4 with DEBIAN_BUILDARCH=athlon, Qt (qt-copy) works fine now with objprelink (I tested several Qt apps). I guess it's not make that segfaults but rather objprelink? It did not work for me first either, but then I updated from gcc304pre to 304 and latest binutils and stuff, and out of a sudden it works all well. (I got 'out of memory' from objprelink, when it tried to allocate some dozens of those bfd blocks - I have no clue what it is, the attached patch is more cosmetical, I don't think I fixed anything ;) However I still have trouble with KDE then: Could not dlopen library dcopserver.la: /usr/local/kde3.0.optimized/lib/dcopserver.so: undefined symbol: _ZNK15QSocketNotifier9classNameEv nm /usr/local/kde3.0.optimized/lib/libkdecore.so.4 | grep _ZNK18KUniqueApplication9classNameEv 001093b0 T _ZNK18KUniqueApplication9classNameEv Hm... Josef -- The MindX Open Source Project: Fighting proprietary games GGZ now! - The GGZ Gaming Zone: http://ggz.sourceforge.net ggz.morat.net | ggz.snafu.de | jzaun.com | mindx.sourceforge.net/europeone
--- objprelink.c.orig Fri Mar 1 17:31:01 2002 +++ objprelink.c Fri Mar 1 17:32:34 2002 @@ -20,7 +20,7 @@ #include <unistd.h> #include <sys/stat.h> #include <stdarg.h> -#include "bfd.h" +#include <bfd.h> static int verbose = 0; static int replace = 1; @@ -242,7 +242,7 @@ 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 ((f & w) == w) if (!strncmp(name, prefix, sizeof(prefix)-1)) return name + sizeof(prefix)-6; return false; @@ -402,7 +402,6 @@ for (hsym=vtsyms; hsym; hsym=hsym->next) { asection *osection; - asymbol *sym; char *name; /* new section */ name = (char*)bfd_alloc(obfd, strlen(hsym->sym->name) + 28); @@ -427,8 +426,6 @@ for (p=ibfd->sections; p; p=p->next) { const char *sname; - const char *err = M("cannot copy data from section %s in file %s", - bfd_section_name (ibfd, p), iname); asection *isection = p; asection *osection = p->output_section; bfd_size_type size = bfd_get_section_size_before_reloc (isection);