Hello Barry, Kenneth,

I have enountered the m64 issue before with SRILM and i usually hardcode 
the machine type directly in the Makefile:

sdumitrescu /usr/local/trans/tools/srilm > cat Makefile | head -9
#
# Top-level Makefile for SRILM
#
# $Header: /home/srilm/CVS/srilm/Makefile,v 1.64 2011/12/08 19:40:24 
stolcke Exp $
#

SRILM = /usr/local/trans/tools/srilm
MACHINE_TYPE := i686-m64

Just to be sure, i pass the machine type to the command line with make 
MACHINE_TYPE=i686-m64. This works ok and it generates srilm/lib/i686-m64 
and srilm/bin/i686-m64 folders and files. Then i duplicate and rename 
these folders just as i686 for moses to find (i know it's a bit of a 
hack but it seems to work - or it did until the bjam builder :).

Anyway, this morning i figured out what was wrong thanks to your 
suggestion: i passed a bad path to --with-srilm and found out it was 
calling sbin/machine-type (message popped up at stderr). So, i edited 
the file and forced to return i686-m64 and everything built correctly. I 
did not expect that moses builder would call a file in srilm, i presumed 
it only needed to know the path to the general srilm folder... my 
mistake :)

Although it is still a mystery why if i duplicated the i686-m64 folders 
to i686, without modifying the machine-type file, the moses builder did 
not find them, because machine-type would have returned just i686.. 
Probably it creates more -m64 files/folders that i did not duplicate.

Anyway, problem solved and thank you for your support!
Stefan

