Latest Posts

Topic: Libboost version

lilovip

Topic Opener
Joined: 2009-11-04, 02:45
Posts: 9
Ranking
Pry about Widelands
Posted at: 2009-11-06, 05:12

I'm porting Widelands to Maemo GNU/Linux (OS for mobile Nokia devices). SCons sayd I need libboost version >=1.35, but we have only 1.33 packages for Maemo. So, my question is: do I really need libboost >= 1.35 for any objective reason or it is just "we didn't test it under libboost < 1.35" requirement?


Top Quote
Nasenbaer
Avatar
Joined: 2009-02-21, 18:17
Posts: 828
Ranking
One Elder of Players
Location: Germany
Posted at: 2009-11-06, 11:15

Hi lilovip,

Actually you should be able to compile and run Widelands with older libboost versions, however the reason we set requierements to >= 1.35 was a major bug in libboost.

Well, I can't remember the problem at the moment, but it will definitely lead to more unstability of Widelands.

So best just remove the check from /build/scons-tools/scons-configure.py and check whether it runs smooth.

Further - Widelands unfortunally needs a lot of CPU an RAM, so best try to directly compile in relase mode (debug mode is much slower).

Wish you good luck face-wink.png

Cheers

Nasenbaer


Top Quote
lilovip

Topic Opener
Joined: 2009-11-04, 02:45
Posts: 9
Ranking
Pry about Widelands
Posted at: 2009-11-08, 15:24

Thanks for answering.

Actually, Widelands uses only "boost/test" and "boost/program_options", I just changed to "boost/test/included" so "boost/test" whole implementation in the headers now. "boost/program_options" can't be implemented in the headers, so I linked it statically. However, my changings in SCons files to link it as static are very terrible (other libraries linked as dynamic):

===SConstruct===

env=conf.Finish()

env['LIBS'].remove('boost_program_options')

======

===src/SConscript===

libs+=["/usr/local/lib/libboost_program_options.a"]

======

Is there good way to do that? Libboost 1.33 is in non-official repository, so I think static link is the best solution.

However, compilation is done now (pakaging is not yet). Game runs and stable. Animation is acceptable slow cause device hasn't 2D acceleration at all.

We have gcc-3.4 (it's hard, I know), so I have made many small changes in the code for compatibility. They don't influence to program work, so I think they are usefull for the Widelands portability. Where I can show my .diff file?

Best regards, Ilia.


Top Quote
sigra

Joined: 2009-03-05, 19:02
Posts: 130
Ranking
At home in WL-forums
Location: Orsa
Posted at: 2009-11-08, 15:50

lilovip wrote: We have gcc-3.4 (it's hard, I know), so I have made many small changes in the code for compatibility. They don't influence to program work, so I think they are usefull for the Widelands portability. Where I can show my .diff file?

We have trackers at !SourceForge. One for bug reports and one for feature requests. It is possible to report a bug or request a feature and then attach a .diff file.

Edited: 2009-11-08, 18:04

Top Quote
sigra

Joined: 2009-03-05, 19:02
Posts: 130
Ranking
At home in WL-forums
Location: Orsa
Posted at: 2009-11-08, 18:25

lilovip wrote: my question is: do I really need libboost >= 1.35 for any objective reason or it is just "we didn't test it under libboost < 1.35" requirement?

Just take a look at the place that checks for boost 1.35. Grepping for 35 in build/scons-* will find it. I just did and found that it is checked at build/scons-tools/scons_configure.py:334. So I looked at svn annotate for that line:

http://widelands.svn.sourceforge.net/viewvc/widelands/trunk/build/scons-tools/scons_configure.py?view=annotate#l334

There I saw that I changed it in revision 3643. So I looked at the log message:

http://widelands.svn.sourceforge.net/viewvc/widelands/trunk/build/scons-tools/scons_configure.py?view=log#rev3643

It says:

"Require boost version at least 1.35, which fixes boost bug #1278 (in boost revision 41254). This caused a compilation failure in interactive_player.cc since revision 3573. Reported by Emperor2k3 and others."

So I look at boost bug #1278: https://svn.boost.org/trac/boost/ticket/1278

There I read that the bug was about a name shadowing another name. So it would be possible work around that problem by removing -Werror=shadow from the compile command line when building Widelands (grep Werror=shadow build/scons-* -r).


Top Quote
lilovip

Topic Opener
Joined: 2009-11-04, 02:45
Posts: 9
Ranking
Pry about Widelands
Posted at: 2009-11-09, 07:38

Big thanks for answers, sigra. I see you have very detailed SVN and tracker, if we can find reasons for so small changings.


Top Quote