Dear All,
I've tried to build xapian-core 1.4.3 on MSYS2. It fails with attached
error (undefined reference to `exp10'). I think it might be missing an
explicit link to 'm'. I'm not able to fix this myself as I do not
know autotools sufficiently well, but I hope you might be able to help.
Cheers,
Mario Emmenlauer
--
BioDataAnalysis GmbH, Mario Emmenlauer Tel. Buero: +49-89-74677203
Balanstr. 43 mailto: memmenlauer * biodataanalysis.de
D-81669 München http://www.biodataanalysis.de/
-------------- next part --------------
libtool: link: x86_64-w64-mingw32-g++ -shared -nostdlib
D:/bda-ci/msys2/unstable/mingw64/lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../x86_64-w64-mingw32/lib/../lib/dllcrt2.o
D:/bda-ci/msys2/unstable/mingw64/lib/gcc/x86_64-w64-mingw32/6.3.0/crtbegin.o
api/.libs/compactor.o api/.libs/constinfo.o api/.libs/decvalwtsource.o
api/.libs/documentvaluelist.o api/.libs/editdistance.o api/.libs/emptypostlist.o
api/.libs/error.o api/.libs/errorhandler.o api/.libs/expanddecider.o
api/.libs/keymaker.o api/.libs/leafpostlist.o api/.libs/matchspy.o
api/.libs/omdatabase.o api/.libs/omdocument.o api/.libs/omenquire.o
api/.libs/positioniterator.o api/.libs/postingiterator.o
api/.libs/postingsource.o api/.libs/postlist.o api/.libs/query.o
api/.libs/queryinternal.o api/.libs/registry.o api/.libs/replication.o
api/.libs/smallvector.o api/.libs/sortable-serialise.o api/.libs/termiterator.o
api/.libs/termlist.o api/.libs/valueiterator.o api/.libs/valuerangeproc.o
api/.libs/valuesetmatchdecider.o api/.libs/vectortermlist.o
backends/.libs/alltermslist.o backends/.libs/dbcheck.o backends/.libs/database.o
backends/.libs/databasereplicator.o backends/.libs/dbfactory.o
backends/.libs/slowvaluelist.o backends/.libs/valuelist.o
backends/.libs/dbfactory_remote.o backends/.libs/contiguousalldocspostlist.o
backends/.libs/flint_lock.o backends/chert/.libs/chert_alldocsmodifiedpostlist.o
backends/chert/.libs/chert_alldocspostlist.o
backends/chert/.libs/chert_alltermslist.o backends/chert/.libs/chert_btreebase.o
backends/chert/.libs/chert_check.o backends/chert/.libs/chert_compact.o
backends/chert/.libs/chert_cursor.o backends/chert/.libs/chert_database.o
backends/chert/.libs/chert_databasereplicator.o
backends/chert/.libs/chert_dbcheck.o backends/chert/.libs/chert_dbstats.o
backends/chert/.libs/chert_document.o backends/chert/.libs/chert_metadata.o
backends/chert/.libs/chert_modifiedpostlist.o
backends/chert/.libs/chert_positionlist.o backends/chert/.libs/chert_postlist.o
backends/chert/.libs/chert_record.o backends/chert/.libs/chert_spelling.o
backends/chert/.libs/chert_spellingwordslist.o
backends/chert/.libs/chert_synonym.o backends/chert/.libs/chert_table.o
backends/chert/.libs/chert_termlist.o backends/chert/.libs/chert_termlisttable.o
backends/chert/.libs/chert_valuelist.o backends/chert/.libs/chert_values.o
backends/chert/.libs/chert_version.o
backends/glass/.libs/glass_alldocspostlist.o
backends/glass/.libs/glass_alltermslist.o backends/glass/.libs/glass_changes.o
backends/glass/.libs/glass_check.o backends/glass/.libs/glass_compact.o
backends/glass/.libs/glass_cursor.o backends/glass/.libs/glass_database.o
backends/glass/.libs/glass_databasereplicator.o
backends/glass/.libs/glass_dbcheck.o backends/glass/.libs/glass_document.o
backends/glass/.libs/glass_freelist.o backends/glass/.libs/glass_inverter.o
backends/glass/.libs/glass_metadata.o backends/glass/.libs/glass_positionlist.o
backends/glass/.libs/glass_postlist.o backends/glass/.libs/glass_spelling.o
backends/glass/.libs/glass_spellingwordslist.o
backends/glass/.libs/glass_synonym.o backends/glass/.libs/glass_table.o
backends/glass/.libs/glass_termlist.o backends/glass/.libs/glass_termlisttable.o
backends/glass/.libs/glass_valuelist.o backends/glass/.libs/glass_values.o
backends/glass/.libs/glass_version.o
backends/inmemory/.libs/inmemory_alltermslist.o
backends/inmemory/.libs/inmemory_database.o
backends/inmemory/.libs/inmemory_document.o
backends/inmemory/.libs/inmemory_positionlist.o
backends/multi/.libs/multi_alltermslist.o backends/multi/.libs/multi_postlist.o
backends/multi/.libs/multi_termlist.o backends/multi/.libs/multi_valuelist.o
backends/remote/.libs/remote-document.o backends/remote/.libs/net_postlist.o
backends/remote/.libs/net_termlist.o backends/remote/.libs/remote-database.o
common/.libs/bitstream.o common/.libs/closefrom.o common/.libs/debuglog.o
common/.libs/errno_to_string.o common/.libs/fileutils.o common/.libs/io_utils.o
common/.libs/keyword.o common/.libs/msvc_dirent.o common/.libs/omassert.o
common/.libs/posixy_wrapper.o common/.libs/replicate_utils.o common/.libs/safe.o
common/.libs/serialise-double.o common/.libs/socket_utils.o common/.libs/str.o
common/.libs/compression_stream.o common/.libs/win32_uuid.o
expand/.libs/bo1eweight.o expand/.libs/esetinternal.o
expand/.libs/expandweight.o expand/.libs/ortermlist.o expand/.libs/tradeweight.o
geospatial/.libs/geoencode.o geospatial/.libs/latlongcoord.o
geospatial/.libs/latlong_distance_keymaker.o geospatial/.libs/latlong_metrics.o
geospatial/.libs/latlong_posting_source.o languages/.libs/arabic.o
languages/.libs/armenian.o languages/.libs/basque.o languages/.libs/catalan.o
languages/.libs/danish.o languages/.libs/dutch.o languages/.libs/english.o
languages/.libs/earlyenglish.o languages/.libs/finnish.o
languages/.libs/french.o languages/.libs/german2.o languages/.libs/german.o
languages/.libs/hungarian.o languages/.libs/italian.o
languages/.libs/kraaij_pohlmann.o languages/.libs/lovins.o
languages/.libs/norwegian.o languages/.libs/porter.o
languages/.libs/portuguese.o languages/.libs/romanian.o
languages/.libs/russian.o languages/.libs/spanish.o languages/.libs/swedish.o
languages/.libs/turkish.o languages/.libs/stem.o languages/.libs/steminternal.o
matcher/.libs/remotesubmatch.o matcher/.libs/andmaybepostlist.o
matcher/.libs/andnotpostlist.o matcher/.libs/branchpostlist.o
matcher/.libs/collapser.o matcher/.libs/exactphrasepostlist.o
matcher/.libs/externalpostlist.o matcher/.libs/localsubmatch.o
matcher/.libs/maxpostlist.o matcher/.libs/mergepostlist.o
matcher/.libs/msetcmp.o matcher/.libs/msetpostlist.o
matcher/.libs/multiandpostlist.o matcher/.libs/multimatch.o
matcher/.libs/multixorpostlist.o matcher/.libs/nearpostlist.o
matcher/.libs/orpositionlist.o matcher/.libs/orpospostlist.o
matcher/.libs/orpostlist.o matcher/.libs/phrasepostlist.o
matcher/.libs/selectpostlist.o matcher/.libs/synonympostlist.o
matcher/.libs/valuegepostlist.o matcher/.libs/valuerangepostlist.o
matcher/.libs/valuestreamdocument.o net/.libs/length.o net/.libs/serialise.o
net/.libs/progclient.o net/.libs/remoteconnection.o net/.libs/remoteserver.o
net/.libs/remotetcpclient.o net/.libs/remotetcpserver.o
net/.libs/replicatetcpclient.o net/.libs/replicatetcpserver.o
net/.libs/serialise-error.o net/.libs/tcpclient.o net/.libs/tcpserver.o
queryparser/.libs/cjk-tokenizer.o queryparser/.libs/queryparser.o
queryparser/.libs/queryparser_internal.o queryparser/.libs/termgenerator.o
queryparser/.libs/termgenerator_internal.o unicode/.libs/description_append.o
unicode/.libs/unicode-data.o unicode/.libs/utf8itor.o weight/.libs/bb2weight.o
weight/.libs/bm25plusweight.o weight/.libs/bm25weight.o
weight/.libs/boolweight.o weight/.libs/coordweight.o weight/.libs/dlhweight.o
weight/.libs/dphweight.o weight/.libs/ifb2weight.o weight/.libs/ineb2weight.o
weight/.libs/inl2weight.o weight/.libs/lmweight.o weight/.libs/pl2plusweight.o
weight/.libs/pl2weight.o weight/.libs/tfidfweight.o weight/.libs/tradweight.o
weight/.libs/weight.o weight/.libs/weightinternal.o -lrpcrt4 -lz -lws2_32
-LD:/bda-ci/msys2/unstable/mingw64/lib/gcc/x86_64-w64-mingw32/6.3.0
-LD:/bda-ci/msys2/unstable/mingw64/lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../x86_64-w64-mingw32/lib/../lib
-LD:/bda-ci/msys2/unstable/mingw64/lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../lib
-LD:/bda-ci/msys2/unstable/mingw64/x86_64-w64-mingw32/lib/../lib
-LD:/bda-ci/msys2/unstable/mingw64/lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../x86_64-w64-mingw32/lib
-LD:/bda-ci/msys2/unstable/mingw64/lib/gcc/x86_64-w64-mingw32/6.3.0/../../..
-LD:/bda-ci/msys2/unstable/mingw64/x86_64-w64-mingw32/lib -lstdc++ -lmingw32
-lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt -lpthread -ladvapi32 -lshell32
-luser32 -lkernel32 -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt
D:/bda-ci/msys2/unstable/mingw64/lib/gcc/x86_64-w64-mingw32/6.3.0/crtend.o
-march=x86-64 -mtune=generic -O2 -o .libs/libxapian-30.dll
-Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker
.libs/libxapian.dll.a
api/.libs/omenquire.o:omenquire.cc:(.text+0xda3): undefined reference to
`exp10'
collect2.exe: error: ld returned 1 exit status
make[2]: *** [Makefile:2206: libxapian.la] Error 1
make[2]: Leaving directory
'/d/BioDataAnalysis/Source/GIT-MINGW-packages/mingw-w64-xapian-core/src/build-x86_64'
make[1]: *** [Makefile:3209: all-recursive] Error 1
make[1]: Leaving directory
'/d/BioDataAnalysis/Source/GIT-MINGW-packages/mingw-w64-xapian-core/src/build-x86_64'
make: *** [Makefile:1567: all] Error 2
On Wed, Mar 15, 2017 at 10:05:31AM +0100, Mario Emmenlauer wrote:> I've tried to build xapian-core 1.4.3 on MSYS2. It fails with attached > error (undefined reference to `exp10').The issue is that exp10() isn't a standard function. This is fixed in git already, so should work with the next release: https://trac.xapian.org/changeset/8ac975a135e2571d78eaa82e63974509877d3110/git There's only one use of exp10() currently, so the simplest workaround is probably to patch api/omenquire.cc to use __builtin_exp10(x) or pow(10.0, x) instead of exp10(x) (the former requires GCC). Cheers, Olly
Dear Olly,
thanks a lot for the pointer! I've fetched the patch you mention but
actually it seems this is already included in the 1.4.3 release, is
that possible? Also it did not solve the problem, I still get references
to exp10. I've checked with nm and omenquire.o has undefined references
to log10 and exp10. I went further and replaced exp10 in omenquire.cc
with __builtin_exp10, but still the same undefined references. I do not
know what kind of black magic this is...
Cheers,
Mario
ac_cv_func___exp10=no
ac_cv_func_exp10=no
ac_cv_have_decl___builtin_exp10=yes
#define HAVE_DECL___BUILTIN_EXP10 1
#define HAVE_DECL___BUILTIN_EXP10 1
On 16.03.2017 00:47, Olly Betts wrote:> On Wed, Mar 15, 2017 at 10:05:31AM +0100, Mario Emmenlauer wrote:
>> I've tried to build xapian-core 1.4.3 on MSYS2. It fails with
attached
>> error (undefined reference to `exp10').
>
> The issue is that exp10() isn't a standard function. This is fixed in
> git already, so should work with the next release:
>
>
https://trac.xapian.org/changeset/8ac975a135e2571d78eaa82e63974509877d3110/git
>
> There's only one use of exp10() currently, so the simplest workaround
is
> probably to patch api/omenquire.cc to use __builtin_exp10(x) or pow(10.0,
x)
> instead of exp10(x) (the former requires GCC).
>
> Cheers,
> Olly
>