[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: objprelink on woody



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);

Reply to: