On Fri, 24 Feb 2006 16:47:41 +0100, Andreas Mantke wrote:
Leider bekomme ich beim make für synce-rra-0.9.1 einen Kompilerfehler, den ich nicht genau verstehe und deshalb auch nicht lösen kann:
/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../x86_64-suse-linux/bin/ld: /usr/local/lib/libmimedir.a(parse.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
So, ich habe mir das jetzt mal angesehen. libmimedir wird nur als statische Bibliothek übersetzt (.a). syncwe-rra scheint diese Bibliothek in ein dynamisch zu ladendes Objekt (dynamische Bibliothek, Plugin oder ähnliches) einbinden zu wollen, was schiefgehen muss, da hierfür der in der Bibliothek enthaltene Code mit dem Kompilerschalter -fPIC übersetzt sein muss. Auf i386 kommt man auch ohne aus, aber auf allen anderen Plattformen ist das zwingend nötig. BTW, wenn du zum Thema PIC ausführlichere Info haben willst, kann ich die nachliefern :). Schnelle und schmutzige Lösung: Du solltest die libmimedir.a in /usr/local/lib löschen und sie noch einmal neu kompilieren. Füge aber vor dem Kompilieren im Makefile der libmimedir bei CFLAGS noch ein -fPIC hinzu. Nach installieren dieser Bibliothek sollte sich synce-rra kompilieren lassen. Philipp