nelina Posted February 21, 2006 Share Posted February 21, 2006 Hello! First of all, thank you for creating this exciting project! After reading the install and compile instructions I seem to have some trouble compiling GemRB on my SuSE 9.3 64 bit linux with gcc version: gcc (GCC) 3.3.5 20050117 (prerelease) (SUSE Linux) Most of the libs on my machine are the 64 bit versions, but as far as I know I also have the 32 bit ones somewhere for compatibility. I am almost certain I have recent versions of the libs of SDL 1.2, OpenAL, Python 2.2 and zlib installed. When I make GemRB I run into the following: make[4]: Entering directory `(removed path)Zaurus/gemrb-0.2.6/gemrb/plugins/Core' /bin/sh ../../../libtool --mode=link g++ -g -O2 -I/usr/include/SDL -D_REENTRANT -Werror -Wall -W -Wpointer-arith -Wcast-align -ansi -pedantic -Wno-format-y2k -Wno-long-long -L/usr/lib -o libgemrb_core.la -rpath /usr/local/lib -version-info 0:0:0 -ldl -lpthread Progressbar.lo ScriptedAnimation.lo GameScript.lo Actions.lo Triggers.lo GSUtils.lo GlobalTimer.lo Polygon.lo Game.lo GameControl.lo Variables.lo SaveGameIterator.lo DataFileMgr.lo TableMgr.lo MusicMgr.lo SoundMgr.lo Console.lo ScriptEngine.lo TextEdit.lo EventMgr.lo ScrollBar.lo TextArea.lo Slider.lo Label.lo WindowMgr.lo Window.lo VideoModes.lo VideoMode.lo Video.lo VFS.lo TileSetMgr.lo TileOverlay.lo TileMapMgr.lo TileMap.lo Tile.lo WorldMap.lo WorldMapMgr.lo SymbolMgr.lo StringMgr.lo Sprite2D.lo ResourceMgr.lo Region.lo PluginMgr.lo Plugin.lo MoviePlayer.lo MemoryStream.lo MapMgr.lo Map.lo InterfaceDesc.lo Interface.lo ImageMgr.lo Font.lo FileStream.lo FactoryObject.lo Factory.lo DataStream.lo Core.lo Control.lo Compressor.lo Class_ID.lo ClassDesc.lo CharAnimations.lo CachedFileStream.lo Button.lo ArchiveImporter.lo AnimationMgr.lo AnimationFactory.lo Animation.lo ActorMgr.lo Actor.lo ActorBlock.lo SaveGameMgr.lo DialogMgr.lo Dialog.lo SpellMgr.lo Spell.lo ItemMgr.lo Item.lo StoreMgr.lo Store.lo Inventory.lo Spellbook.lo Ambient.lo WorldMapControl.lo MapControl.lo AmbientMgr.lo Effect.lo EffectQueue.lo Cache.lo ControlAnimation.lo EffectMgr.lo OpcodeMgr.lo SpriteCover.lo -lz -lvorbis -lvorbisfile g++ -shared -nostdlib /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../lib64/crti.o /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/crtbeginS.o .libs/Progressbar.o .libs/ScriptedAnimation.o .libs/GameScript.o .libs/Actions.o .libs/Triggers.o .libs/GSUtils.o .libs/GlobalTimer.o .libs/Polygon.o .libs/Game.o .libs/GameControl.o .libs/Variables.o .libs/SaveGameIterator.o .libs/DataFileMgr.o .libs/TableMgr.o .libs/MusicMgr.o .libs/SoundMgr.o .libs/Console.o .libs/ScriptEngine.o .libs/TextEdit.o .libs/EventMgr.o .libs/ScrollBar.o .libs/TextArea.o .libs/Slider.o .libs/Label.o .libs/WindowMgr.o .libs/Window.o .libs/VideoModes.o .libs/VideoMode.o .libs/Video.o .libs/VFS.o .libs/TileSetMgr.o .libs/TileOverlay.o .libs/TileMapMgr.o .libs/TileMap.o .libs/Tile.o .libs/WorldMap.o .libs/WorldMapMgr.o .libs/SymbolMgr.o .libs/StringMgr.o .libs/Sprite2D.o .libs/ResourceMgr.o .libs/Region.o .libs/PluginMgr.o .libs/Plugin.o .libs/MoviePlayer.o .libs/MemoryStream.o .libs/MapMgr.o .libs/Map.o .libs/InterfaceDesc.o .libs/Interface.o .libs/ImageMgr.o .libs/Font.o .libs/FileStream.o .libs/FactoryObject.o .libs/Factory.o .libs/DataStream.o .libs/Core.o .libs/Control.o .libs/Compressor.o .libs/Class_ID.o .libs/ClassDesc.o .libs/CharAnimations.o .libs/CachedFileStream.o .libs/Button.o .libs/ArchiveImporter.o .libs/AnimationMgr.o .libs/AnimationFactory.o .libs/Animation.o .libs/ActorMgr.o .libs/Actor.o .libs/ActorBlock.o .libs/SaveGameMgr.o .libs/DialogMgr.o .libs/Dialog.o .libs/SpellMgr.o .libs/Spell.o .libs/ItemMgr.o .libs/Item.o .libs/StoreMgr.o .libs/Store.o .libs/Inventory.o .libs/Spellbook.o .libs/Ambient.o .libs/WorldMapControl.o .libs/MapControl.o .libs/AmbientMgr.o .libs/Effect.o .libs/EffectQueue.o .libs/Cache.o .libs/ControlAnimation.o .libs/EffectMgr.o .libs/OpcodeMgr.o .libs/SpriteCover.o -L/usr/lib -ldl -lpthread -lz /usr/lib64/libvorbis.so /usr/lib64/libvorbisfile.so -L/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5 -L/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../x86_64-suse-linux/lib -L/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../lib64 -L/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../.. -L/lib/../lib64 -L/usr/lib/../lib64 /usr/lib/libstdc++.so -lm -lc -lgcc_s /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/crtendS.o /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../lib64/crtn.o -Wl,-soname -Wl,libgemrb_core.so.0 -o .libs/libgemrb_core.so.0.0.0 /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /usr/lib/libdl.so when searching for -ldl /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /usr/lib/libdl.a when searching for -ldl /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for -lpthread /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /usr/lib/libpthread.a when searching for -lpthread /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /usr/lib/libz.so when searching for -lz /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /usr/lib/libz.a when searching for -lz /usr/lib/libstdc++.so: could not read symbols: File in wrong format collect2: ld returned 1 exit status make[4]: *** [libgemrb_core.la] Error 1 Any clue what I am doing wrong? Link to comment
Avenger Posted February 22, 2006 Share Posted February 22, 2006 The bottom of your log shows that not sdl, openal, or python what are wrong, but your standard libs. Can you compile any c++ program? Btw, i recommend python 2.3 or 2.4. It should compile with 2.2, but was not tested only on Windows. I can only guess: maybe you need libstdc++-devel package (for 64 bit). Link to comment
nelina Posted March 1, 2006 Author Share Posted March 1, 2006 Thank you, that is what I suspected. The wierd thing is that I use that machine to compile a lot of code for my work, these are all 64 bit programs and libstdc++ for 64 bit is installed afaik. Anyways I will try again on a private machine where I have more freedom to change packages. Either way once it compiles, I will post any progress on crosscompiling it for the Zaurus SL-C1000 ( http://en.wikipedia.org/wiki/Sharp_Zaurus ). That must be sweet, a palmtop baldurs gate and torment! Link to comment
Avenger Posted March 7, 2006 Share Posted March 7, 2006 Well, how much memory, hdd you got. And how big is the screen resolution. A complete BG install is 1G, GemRB requires lots of memory (more than the original engine, due to weaker optimisation) and at least 640x480 with 32 bits colour. (i don't know whether 16 bits colour works). Link to comment
nelina Posted March 10, 2006 Author Share Posted March 10, 2006 The compilation problem turned indeed out to be a conflict between 64 and 32 bit libraries, libtool looked in the wrong path first and then the symbols did not match. make LDFLAGS="-L/lib64 -L/usr/lib64" instead of make, solved the problem. Also LDFLAGS="-L/lib64 -L/usr/lib64" ./configure and then invoking make is an alternative method to get it working. You are right, in the Zaurus there is only 64 Mb of memory and that can be a big problem. Some people use swap to SD or CF to increase their memory, but this is detrimental to the lifetime of the memory cards. I have a 1 Gb SD card (high speed) on it now as my filesystem (no harddisk), but I can plug in more with a CF card (2 or 4 Gb are not that expensive, 8 is though) or an USB harddisk (the Zaurus can be master on an USB chain to store it on and to swap). The C3100 versions of the Zaurus have an internal 4 Gb harddisk and C3200 have 6 Gb but I do not have either model (C1000). The display is 640 x 480, 3,7", 65,536-color so the resolution is fine but the number of colours is not. I think SDL has features to automatically round colours to the nearest equivalent, because the SDL_Color definitions are format independent, or is this more involved? http://www.pdaxrom.org/ is the ROM I use. On performance evaluation: there is an almost full-speed playstation 1 emulator and quake 1 and 2 run (no idea of the speeds but I think Q1 goes pretty decent) so I hope that the memory problems will not be as bad as I fear they may be and performance will be in playable levels. Either way as long as it works I would be happy, it's fun to try either way Setting up a cross compiler now. Link to comment
nelina Posted March 16, 2006 Author Share Posted March 16, 2006 Just a little update, between being busy with way too many other things I am messing around with the cross compiler. Created the OpenAL library for ARM, but the paths of make install are all messed up so I need to copy all the proper files the right way by hand (and somehow I seem to have lost track of where I put the proper AL include files). Something still goes wrong when compiling the ALUT library, and since that one is required I can't configure succesfully yet The cross compiler makes a bit of a mess with paths in that it is set up strangely and I don't want any ARM libraries in the x86_64 system paths of course. Either way, work in progress Link to comment
Avenger Posted March 17, 2006 Share Posted March 17, 2006 GemRB requires openal only for the ACMImporter module, you can safely leave that module out and GemRB will still run. It will load the NullSound module. Link to comment
nelina Posted March 17, 2006 Author Share Posted March 17, 2006 Cool thank you! I'll try that first then. Is there an easy --disable-FEATURE option in the configure script for that or do I need to do this manually? So far I tried removing ACMimporter from gemrb/plugins/Makefile.am and dnl Check for OpenAL, fail if not found. #AC_CHECK_LIB([alut], [alutInit], [ $(which true) ], [AC_MSG_ERROR([ #*** You need OpenAL (www.openal.org) to compile GemRB #])]) GEMRB_CHECK_ALUT() from the configure.in but that didn't work for me yet, so going to try some other things. EDIT: Ah but I didn't try those things at the same time, so trying again EDIT2: No that didn't work yet, I need to regenerate the configure script from my configure.in. By the way if someone else is trying this as well, my configure command now uses the following command lines for configuring everything for cross compiling: export PATH=/opt/cross/arm/3.4.5-xscale-softvfp/bin:$PATH export QTDIR=/opt/cross/arm/3.4.5-xscale-softvfp/armv5tel-cacko-linux/qt export KDEDIR=/opt/cross/arm/3.4.5-xscale-softvfp/armv5tel-cacko-linux/qt export X11INC=/opt/cross/arm/3.4.5-xscale-softvfp/armv5tel-cacko-linux/include export X11LIB=/opt/cross/arm/3.4.5-xscale-softvfp/armv5tel-cacko-linux/lib export PKG_CONFIG_PATH=/opt/cross/arm/3.4.5-xscale-softvfp/armv5tel-cacko-linux/lib/pkgconfig export LD_LIBRARY_PATH=/opt/cross/arm/3.4.5-xscale-softvfp/lib LDFLAGS=-Wl,-rpath-link,/opt/arm/3.4.5-xscale-softvfp/armv5tel-cacko-linux/lib/X11 ./configure --host=armv5tel-cacko-linux --build=i686-linux --x-includes=/opt/arm/3.4.5-xscale-softvfp/armv5tel-cacko-linux/include/X11 --x-libraries=/opt/arm/3.4.5-xscale-softvfp/armv5tel-cacko-linux/lib/X11 I did manage to make the openal library, but alut still gives problems because some struct in time.h was undefined. But then I found out that there is no ALSA library yet for the rom I am using (grrr) but there is for another (openzaurus) but I need to change my entire build system if I want to use that rom instead (so using nullsound is much easier for now). Link to comment
nelina Posted March 20, 2006 Author Share Posted March 20, 2006 To give a little update: There was another bug in the SDK that I am using, after changing the .am file, I wanted to run automake and autoconf. gemrb-0.2.6> automake autom4te: need GNU m4 1.4 or later: /opt/native/i686/3.4.5-2.2.5/bin/m4 automake: autoconf failed with exit status: 1 gemrb-0.2.6> which m4 /usr/bin/m4 So the solution is: M4=`which m4` automake However I now get gemrb-0.2.6> M4=`which m4` automake configure.in:35: version mismatch. This is Automake 1.9.2, configure.in:35: but the definition used by this AM_INIT_AUTOMAKE configure.in:35: comes from Automake 1.7.9. You should recreate configure.in:35: aclocal.m4 with aclocal and run automake again. After doing M4=`which m4` aclocal M4=`which m4` automake M4=`which m4` autoconf Then configure passes this point... and gives an error that the python version is too old So I guess I am going to make the new version of Python now. Edit: Seems like Python 2.4 is not found because the configure script looks in a different dir. For progress see: http://www.oesf.org/forums/index.php?act=S...t=0#entry119339 from now on. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.