Compilation problem with a few configure option

Olly Betts olly at survex.com
Fri Jun 24 13:49:29 BST 2016


On Mon, Jun 20, 2016 at 10:46:18PM +0200, Emmanuel Engelhart wrote:
> $ c++ --version
> c++ (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4

It's not the compiler.  It's just you can't currently disable remote
without disabling all chert and glass as well.

The underlying problem is there's a combinatorial explosion in the
number of combinations of backends enabled/disabled, so testing them all
regularly doesn't happen.  --disable-backend-remote hasn't worked for
ages - I recently fixed things so you can build with all backends
disabled, but the combination you're trying still doesn't work (it
fails for me too).

There's an existing ticket I've updated for this case:

https://trac.xapian.org/ticket/361

> >     ./configure --enable-shared --enable-static --disable-sse
> >     --disable-backend-inmemory --disable-backend-remote

--disable-sse is probably a bad idea - do you really need to support x86
CPUs which predate SSE?  If you can't assume SSE2 support
--enable-sse=sse will only require basic SSE.

The problem is that the pre-SSE floating point support gives excess
precision, which leads to inconsistent results and even segmentation
faults.  If SSE is disabled, we try to avoid the worst issues by
forcing values to double precision in cases where we know of problems,
but there are likely more undiscovered problems, especially as
--enable-see is the default.  And we don't force values to double
precision everywhere as doing so makes things very slow.

It's also a fair bit faster to use SSE on a modern CPU.

Cheers,
    Olly



More information about the Xapian-discuss mailing list