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
