On Fri, 26 Nov 2010, Antoine Jacoutot wrote: > On Thu, 25 Nov 2010, Jiri B. wrote: > > > Hi, > > > > I wanted to give a try to x11/pinot but... > > > > Previous instance 32393 died prematurely > > pinot-dbus-daemon:/usr/local/lib/pinot/backends/libxapianbackend.so: > > undefined symbol '__dso_handle' > > > > ...unusable, as it cannot create index :( > > > > Ports from Nov 25th, snapshot from Nov 20th. I tried to build pinot from > > ports manually, same issue. > > It looks like a bug in gcc. > From http://gcc.gnu.org/java/faq.html#4_7 : > > 4.7 I'm getting 'undefined symbol: __dso_handle' > > Some versions of the GNU linker have broken support for the '.hidden' > directive, which results in problems with shared libraries built with > recent versions of gcc. > > There are three solutions: > > * downgrade to binutils that don't support .hidden at all, > * upgrade to a recent binutils, or > * undef the HAVE_GAS_HIDDEN definition in gcc's auto-host.h (and > rebuild gcc).
The following workaround should work, but I'd prefer the HAVE_GAS_HIDDEN solution. ciao, david Index: Makefile =================================================================== RCS file: /cvs/ports/x11/pinot/Makefile,v retrieving revision 1.18 diff -u -p -r1.18 Makefile --- Makefile 22 Nov 2010 08:37:04 -0000 1.18 +++ Makefile 26 Nov 2010 10:17:11 -0000 @@ -5,7 +5,7 @@ SHARED_ONLY= Yes COMMENT= personal search and metasearch DISTNAME= pinot-0.96 -REVISION= 3 +REVISION= 4 CATEGORIES= x11 misc Index: patches/patch-IndexSearch_Xapian_ModuleExports_cpp =================================================================== RCS file: patches/patch-IndexSearch_Xapian_ModuleExports_cpp diff -N patches/patch-IndexSearch_Xapian_ModuleExports_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-IndexSearch_Xapian_ModuleExports_cpp 26 Nov 2010 10:17:11 -0000 @@ -0,0 +1,15 @@ +$OpenBSD$ +--- IndexSearch/Xapian/ModuleExports.cpp.orig Fri Nov 26 10:38:48 2010 ++++ IndexSearch/Xapian/ModuleExports.cpp Fri Nov 26 10:39:35 2010 +@@ -30,6 +30,11 @@ using std::string; + + extern "C" + { ++ void *__dso_handle = NULL; ++} ++ ++extern "C" ++{ + PINOT_EXPORT ModuleProperties *getModuleProperties(void); + PINOT_EXPORT bool openOrCreateIndex(const string &databaseName, bool &obsoleteFormat, + bool readOnly, bool overwrite);