On 1/10/2012 5:52 PM, Kenneth Heafield wrote:
> Hi Stefan
>
>       Please run with -j1 so it isn't garbled and include the full log.  If I
> had to guess, your Boost isn't installed properly, including the
> development libraries.
>
>       Another possibility is that you compiled a 32-bit SRILM and this is
> confusing the build.  Please follow BUILD-INSTRUCTIONS.txt:
>
> If you want to use SRILM, you will need to download its source and build
> it.  The SRILM can be downloaded from
> http://www.speech.sri.com/projects/srilm/download.html .
> On x86_64, the default machine type is broken.  Edit sbin/machine-type,
> find this code
>      else if (`uname -m` == x86_64) then
>          set MACHINE_TYPE = i686
> and change it to
>      else if (`uname -m` == x86_64) then
>          set MACHINE_TYPE = i686-m64
> You may have to chmod +w sbin/machine-type first.
>
> Kenneth
>
> On 01/10/2012 09:06 AM, Barry Haddow wrote:
>> Hi Stefan
>>
>> I can't see from the output below what's happening. Perhaps you could post 
>> the
>> full log, as before?
>>
>> I very recently noticed a problem with the build on my home pc (ubuntu 9.10)
>> which caused left_test to fail, because of a boost test incompatibility.
>> However the other components still compiled.
>>
>> cheers - Barry
>>
>> On Tuesday 10 January 2012 13:43:42 Stefan Dumitrescu wrote:
>>> Hi Barry,
>>>
>>> SRILM is built with machine type i686-m64. I have duplicated the folder
>>> as /i686 in srilm/lib and srilm/bin just in case. The /usr/bin/ld errors
>>> do not show up anymore. However i am still not able to build Moses.
>>>
>>> ...failed updating 10 targets...
>>>
>>> , with errors like:
>>>
>>> ...failed gcc.link
>>> lm/bin/left_test.test/gcc-4.6.1/release/debug-symbols-on/threading-multi/le
>>> ft_test... ...skipped
>>> <plm/bin/left_test.test/gcc-4.6.1/release/debug-symbols-on/threading-multi>
>>> left_test.run for lack of
>>> <plm/bin/left_test.test/gcc-4.6.1/release/debug-symbols-on/threading-multi>
>>> left_test...
>>>
>>> "g++"  -Wl,-R
>>> -Wl,"/usr/local/trans/tools/moses/lm/bin/gcc-4.6.1/release/debug-symbols-on
>>> /threading-multi" -Wl,-R
>>> -Wl,"/usr/local/trans/tools/moses/util/bin/gcc-4.6.1/release/debug-symbols-
>>> on/threading-multi" -Wl,-rpath-link
>>> -Wl,"/usr/local/trans/tools/moses/lm/bin/gcc-4.6.1/release/debug-symbols-on
>>> /threading-multi" -Wl,-rpath-link
>>> -Wl,"/usr/local/trans/tools/moses/util/bin/gcc-4.6.1/release/debug-symbols-
>>> on/threading-multi" -o
>>>   "lm/bin/gcc-4.6.1/release/debug-symbols-on/threading-multi/build_binary"
>>>   -Wl,--start-group
>>> "lm/bin/gcc-4.6.1/release/debug-symbols-on/threading-multi/build_binary.o"
>>> "lm/bin/gcc-4.6.1/release/debug-symbols-on/threading-multi/libkenlm.so"
>>> -Wl,-Bstatic  -Wl,-Bdynamic -lboost_thread-mt -lrt -Wl,--end-group -g
>>> -pthread
>>>
>>>
>>> ...failed gcc.link
>>> lm/bin/gcc-4.6.1/release/debug-symbols-on/threading-multi/build_binary...
>>>
>>> etc.
>>>
>>> Thanks,
>>> Stefan
>>>
>>> Barry Haddow<bhaddow@...>  writes:
>>>   >  Hi Stefan
>>>   >
>>>   >  These errors:
>>>   >
>>>   >  /usr/bin/ld: cannot find -loolm
>>>   >  /usr/bin/ld: cannot find -ldstruct
>>>   >  /usr/bin/ld: cannot find -lmisc
>>>   >  /usr/bin/ld: cannot find -lflm
>>>   >
>>>   >  indicate that the moses build cannot find srilm. Is srilm built, and
>>>
>>> are the
>>>
>>>   >  libraries in /usr/local/trans/tools/srilm/lib/i686 ?
>>>   >
>>>   >  cheers - Barry
>>>   >
>>>   >  On Tuesday 10 January 2012 11:07:01 Stefan Dumitrescu wrote:
>>>   >  >  Hello all,
>>>   >  >
>>>   >  >  I have a problem building Moses with bjam.
>>>   >  >  I am working on a clean ubuntu 11.10 64bit server machine on which i
>>>   >  >  have root access. I installed srilm and mgiza.
>>>   >  >  I downloaded Moses from Git and tried to build with:
>>>   >  >
>>>   >  >  bjam link=shared --with-srilm=/usr/local/trans/tools/srilm
>>>   >  >  --with-giza=/usr/local/trans/tools/mgiza/bin -j16 -a
>>>   >  >
>>>   >  >  The first thing i had to do was to create a symlink to the mgiza 
>>> exec,
>>>   >  >  linking the non-existent GIZA++ file to the mgiza file in
>>>
>>> mgiza/bin, the
>>>
>>>   >  >  same for snt2cooc.out ->  snt2cooc  . (this is because i do not 
>>> want to
>>>   >  >  install giza, and mgiza has a different executable name - hope it 
>>> will
>>>   >  >  work with moses this way).
>>>   >  >
>>>   >  >  Then i had errors like:
>>>   >  >  ...failed updating 12 targets...
>>>   >  >  ...skipped 27 targets...
>>>   >  >  ...updated 354 targets...
>>>   >  >
>>>   >  >  I searched the net and found out thread
>>>   >  >  http://article.gmane.org/gmane.comp.nlp.moses.user/5714 which says 
>>> to
>>>   >  >  use link=shared to build. I tried that (as can be seen in the 
>>> command)
>>>   >  >  but still errors appear.
>>>   >  >
>>>   >  >  Apparently Ubuntu has the latest version of libboost installed.
>>>   >  >
>>>   >  >  sudo apt-get install libboost-dev
>>>   >  >  Reading package lists... Done
>>>   >  >  Building dependency tree
>>>   >  >  Reading state information... Done
>>>   >  >  libboost-dev is already the newest version.
>>>   >  >  libboost-dev set to manually installed.
>>>   >  >  0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
>>>   >  >
>>>   >  >
>>>   >  >  I am attaching the output file (from which i removed quite a lot of
>>>   >  >  similar messages because the file was too long)
>>>   >  >
>>>   >  >  Could you please help me in solving this problem?
>>>   >  >
>>>   >  >  Thank you,
>>>   >  >  Stefan
>>>   >
>>>   >  --
>>>   >  Barry Haddow
>>>   >  University of Edinburgh
>>>   >  +44 (0) 131 651 3173
>>>
>>> _______________________________________________
>>> Moses-support mailing list
>>> [email protected]
>>> http://mailman.mit.edu/mailman/listinfo/moses-support
>>>
>>
>> --
>> Barry Haddow
>> University of Edinburgh
>> +44 (0) 131 651 3173
>>
> _______________________________________________
> 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