2025-07-20 00:39 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0001639Spring engineGeneralpublic2009-10-06 00:12
ReporterGeneral Failure 
Assigned ToAuswaschbar 
PrioritynormalSeverityminorReproducibilityN/A
StatusresolvedResolutionfixed 
Product Version0.80.4.0 
Target Version0.81.0.0Fixed in Version 
Summary0001639: Can't build with boost 1.40
Descriptionchangelog of boost 1.40.0 says:
          + Automatically configure the float functions using template metaprogramming instead of trying to configure every possibility manually.

This doesn't work together with the clever trick in streflop_cond.h that is used to "switch between" the standard floating point functions and the streflop ones. Specifically, when compiling LuaParser.cpp, the compiler complains about not knowing which ldexp(), ldexpf(), frexp(), frexpf(),... to use when including boost/functional/hash/detail/hash_float_generic.hpp

I was planning to post the output of the build process to show you the exact error message but I accidentally deleted it together with boost 1.40.0. I don't have time to start compiling all that cruft again but I'm sure the problem is easy to reproduce.
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files

-Relationships
+Relationships

-Notes

~0004098

Auswaschbar (reporter)

That "clever trick" is called namespace pollution.

~0004152

Auswaschbar (reporter)

Does it work with latest master?

~0004156

General Failure (reporter)

I'd love to try it out, but I'm kinda tied up with work and personal obligations so I'm forced to suspend all game- and open-source related activities for a while. I'm sorry for raising an issue and then not following up on it.

At any rate, boost 1.40+ will inevitably become widespread in the near future, so there will be plenty of people to try it out soon enough.

~0004159

ingmar (reporter)

I tried current spring master, and it fails too:

[ 17%] Building CXX object rts/CMakeFiles/spring.dir/Lua/LuaVFS.cpp.o
In file included from /home/ingmar/development/git/spring/rts/System/float3.h:16,
                 from /home/ingmar/development/git/spring/rts/System/EventClient.h:11,
                 from /home/ingmar/development/git/spring/rts/Lua/LuaHandle.h:15,
                 from /home/ingmar/development/git/spring/rts/Lua/LuaVFS.cpp:19:
/home/ingmar/development/git/spring/rts/System/FastMath.h: In function 'float fastmath::sin(float)':
/home/ingmar/development/git/spring/rts/System/FastMath.h:239: error: call of overloaded 'fabs(float&)' is ambiguous
/usr/include/bits/mathcalls.h:182: note: candidates are: double fabs(double)
/home/ingmar/development/git/spring/rts/lib/streflop/SMath.h:451: note: streflop::Double streflop::fabs(streflop::Double)
/home/ingmar/development/git/spring/rts/lib/streflop/SMath.h:243: note: streflop::Simple streflop::fabs(streflop::Simple)
/usr/lib64/gcc/x86_64-pc-linux-gnu/4.4.1/../../../../include/c++/4.4.1/cmath:246: note: long double std::fabs(long double)
/usr/lib64/gcc/x86_64-pc-linux-gnu/4.4.1/../../../../include/c++/4.4.1/cmath:242: note: float std::fabs(float)
make[2]: *** [rts/CMakeFiles/spring.dir/Lua/LuaVFS.cpp.o] Error 1
make[1]: *** [rts/CMakeFiles/spring.dir/all] Error 2
make: *** [all] Error 2

~0004183

mammadori (reporter)

I confirm that latest (0a8b9131) git release builds with libboost 1.40;

However it crashes on game end screens (sigsegv, Lua bugs?) so do not hurry for a release :-)
+Notes

-Issue History
Date Modified Username Field Change
2009-09-10 06:00 General Failure New Issue
2009-09-10 11:48 Auswaschbar Note Added: 0004098
2009-09-18 18:10 Auswaschbar Note Added: 0004152
2009-09-19 20:28 Auswaschbar Status new => feedback
2009-09-20 20:08 General Failure Note Added: 0004156
2009-09-21 23:12 ingmar Note Added: 0004159
2009-10-03 10:46 imbaczek Target Version => 0.81.0.0
2009-10-06 00:07 mammadori Note Added: 0004183
2009-10-06 00:12 Auswaschbar Status feedback => resolved
2009-10-06 00:12 Auswaschbar Resolution open => fixed
2009-10-06 00:12 Auswaschbar Assigned To => Auswaschbar
+Issue History