Bug #1462
Build fails under GNU/Linux because Luabind
Status: | Closed | Start date: | 04/13/2012 | |
---|---|---|---|---|
Priority: | Low | Due date: | ||
Assignee: | kervala | % Done: | 100% |
|
Category: | Build | |||
Target version: | Version 0.9.0 |
Description
I was updating my Ryzom Client rebuilding it from the sources, but I got an error at 85%. I got lua 5.1.5-1, luabind 0.9.1-2 and luasocket 2.0.2-5 installed in my Parabola GNU/Linux-libre system right now.
uname -a
Linux Abril 3.3.0-1-LIBRE #1 SMP PREEMPT Mon Mar 19 17:07:51 UTC 2012 x86_64 Intel(R) Core(TM) i3 CPU M 330 @ 2.13GHz GenuineIntel GNU/Linux
jorge@Abril:~/MYAUR/ryzom/code/build$ cmake -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_NEL_TOOLS=OFF -DWITH_RYZOM_SERVER=OFF -WITH_RYZOM_TOOLS=ON -DWITH_STATIC=ON -WITH_RYZOM=ON -WITH_QT=ON -WITH_DRIVER_OPENGL=ON -WITH_DRIVER_OPENAL=ON -WITH_NEL=ON .. ...
History
#1 Updated by shackra about 3 years ago
- File build_output_complete.txt added
Here is the complete build output... see attached
#2 Updated by kervala about 3 years ago
Sorry, but your build log is not complete :( Please could you post only the end with the error (or from 10 lines before the error) ?
#3 Updated by shackra about 3 years ago
kervala wrote:
Sorry, but your build log is not complete :( Please could you post only the end with the error (or from 10 lines before the error) ?
I attached the complete log above, but, anyway, there is the end of the logs:
[ 83%] [ 83%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/main_loop.cpp.o Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/behaviour_context.cpp.o /home/jorge/MYAUR/ryzom/code/ryzom/client/src/login_patch.cpp: In member function ‘void CPatchManager::init(const std::vector<std::basic_string<char> >&, const string&, const string&)’: /home/jorge/MYAUR/ryzom/code/ryzom/client/src/login_patch.cpp:257:49: warning: integer overflow in expression [-Woverflow] In file included from /home/jorge/MYAUR/ryzom/code/ryzom/client/src/character_cl.h:34:0, from /home/jorge/MYAUR/ryzom/code/ryzom/client/src/character_cl.cpp:56: /home/jorge/MYAUR/ryzom/code/ryzom/client/src/entity_cl.h: In member function ‘void CCharacterCL::applyBehaviourFlyingHPs(const CBehaviourContext&, const MBEHAV::CBehaviour&, const std::vector<double>&)’: /home/jorge/MYAUR/ryzom/code/ryzom/client/src/entity_cl.h:990:100: warning: ‘deltaHPColor.NLMISC::CRGBA::A’ may be used uninitialized in this function [-Wmaybe-uninitialized] /home/jorge/MYAUR/ryzom/code/ryzom/client/src/character_cl.cpp:4525:10: note: ‘deltaHPColor.NLMISC::CRGBA::A’ was declared here In file included from /home/jorge/MYAUR/ryzom/code/ryzom/client/src/character_cl.h:34:0, from /home/jorge/MYAUR/ryzom/code/ryzom/client/src/character_cl.cpp:56: /home/jorge/MYAUR/ryzom/code/ryzom/client/src/entity_cl.h:990:100: warning: ‘deltaHPColor.NLMISC::CRGBA::B’ may be used uninitialized in this function [-Wmaybe-uninitialized] /home/jorge/MYAUR/ryzom/code/ryzom/client/src/character_cl.cpp:4525:10: note: ‘deltaHPColor.NLMISC::CRGBA::B’ was declared here In file included from /home/jorge/MYAUR/ryzom/code/ryzom/client/src/character_cl.h:34:0, from /home/jorge/MYAUR/ryzom/code/ryzom/client/src/character_cl.cpp:56: /home/jorge/MYAUR/ryzom/code/ryzom/client/src/entity_cl.h:990:100: warning: ‘deltaHPColor.NLMISC::CRGBA::G’ may be used uninitialized in this function [-Wmaybe-uninitialized] /home/jorge/MYAUR/ryzom/code/ryzom/client/src/character_cl.cpp:4525:10: note: ‘deltaHPColor.NLMISC::CRGBA::G’ was declared here In file included from /home/jorge/MYAUR/ryzom/code/ryzom/client/src/character_cl.h:34:0, from /home/jorge/MYAUR/ryzom/code/ryzom/client/src/character_cl.cpp:56: /home/jorge/MYAUR/ryzom/code/ryzom/client/src/entity_cl.h:990:100: warning: ‘deltaHPColor.NLMISC::CRGBA::R’ may be used uninitialized in this function [-Wmaybe-uninitialized] /home/jorge/MYAUR/ryzom/code/ryzom/client/src/character_cl.cpp:4525:10: note: ‘deltaHPColor.NLMISC::CRGBA::R’ was declared here [ 83%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/weather.cpp.o [ 83%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/ground_fx_manager.cpp.o [ 83%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/libwww.cpp.o [ 83%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/streamable_entity.cpp.o [ 83%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/stage.cpp.o [ 83%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/time_client.cpp.o [ 83%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/debug_client.cpp.o [ 83%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/sound_manager.cpp.o [ 83%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/impulse_decoder.cpp.o In file included from /home/jorge/MYAUR/ryzom/code/ryzom/client/src/sound_manager.cpp:25:0: /home/jorge/MYAUR/ryzom/code/ryzom/client/src/sound_manager.h: In constructor ‘CSoundManager::CSoundManager(NLMISC::IProgressCallback*)’: /home/jorge/MYAUR/ryzom/code/ryzom/client/src/sound_manager.h:357:13: warning: ‘CSoundManager::_UserEntitySoundLevel’ will be initialized after [-Wreorder] /home/jorge/MYAUR/ryzom/code/ryzom/client/src/sound_manager.h:348:20: warning: ‘CSoundManager::TMapIdToSource CSoundManager::_Sources’ [-Wreorder] /home/jorge/MYAUR/ryzom/code/ryzom/client/src/sound_manager.cpp:108:1: warning: when initialized here [-Wreorder] /home/jorge/MYAUR/ryzom/code/ryzom/client/src/sound_manager.cpp: In member function ‘void CSoundManager::removeSource(CSoundManager::TSourceId)’: /home/jorge/MYAUR/ryzom/code/ryzom/client/src/sound_manager.cpp:745:20: warning: converting to non-pointer type ‘unsigned int’ from NULL [-Wconversion-null] [ 84%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/attached_fx.cpp.o [ 84%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/door_manager.cpp.o [ 84%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/continent_manager_build.cpp.o [ 84%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/sheet_manager.cpp.o [ 84%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/app_bundle_utils.cpp.o [ 84%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/motion/user_controls.cpp.o [ 84%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/group_compas.cpp.o [ 84%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/dbctrl_sheet.cpp.o [ 84%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/view_bitmap_combo.cpp.o [ 84%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/group_in_scene_bubble.cpp.o [ 84%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/dbgroup_combo_box.cpp.o [ 84%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/interface_ddx.cpp.o [ 85%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/inventory_manager.cpp.o [ 85%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/item_consumable_effect.cpp.o [ 85%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/character_3d.cpp.o [ 85%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/group_header.cpp.o [ 85%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/register_interface_elements.cpp.o [ 85%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/interface_3d_scene.cpp.o [ 85%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/group_list.cpp.o [ 85%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/group_html_webig.cpp.o [ 85%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/dbview_bar3.cpp.o [ 85%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/ctrl_quad.cpp.o [ 85%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/bot_chat_page_trade.cpp.o [ 85%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/view_base.cpp.o [ 86%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/action_handler_game.cpp.o [ 86%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/animal_position_state.cpp.o [ 86%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/lua_helper.cpp.o /home/jorge/MYAUR/ryzom/code/ryzom/client/src/interface_v3/animal_position_state.cpp: In member function ‘virtual CEntityCL* CNamedEntityPositionState::getEntity()’: /home/jorge/MYAUR/ryzom/code/ryzom/client/src/interface_v3/animal_position_state.cpp:258:22: warning: converting ‘false’ to pointer type ‘CEntityCL*’ [-Wconversion-null] In file included from /usr/local/include/luabind/wrapper_base.hpp:31:0, from /usr/local/include/luabind/back_reference.hpp:27, from /usr/local/include/luabind/class.hpp:93, from /usr/local/include/luabind/luabind.hpp:28, from /home/jorge/MYAUR/ryzom/code/ryzom/client/src/interface_v3/lua_helper.cpp:43: /usr/local/include/luabind/detail/call_member.hpp:319:1: error: missing binary operator before token "(" In file included from /usr/local/include/luabind/back_reference.hpp:27:0, from /usr/local/include/luabind/class.hpp:93, from /usr/local/include/luabind/luabind.hpp:28, from /home/jorge/MYAUR/ryzom/code/ryzom/client/src/interface_v3/lua_helper.cpp:43: /usr/local/include/luabind/wrapper_base.hpp:92:1: error: missing binary operator before token "(" [ 86%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/skill_change_callback.cpp.o In file included from /usr/local/include/luabind/function.hpp:10:0, from /usr/local/include/luabind/class.hpp:94, from /usr/local/include/luabind/luabind.hpp:28, from /home/jorge/MYAUR/ryzom/code/ryzom/client/src/interface_v3/lua_helper.cpp:43: /usr/local/include/luabind/detail/call_function.hpp:326:1: error: missing binary operator before token "(" In file included from /usr/local/include/luabind/detail/constructor.hpp:12:0, from /usr/local/include/luabind/class.hpp:96, from /usr/local/include/luabind/luabind.hpp:28, from /home/jorge/MYAUR/ryzom/code/ryzom/client/src/interface_v3/lua_helper.cpp:43: /usr/local/include/luabind/wrapper_base.hpp:92:1: error: missing binary operator before token "(" In file included from /usr/local/include/luabind/class.hpp:107:0, from /usr/local/include/luabind/luabind.hpp:28, from /home/jorge/MYAUR/ryzom/code/ryzom/client/src/interface_v3/lua_helper.cpp:43: /usr/local/include/luabind/detail/call_member.hpp:319:1: error: missing binary operator before token "(" [ 86%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/group_map.cpp.o [ 86%] Building CXX object ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/yubo_chat.cpp.o make[2]: *** [ryzom/client/src/CMakeFiles/ryzom_client.dir/interface_v3/lua_helper.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [ryzom/client/src/CMakeFiles/ryzom_client.dir/all] Error 2 make: *** [all] Error 2 jorge@Abril:~/MYAUR/ryzom/code/build$
#4 Updated by kervala about 3 years ago
That's related to your luabind (that's not an official package apparently).
Please what luabind version are you using ?
#5 Updated by kervala about 3 years ago
You could compile a recent version using :
hg clone http://hg.kervala.net/packaging cd packaging/luabind mkdir build cd build cmake .. -DWITH_STATIC=ON make sudo make install
#6 Updated by csolisr about 3 years ago
- File ryzombugluabind.txt added
A little issue with that - Luabind is not compiling for me (see attachment). Feel free to add this as a new bug report elsewhere, I could not find a bug tracker specific to the Luabind project.
#7 Updated by kervala about 3 years ago
Thanks, I see that "#elif BOOST_PP_ITERATION_FLAGS() == 1" is not correctly interpreted by your compiler.
Could you give me your version of GCC please ?
Edit: I suspect it doesn't find the correct boost version
The problem is it doesn't find the macro BOOST_PP_ITERATION_FLAGS() but it's defined in boost since 2004 !
#8 Updated by kervala about 3 years ago
- Description updated (diff)
#9 Updated by Botanic about 3 years ago
I am having a issue with luabind as well i took a screenshot http://img857.imageshack.us/img857/3166/98271967.png
#10 Updated by kervala about 3 years ago
Botanic wrote:
I am having a issue with luabind as well i took a screenshot http://img857.imageshack.us/img857/3166/98271967.png
I'm sorry, but I'm not the Luabind developer.
If you want to use a recent Luabind version, you need a recent boost version :)
I'm using luabind version on my repository with more recent libraries (boost, lua, etc...) under all OSes (Windows, Ubuntu and Mac OS X) so I have no issue with it.
If you want to build it with older boost versions, you'll have to compile it yourself with the corresponding version.
#11 Updated by shackra about 3 years ago
kervala wrote:
Thanks, I see that "#elif BOOST_PP_ITERATION_FLAGS() == 1" is not correctly interpreted by your compiler.
Could you give me your version of GCC please ?
Edit: I suspect it doesn't find the correct boost version
The problem is it doesn't find the macro BOOST_PP_ITERATION_FLAGS() but it's defined in boost since 2004 !
both my self and CSolisr (is a friend with the same GNU/Linux-libre distro!) so our GCC is
jorge@Abril:~$ LC_ALL=C gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: /build/src/gcc-4.7-20120407/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --enable-libstdcxx-time --enable-gnu-unique-object --enable-linker-build-id --with-ppl --enable-cloog-backend=isl --enable-lto --enable-gold --enable-ld=default --enable-plugin --with-plugin-ld=ld.gold --with-linker-hash-style=gnu --disable-multilib --disable-libssp --disable-build-with-cxx --disable-build-poststage1-with-cxx --enable-checking=release Thread model: posix gcc version 4.7.0 20120407 (prerelease) (GCC) jorge@Abril:~$
here is my boost packages installed on GNU my system:
jorge@Abril:~$ LC_ALL=C pacman -Ss boost extra/boost 1.49.0-1.1 [installed] Free peer-reviewed portable C++ source libraries - Development extra/boost-libs 1.49.0-1.1 [installed] Free peer-reviewed portable C++ source libraries - Runtime community/boost-build 2.0_m12-3 [installed] Boost build system jorge@Abril:~$
#12 Updated by kervala about 3 years ago
- Category deleted (
Build) - Priority changed from High to Low
Sorry, but that's not related to Ryzom Core at all. It seems like Luabind is not compatible with GCC 4.7 or GCC 4.7 has some bugs, and we can't do anything about it.
Edit: Perhaps could you try to add :
#include <boost/preprocessor.hpp>
before
# include <boost/preprocessor/control/if.hpp>
in luabind/detail/call_member.hpp
#13 Updated by shackra about 3 years ago
I did the changes, but it keep failing at 86% :(
#14 Updated by kervala about 3 years ago
Please could you post a new log with your error at 86% ?
#15 Updated by shackra about 3 years ago
- File new_ryzom_86percent_crash_log.txt added
yes, I attach it in this answer!
btw, I'm trying contact the Luabind developers for any fix to Luabind and Gcc4.7
#16 Updated by blorby about 3 years ago
- File luabind-fix-boost-1.49-gcc-precompiler-issue.patch added
- File luabind-0.9.1.ebuild added
I fix the mentionned issue in luabind by adding a new level of #if #endif macros. This should also fix your compilation issue
Here is the patch, using this with luabind 0.9.1 i could compile ryzom on gentoo
I also add the luabind ebuild just in case.
#17 Updated by kervala about 3 years ago
blorby wrote:
I fix the mentionned issue in luabind by adding a new level of #if #endif macros. This should also fix your compilation issue
Here is the patch, using this with luabind 0.9.1 i could compile ryzom on gentooI also add the luabind ebuild just in case.
Thanks a lot for your patch :)
I applied it on my Hg : http://hg.kervala.net/packaging/
shackra> Please could you notice us if it worked for you ? Thanks.
#18 Updated by shackra about 3 years ago
kervala wrote:
blorby wrote:
I fix the mentionned issue in luabind by adding a new level of #if #endif macros. This should also fix your compilation issue
Here is the patch, using this with luabind 0.9.1 i could compile ryzom on gentooI also add the luabind ebuild just in case.
Thanks a lot for your patch :)
I applied it on my Hg : http://hg.kervala.net/packaging/
shackra> Please could you notice us if it worked for you ? Thanks.
sorry but, I'm confused, where is the source code to compile? there is a lot of directories and source code files :(
#19 Updated by kervala about 3 years ago
shackra wrote:
kervala wrote:
blorby wrote:
I fix the mentionned issue in luabind by adding a new level of #if #endif macros. This should also fix your compilation issue
Here is the patch, using this with luabind 0.9.1 i could compile ryzom on gentooI also add the luabind ebuild just in case.
Thanks a lot for your patch :)
I applied it on my Hg : http://hg.kervala.net/packaging/
shackra> Please could you notice us if it worked for you ? Thanks.
sorry but, I'm confused, where is the source code to compile? there is a lot of directories and source code files :(
You just need to go to "luabind" directory and compile with :
hg clone http://hg.kervala.net/packaging/ cd packaging/luabind mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX=/usr make sudo make install
#20 Updated by shackra about 3 years ago
YO!
Luabind receive the Shackra's it-works approval seals for both Parabola GNU/Linux-libre and Archlinux with GCC 4.7 :D
thanks Blorby :)
#21 Updated by kervala about 3 years ago
shackra wrote:
YO!
Luabind receive the Shackra's it-works approval seals for both Parabola GNU/Linux-libre and Archlinux with GCC 4.7 :D
thanks Blorby :)
Cool, thanks a lot for confirming :)
Great job Blorby :)
#22 Updated by shackra about 3 years ago
Why the compiling keeps failing? :(
#23 Updated by kervala about 3 years ago
Still the same error at the same location ?
#24 Updated by shackra about 3 years ago
kervala wrote:
Still the same error at the same location ?
yes sir!
I even compile your luabind and install it, but it didn't work either :(
#25 Updated by shackra about 3 years ago
btw, I have a little problem with the Blorby patch:
jorge@Abril:/usr/local/include/luabind$ sudo patch --ignore-whitespace -Np2 -i luabind-fix-boost-1.49-gcc-precompiler-issue.patch Contraseña: patching file detail/call_function.hpp Hunk #1 FAILED at 323. Hunk #2 FAILED at 440. 2 out of 2 hunks FAILED -- saving rejects to file detail/call_function.hpp.rej patching file detail/call_member.hpp Hunk #1 FAILED at 316. Hunk #2 FAILED at 360. 2 out of 2 hunks FAILED -- saving rejects to file detail/call_member.hpp.rej patching file wrapper_base.hpp Hunk #1 FAILED at 89. Hunk #2 succeeded at 189 with fuzz 2 (offset 1 line). 1 out of 2 hunks FAILED -- saving rejects to file wrapper_base.hpp.rej jorge@Abril:/usr/local/include/luabind$
Maybe I'm applying the patch in the wrong place, but, anyway...
#26 Updated by kervala about 3 years ago
You shouldn't apply the patch on installed files because you need to recompile libraries too.
You should download exactly the same version as blorby (luabind 0.9.1) and apply patch to it, then compile it and install it.
Btw if you apply this patch on my luabind version, it'll fail because it's already applied :p
#27 Updated by shackra about 3 years ago
kervala wrote:
You shouldn't apply the patch on installed files because you need to recompile libraries too.
You should download exactly the same version as blorby (luabind 0.9.1) and apply patch to it, then compile it and install it.
Btw if you apply this patch on my luabind version, it'll fail because it's already applied :p
Actually, I find out the patch was already applied by Archlinux's luabind maintainer two~ months ago. fail!.
So, I decided to deleted your luabind version in /usr/local/include and guess what happened!
Linking CXX executable ../../../bin/ryzom_client [100%] Built target ryzom_client
yup, all the time the problem was the files on /usr/local/include/luabind, the cmake's rules(?) was using that files instead of the luabind in /usr/include/luabind. Like 2~ months without playing Ryzom and was because this little problem!!.
I think we can close this bug now...
btw, I have some questions regarding Ryzom's compilation. I want to be the package maintainer of Ryzom in Parabola GNU/Linux-libre, so, I'll be on forums posting my doubts.
see ya!
#28 Updated by kervala about 3 years ago
- Category set to Build
- Status changed from New to Closed
- Assignee set to kervala
- Target version set to Version 0.9.0
- % Done changed from 0 to 100
Thanks for noticing us :)