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/release/!
 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

Reply via email to