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 >
Possibly Parallel Threads
- xapian core missing link to math on MSYS2
- [LLVMdev] Regression testing on MSYS2 host with mingw-w64
- [LLVMdev] Regression testing on MSYS2 host with mingw-w64
- [LLVMdev] Regression testing on MSYS2 host with mingw-w64
- [LLVMdev] Regression testing on MSYS2 host with mingw-w64