Hi,
Adding Fabienne because this was the same problem.
I've pushed commit 93ab057eda69a7915efbc9fa92d4ce6341e6ca02 which will
hopefully handle BOOST_TEST_DYN_LINK correctly.
Still unclear what the behavior should be for threading=single.
Compile it anyway, forcing two compiles of kenlm? Warning message that
will probably be ignored?
Kenneth
On 02/16/2015 01:41 PM, Kenneth Heafield wrote:
> Actually, that's by design. Your command line has threading=single and
> lmplz doesn't have a single-threaded option.
>
> Kenneth
>
> On 02/16/2015 01:29 PM, Matt Post wrote:
>> Okay, that worked. The whole project now builds, EXCEPT there is no
>> bin/lmplz. fragment, build_binary, and query all exist, but not lmplz. It is
>> not mentioned in the logs...
>>
>> But that's okay, because I'll just copy it from KenLM directly.
>>
>> Thanks for your help.
>>
>> matt
>>
>>
>>> On Feb 16, 2015, at 1:01 PM, Kenneth Heafield <[email protected]> wrote:
>>>
>>> Tests to be dynamically linked must be _compiled_ using
>>> -DBOOST_TEST_DYN_LINK . The build system did this prior to Hieu's change.
>>>
>>> After reverting Hieu's change, force it to recompile the object file:
>>>
>>> rm util/bin/gcc-4.9.2/release/file_piece_test.o
>>>
>>> (or just run with -a and rebuild everything).
>>>
>>> Kenneth
>>>
>>> On 02/16/2015 12:53 PM, Matt Post wrote:
>>>> Hmm; I got a bit further, but still have linking errors for the tests.
>>>> build_binary built, but still no lmplz, and it's not mentioned at all in
>>>> the log output.
>>>>
>>>> I was able to get lmplz to build by modifying Jamroot to build only the
>>>> "lm" project, but still get all these linking errors when I try a full
>>>> build.
>>>>
>>>> Maybe this is my environment? Or a Boost change? What version do you all
>>>> build against?
>>>>
>>>> gcc.link util/bin/file_piece_test.test/gcc-4.9.2/release/file_piece_test
>>>>
>>>> "g++"-L"/opt/boost/lib"-L"/opt/boost/lib64"-Wl,-R
>>>> -Wl,"/opt/boost/lib"-Wl,-R -Wl,"/opt/boost/lib64"-Wl,-rpath-link
>>>> -Wl,"/opt/boost/lib"-Wl,-rpath-link -Wl,"/opt/boost/lib64"-o
>>>> "util/bin/file_piece_test.test/gcc-4.9.2/release/file_piece_test"-Wl,--start-group
>>>> "util/bin/gcc-4.9.2/release/file_piece_test.o""util/bin/gcc-4.9.2/release/parallel_read.o""util/bin/gcc-4.9.2/release/read_compressed.o""util/double-conversion/bin/gcc-4.9.2/release/cached-powers.o""util/double-conversion/bin/gcc-4.9.2/release/double-conversion.o""util/double-conversion/bin/gcc-4.9.2/release/diy-fp.o""util/double-conversion/bin/gcc-4.9.2/release/fast-dtoa.o""util/double-conversion/bin/gcc-4.9.2/release/bignum.o""util/double-conversion/bin/gcc-4.9.2/release/bignum-dtoa.o""util/double-conversion/bin/gcc-4.9.2/release/strtod.o""util/double-conversion/bin/gcc-4.9.2/release/fixed-dtoa.o""util/bin/gcc-4.9.2/release/bit_packing.o""util/bin/gcc-4.9.2/release/ersatz_progress.o""util/bin/gcc-4.9.2/release/exception.o""util/bin/gcc-4.9.2/release/file.o""util/bin/gcc-4.9.2/release/file_piece.o""util/bin/gcc-4.9.2/release/mmap.o""util/bin/gcc-4.9.2/release/murmur_hash.o""util/bin/gcc-4.9.2/release/pool.o""util/bin/gcc-4.9.2/release/scoped.o""util/bin/gcc-4.9.2/relea!
s!
> e/!
>>> string_pi
>>> e
>>> ce.o""util/bin/gcc-4.9.2/release/usage.o"
>>>> -Wl,-Bstatic -Wl,-Bdynamic -lboost_unit_test_framework -llzma -lbz2 -lz
>>>> -lrt -ldl -lboost_system -lboost_filesystem -Wl,--end-group
>>>>
>>>>
>>>> /usr/lib/../lib64/crt1.o: In function `_start':
>>>> (.text+0x20): undefined reference to `main'
>>>> collect2: error: ld returned 1 exit status
>>>>
>>>>> From: Kenneth Heafield <moses@...
>>>>> <http://gmane.org/get-address.php?address=moses%2dbghys1TANAP2eFz%2f2MeuCQ%40public.gmane.org>>
>>>>> Subject: Re: compilation problems
>>>>> <http://news.gmane.org/find-root.php?message_id=54E21FBC.70001%40kheafield.com>
>>>>> Newsgroups: gmane.comp.nlp.moses.user
>>>>> <http://news.gmane.org/gmane.comp.nlp.moses.user>
>>>>> Date: 2015-02-16 16:50:04 GMT (49 minutes ago)
>>>>> Hi Matt,
>>>>>
>>>>> lmplz should be compiling anyway, despite the tests failing. Try
>>>>> reverting this commit, which broke shared compilation for tests:
>>>>>
>>>>> commit d7f5bb41faaac5ca93b9cbb723ad558b2c67d3c2
>>>>> Author: Hieu Hoang <hieuhoang@...
>>>>> <http://gmane.org/get-address.php?address=hieuhoang%2dRe5JQEeQqe8AvxtiuMwx3w%40public.gmane.org>>
>>>>> Date: Tue Jan 27 16:22:15 2015 +0000
>>>>>
>>>>> Regarding boost_filesystem we'll probably have to add that dependency
>>>>> since Boost doesn't really document which of their libraries depend on
>>>>> other libraries.
>>>>>
>>>>> Kenneth
>>>>>
>>>>>> On Feb 16, 2015, at 11:42 AM, Matt Post <[email protected]
>>>>>> <mailto:[email protected]>> wrote:
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I am running into a number of problems compiling Moses 3.0. I am
>>>>>> using GCC 4.9.2 and a custom (correct) install of Boost 1.57.0.
>>>>>>
>>>>>> 1. First, I had to add this:
>>>>>>
>>>>>> <library>boost_filesystem
>>>>>>
>>>>>> to line 174 of Jamroot (per this
>>>>>> discussion: https://github.com/moses-smt/mosesdecoder/issues/89 )
>>>>>>
>>>>>> 2. Things like lmplz do not compile, and aren't even attempted,
>>>>>> perhaps because all of the tests fail.
>>>>>>
>>>>>> ./bjam --max-factors=1 --max-kenlm-order=5 debug-symbols=off -j4 -d2
>>>>>> --with-boost=/opt/boost threading=single --notrace link=shared
>>>>>> --without-libsegfault
>>>>>> [snip]
>>>>>> ...failed updating 30 targets...
>>>>>> ...skipped 36 targets...
>>>>>>
>>>>>> It seems like something with boost unit tests? e.g.,
>>>>>>
>>>>>> "g++" -L"/opt/boost/lib" -L"/opt/boost/lib64" -Wl,-R
>>>>>> -Wl,"/home/hltcoe/mpost/code/mosesdecoder/mert/bin/gcc-4.9.2/release"
>>>>>> -Wl,-R -Wl,"/opt/boost/lib" -Wl,-R -Wl,"/opt/boost/lib64"
>>>>>> -Wl,-rpath-link
>>>>>> -Wl,"/home/hltcoe/mpost/code/mosesdecoder/mert/bin/gcc-4.9.2/release"
>>>>>> -Wl,-rpath-link -Wl,"/opt/boost/lib" -Wl,-rpath-link
>>>>>> -Wl,"/opt/boost/lib64" -o "mert/bin/gcc-4.9.2/release/timer_test"
>>>>>> -Wl,--start-group
>>>>>> "mert/bin/gcc-4.9.2/release/TimerTest.o"
>>>>>> "mert/bin/gcc-4.9.2/release/libmert_lib.so" -Wl,-Bstatic -Wl,-Bdynamic
>>>>>> -lboost_unit_test_framework -ldl -lboost_system -lboost_filesystem
>>>>>> -Wl,--end-group
>>>>>> /usr/lib/../lib64/crt1.o: In function `_start':
>>>>>> (.text+0x20): undefined reference to `main'
>>>>>> collect2: error: ld returned 1 exit status
>>>>>>
>>>>>> Debug file attached. Any ideas what's wrong?
>>>>>>
>>>>>> matt
>>>>>>
>>>>>> <build.log.gz>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Moses-support mailing list
>>>> [email protected]
>>>> http://mailman.mit.edu/mailman/listinfo/moses-support
>>>>
>>> _______________________________________________
>>> Moses-support mailing list
>>> [email protected]
>>> http://mailman.mit.edu/mailman/listinfo/moses-support
>>
> _______________________________________________
> Moses-support mailing list
> [email protected]
> http://mailman.mit.edu/mailman/listinfo/moses-support
>
_______________________________________________
Moses-support mailing list
[email protected]
http://mailman.mit.edu/mailman/listinfo/moses-support