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

Reply via email to