exp(x) Posted March 9, 2008 I tried to compile revision 421 on 64-bit linux, but got the following:gcc -DPACKAGE_NAME="eternity" -DPACKAGE_TARNAME="eternity" -DPACKAGE_VERSION="3.33.50" -DPACKAGE_STRING="eternity\ 3.33.50" -DPACKAGE_BUGREPORT="haleyjd@hotmail.com" -DPACKAGE="eternity" -DVERSION="3.33.50" -I. -I/usr/include/SDL -I/usr/local/include/SDL -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -Wall -D_SDL_VER -DNDEBUG -DAMX_NODYNALOAD -DR_LINKEDPORTALS -DR_PORTALS -DOVER_UNDER -DPOLYOBJECTS -D_CONSOLE -DLINUX -lSDL_net -g -O2 -MT m_misc.o -MD -MP -MF .deps/m_misc.Tpo -c -o m_misc.o m_misc.c m_misc.c:142: warning: dereferencing type-punned pointer will break strict-aliasing rules m_misc.c:143: error: initializer element is not constant m_misc.c:143: error: (near initialization for ‘defaults[2].defaultvalue’) m_misc.c:313: warning: dereferencing type-punned pointer will break strict-aliasing rules m_misc.c:313: warning: dereferencing type-punned pointer will break strict-aliasing rules m_misc.c:327: warning: dereferencing type-punned pointer will break strict-aliasing rules m_misc.c:551: warning: dereferencing type-punned pointer will break strict-aliasing rules m_misc.c:552: error: initializer element is not constant m_misc.c:552: error: (near initialization for ‘defaults[56].defaultvalue’) m_misc.c:559: error: initializer element is not constant m_misc.c:559: error: (near initialization for ‘defaults[57].defaultvalue’) m_misc.c:565: warning: dereferencing type-punned pointer will break strict-aliasing rules m_misc.c:566: error: initializer element is not constant m_misc.c:566: error: (near initialization for ‘defaults[58].defaultvalue’) m_misc.c:573: error: initializer element is not constant m_misc.c:573: error: (near initialization for ‘defaults[59].defaultvalue’) m_misc.c:580: warning: dereferencing type-punned pointer will break strict-aliasing rules m_misc.c:581: error: initializer element is not constant m_misc.c:581: error: (near initialization for ‘defaults[60].defaultvalue’) m_misc.c:588: error: initializer element is not constant m_misc.c:588: error: (near initialization for ‘defaults[61].defaultvalue’) m_misc.c:922: warning: dereferencing type-punned pointer will break strict-aliasing rules m_misc.c:923: error: initializer element is not constant m_misc.c:923: error: (near initialization for ‘defaults[106].defaultvalue’) m_misc.c:930: error: initializer element is not constant m_misc.c:930: error: (near initialization for ‘defaults[107].defaultvalue’) m_misc.c:937: error: initializer element is not constant m_misc.c:937: error: (near initialization for ‘defaults[108].defaultvalue’) m_misc.c:944: error: initializer element is not constant m_misc.c:944: error: (near initialization for ‘defaults[109].defaultvalue’) m_misc.c:951: error: initializer element is not constant m_misc.c:951: error: (near initialization for ‘defaults[110].defaultvalue’) m_misc.c:958: error: initializer element is not constant m_misc.c:958: error: (near initialization for ‘defaults[111].defaultvalue’) m_misc.c:965: error: initializer element is not constant m_misc.c:965: error: (near initialization for ‘defaults[112].defaultvalue’) m_misc.c:972: error: initializer element is not constant m_misc.c:972: error: (near initialization for ‘defaults[113].defaultvalue’) m_misc.c:979: error: initializer element is not constant m_misc.c:979: error: (near initialization for ‘defaults[114].defaultvalue’) m_misc.c:986: error: initializer element is not constant m_misc.c:986: error: (near initialization for ‘defaults[115].defaultvalue’) m_misc.c:1247: warning: dereferencing type-punned pointer will break strict-aliasing rules m_misc.c:1254: warning: dereferencing type-punned pointer will break strict-aliasing rules m_misc.c:1571: warning: dereferencing type-punned pointer will break strict-aliasing rules m_misc.c:1585: warning: dereferencing type-punned pointer will break strict-aliasing rules m_misc.c:1586: error: initializer element is not constant m_misc.c:1586: error: (near initialization for ‘defaults[199].defaultvalue’) m_misc.c: In function ‘default_hash’: m_misc.c:1651: warning: division by zero m_misc.c: In function ‘M_SaveDefaults’: m_misc.c:1751: warning: cast to pointer from integer of different size m_misc.c:1776: warning: cast to pointer from integer of different size m_misc.c: In function ‘M_LoadDefaults’: m_misc.c:1950: warning: cast to pointer from integer of different size m_misc.c:1950: warning: cast from pointer to integer of different size make[2]: *** [m_misc.o] Error 1 make[2]: Leaving directory `/opt/eternity/source' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/opt/eternity/source' make: *** [all-recursive] Error 1 0 Share this post Link to post
Quasar Posted March 10, 2008 EE has not been ported to 64-bit so even if you get it to compile I would not expect it to work. The Doom codebase has serious problems with making data-type size assumptions. If short is not 16-bit, int is not 32-bit, and unsigned long is not 32-bit, most of the engine will stop working. Unfortunately most C compilers have chosen to promote long to a 64-bit type. The only way to remedy this is to change ALL variables in the program to use C99 portably-sized data types. As you can imagine, that will be quite an undertaking. Also, EE must be compiled with -fno-strict-aliasing for all GNU compiler targets. Doom has always relied on the ability to alias structure pointers and will continue to do so in order to achieve pseudo-polymorphism. GNU guys need to learn how to support strict aliasing and allow structure pointer casting at the same time IMO. 0 Share this post Link to post
exp(x) Posted March 10, 2008 :( Oh well, I was able to compile 32-bit, and it works fine. 0 Share this post Link to post
sgtcrispy Posted January 17, 2009 Quasar said:EE has not been ported to 64-bit so even if you get it to compile I would not expect it to work. Crap.... /me tries Wine.... 0 Share this post Link to post
exp(x) Posted January 17, 2009 sgtcrispy said:Crap.... /me tries Wine.... Heh, it's not hard to set up your distro to compile and run 32-bit binaries. Using wine is silly. 0 Share this post Link to post
sgtcrispy Posted January 17, 2009 exp(x) said:Heh, it's not hard to set up your distro to compile and run 32-bit binaries. Using wine is silly. True, but it worked! Better than I thought actually. Meh anyways... /me goes back to Cave Story. 0 Share this post Link to post