brass and chert / xapian port to Interix

Olly Betts olly at survex.com
Mon Oct 5 22:48:28 BST 2015


On Wed, Sep 30, 2015 at V07:28:36AM -0700, Eric Lindblad wrote:
> The xapian-core-1.2.21 'ambiguous overload' error on the files
> /backends/brass/brass_check.cc and /backends/chert/chert_check.cc
> appear to be resultant of a bug reported in gcc-3.3.4, which was fixed
> for 3.4.2 [Sept. 6, 2004] and 3.5.
> 
> Bug 16854 - streams missing "long long" specializations on Tru64
> https://gcc.gnu.org/bugzilla/show_bug.cgi?format=multiple&id=16854

OK, that's easy to work around in Xapian code we can use the str()
function which converts a number to a std::string, and so change:

    cout << i;

to be:

    cout << str(i);

This should work everywhere, and this isn't at all performance critical
code, so we can just do it unconditionally.  It's also only relevant to
1.2.x - for 1.3.x you now need C++11 support.  That definitely needs at
least GCC 4.4, and probably realistically something newer.

This patch should help:

http://trac.xapian.org/changeset/9b0aa7d6f5eaaa7a493821dd936fee80d5eac13e/git?format=diff&new=9b0aa7d6f5eaaa7a493821dd936fee80d5eac13e

If you hit more instances, a similar fix should work.

Cheers,
    Olly



More information about the Xapian-discuss mailing list