Opened 15 years ago

Closed 14 years ago

#409 closed defect (invalid)

Problem compiling python bindings in 1.0.16

Reported by: Manuel Padrón Martínez Owned by: Olly Betts
Priority: normal Milestone:
Component: Xapian-bindings Version: 1.0.16
Severity: normal Keywords:
Cc: nicolaslara@… Blocked By:
Blocking: Operating System: Linux

Description (last modified by Olly Betts)

Hi:

Trying to compile python bindings I get this error:

/bin/sh ../libtool  --tag=CXX   --mode=link g++ -fno-strict-aliasing -Wall -Wno-unused -Wno-uninitialized -fvisibility=hidden -I/usr/local/include -g -O2 -avoid-version -module -shrext ".so"   -o _xapian.la -rpath /usr/lib/python2.5/site-packages xapian_wrap.lo -L/usr/local/lib -lxapian -lstdc++
g++ -shared -nostdlib /usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../../lib/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.3.2/crtbeginS.o  .libs/xapian_wrap.o  -L/usr/local/lib /usr/local/lib/libxapian.so -L/usr/lib/gcc/x86_64-linux-gnu/4.3.2 -L/usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/4.3.2/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../../lib/crtn.o  -Wl,-soname -Wl,_xapian.so -o .libs/_xapian.so
creating _xapian.la
(cd .libs && rm -f _xapian.la && ln -s ../_xapian.la _xapian.la)
cp `test -f modern/xapian.py || echo './'`modern/xapian.py .
/bin/sh ../libtool  --config > libtoolconfig.tmp
. libtoolconfig.tmp; cp $objdir/_xapian.so .
rm -f libtoolconfig.tmp
PYTHONPATH=. /usr/bin/python -c "import _xapian;import xapian"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: ./_xapian.so: undefined symbol: _ZNK6Xapian8Database19metadata_keys_beginERKSs
make[2]: *** [xapian.pyc] Error 1
make[2]: Leaving directory `/root/fisica-couch/sources/lucene-alternatives/xapian/xapian-bindings-1.0.16/python'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/fisica-couch/sources/lucene-alternatives/xapian/xapian-bindings-1.0.16/python'
make: *** [all] Error 2

Change History (3)

comment:1 by Nicolas Lara, 14 years ago

I'm having the exact same issue building the python binding 1.0.11.

The problem seems related to libxapian.

comment:2 by Nicolas Lara, 14 years ago

Cc: nicolaslara@… added

comment:3 by Olly Betts, 14 years ago

Description: modified (diff)
Resolution: invalid
Status: newclosed

The missing symbol is the method Xapian::Database::metadata_keys_begin:

$ echo _ZNK6Xapian8Database19metadata_keys_beginERKSs | c++filt
Xapian::Database::metadata_keys_begin(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const

This method was added in Xapian 1.0.9, so what this means is that you are trying to use xapian-bindings 1.0.16 (or 1.0.11) with xapian-core 1.0.8 or earlier - that's not a supported combination, and when you ran configure from xapian-bindings, you would have got a warning to this effect (it's not a hard error, as it will actually work unless a new symbol has been added, but we don't recommend it).

If you actually have a newer xapian-core installed (as well as the old one) you need to tell xapian-bindings where it is when you run its configure script, e.g.:

./configure XAPIAN_CONFIG=/usr/local/bin/xapian-config

So this isn't a bug in Xapian, hence closing as "invalid", which seems the most appropriate status we have for that.

Note: See TracTickets for help on using tickets.