Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:lnussel:enemy-territory
enemy-territory
0003-enable-64bit-build.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0003-enable-64bit-build.diff of Package enemy-territory
From f4f288ffe87255bd611c07d4578080360dc47b02 Mon Sep 17 00:00:00 2001 From: Ludwig Nussel <ludwig.nussel@suse.de> Date: Fri, 13 Aug 2010 14:54:25 +0200 Subject: [PATCH 3/3] enable 64bit build --- src/SConscript.core | 13 +++++++++---- src/SConstruct | 15 +++++++++++---- src/client/snd_mix.c | 2 +- src/qcommon/vm.c | 19 +++++++++++++------ src/unix/unix_main.c | 14 ++++++++++++++ 5 files changed, 48 insertions(+), 15 deletions(-) diff --git a/src/SConscript.core b/src/SConscript.core index 3e09479..abe47d4 100644 --- a/src/SConscript.core +++ b/src/SConscript.core @@ -243,7 +243,7 @@ botlib_objs = [] for i in botlib_list: botlib_objs.append( botlib_env.StaticObject( os.path.join( 'botlib', i ) ) ) -if ( g_os == 'Linux' ): +if ( g_os == 'Linux' and cpu == 'x86'): nasm_env = Environment( tools = [ 'nasm' ] ) nasm_env['ASFLAGS'] = '-f elf' snapvector = nasm_env.StaticObject( 'unix/snapvector.asm' ) @@ -251,7 +251,7 @@ if ( g_os == 'Linux' ): # gas assembly, with preprocessing gas_env = Environment( tools = [ 'gcc', 'gas' ] ) gas_env.Append( CPPDEFINES = [ 'ELF' ] ) - gas_env.Append( ASFLAGS = [ '-m32', '-x', 'assembler-with-cpp' ] ) + gas_env.Append( ASFLAGS = [ '-x', 'assembler-with-cpp' ] ) matha = gas_env.StaticObject( 'unix/matha.spp' ) snd_mixa = gas_env.StaticObject( 'unix/snd_mixa.spp' ) @@ -291,7 +291,11 @@ if ( MASTER != '' ): source_list = server_list + qcommon_list if ( g_os == 'Linux' ): - source_list += linux_sources + snapvector + matha + source_list += linux_sources + if cpu == 'x86': + source_list += snapvector + matha + else: + local_env.Append( CPPDEFINES = [ 'NO_VM_COMPILED=1'] ) elif ( g_os == 'win32' ): source_list += win32_sources elif ( g_os == 'Darwin' ): @@ -313,7 +317,8 @@ if ( local_dedicated == 0 ): source_list += [ 'qcommon/dl_main_curl.c' ] source_list += curl_lib if ( g_os == 'Linux' ): - source_list += snd_mixa + if cpu == 'x86': + source_list += snd_mixa source_list += linux_full_sources if ( g_os == 'win32' ): source_list += win32_full_sources diff --git a/src/SConstruct b/src/SConstruct index dc69c93..125676f 100644 --- a/src/SConstruct +++ b/src/SConstruct @@ -92,16 +92,20 @@ EnsureSConsVersion( 0, 96 ) # CPU type cpu = commands.getoutput('uname -m') dll_cpu = '???' # grmbl, alternative naming for .so -exp = re.compile('.*i?86.*') +exp = re.compile('i.86') if exp.match(cpu): cpu = 'x86' dll_cpu = 'i386' +elif cpu == 'x86_64': + dll_cpu = 'x86_64' else: cpu = commands.getoutput('uname -p') if ( cpu == 'powerpc' ): cpu = 'ppc' dll_cpu = cpu else: + print >>sys.stderr, "unkown cpu: ", cpu + sys.exit(1) cpu = 'cpu' dll_cpu = cpu OS = commands.getoutput( 'uname -s' ) @@ -117,8 +121,8 @@ print 'cpu: ' + cpu # default settings ------------------------------- -CC = 'gcc -m32' -CXX = 'g++ -m32' +CC = 'gcc' +CXX = 'g++' JOBS = '1' BUILD = 'debug' DEDICATED = '2' @@ -256,7 +260,10 @@ elif ( BUILD == 'release' ): # -fschedule-insns2: implicit at -O3 # -funroll-loops ? # -mfpmath=sse -msse ? - OPTCPPFLAGS = [ '-O3', '-march=i686', '-Winline', '-ffast-math', '-fomit-frame-pointer', '-finline-functions', '-fschedule-insns2' ] + if ( cpu == 'x86'): + OPTCPPFLAGS = [ '-O3', '-march=i686', '-Winline', '-ffast-math', '-fomit-frame-pointer', '-finline-functions', '-fschedule-insns2' ] + else: + OPTCPPFLAGS = [ '-O3', '-Winline', '-ffast-math'] elif ( OS == 'Darwin' ): OPTCPPFLAGS = [] else: diff --git a/src/client/snd_mix.c b/src/client/snd_mix.c index d6d1a00..ab4c933 100644 --- a/src/client/snd_mix.c +++ b/src/client/snd_mix.c @@ -46,7 +46,7 @@ int *snd_p; int snd_linear_count; short *snd_out; -#ifdef __linux__ +#if defined __linux__ && defined __i386__ // snd_mixa.s void S_WriteLinearBlastStereo16( void ); diff --git a/src/qcommon/vm.c b/src/qcommon/vm.c index ba777fe..3b16af8 100644 --- a/src/qcommon/vm.c +++ b/src/qcommon/vm.c @@ -539,13 +539,17 @@ vm_t *VM_Create( const char *module, int ( *systemCalls )(int *), // copy or compile the instructions vm->codeLength = header->codeLength; +#ifdef NO_VM_COMPILED + if(interpret >= VMI_COMPILED) { + Com_Printf("Architecture doesn't have a bytecode compiler, using interpreter\n"); + interpret = VMI_BYTECODE; + } +#else if ( interpret >= VMI_COMPILED ) { vm->compiled = qtrue; VM_Compile( vm, header ); - } else { - vm->compiled = qfalse; - VM_PrepareInterpreter( vm, header ); } +#endif // free the original file FS_FreeFile( header ); @@ -703,10 +707,13 @@ int QDECL VM_Call( vm_t *vm, int callnum, ... ) { ( &callnum )[4], ( &callnum )[5], ( &callnum )[6], ( &callnum )[7], ( &callnum )[8], ( &callnum )[9], ( &callnum )[10], ( &callnum )[11], ( &callnum )[12] ); #endif - } else if ( vm->compiled ) { - r = VM_CallCompiled( vm, &callnum ); } else { - r = VM_CallInterpreted( vm, &callnum ); +#ifndef NO_VM_COMPILED + if ( vm->compiled ) { + r = VM_CallCompiled( vm, &callnum ); + } else +#endif + r = VM_CallInterpreted( vm, &callnum ); } if ( oldVM != NULL ) { // bk001220 - assert(currentVM!=NULL) for oldVM==NULL diff --git a/src/unix/unix_main.c b/src/unix/unix_main.c index 291b84b..1430e44 100644 --- a/src/unix/unix_main.c +++ b/src/unix/unix_main.c @@ -296,6 +296,8 @@ void Sys_Init( void ) { #if defined __linux__ #if defined __i386__ Cvar_Set( "arch", "linux i386" ); +#elif defined __x86_64__ + Cvar_Set( "arch", "linux x86_64" ); #elif defined __alpha__ Cvar_Set( "arch", "linux alpha" ); #elif defined __sparc__ @@ -701,9 +703,12 @@ qboolean CopyDLLForMod( char **p_fn, const char* gamedir, const char *pwdpath, c } // TTimo - Wolf MP specific, adding .mp. to shared objects +// XXX: use dll_cpu char* Sys_GetDLLName( const char *name ) { #if defined __i386__ return va( "%s.mp.i386.so", name ); +#elif defined __x86_64__ + return va( "%s.mp.x86_64.so", name ); #elif defined __ppc__ return va( "%s.mp.ppc.so", name ); #elif defined __axp__ @@ -1465,3 +1470,12 @@ qboolean Sys_IsNumLockDown( void ) { // Gordon: FIXME for timothee return qfalse; } + +#ifndef __i386__ +void Sys_SnapVector( float *v ) +{ + v[0] = rint(v[0]); + v[1] = rint(v[1]); + v[2] = rint(v[2]); +} +#endif -- 1.7.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor