From 84981fb2bdc06cb68af3a052e55fe2f3607cc91b Mon Sep 17 00:00:00 2001 From: Pedro Teixeira Date: Fri, 29 Mar 2019 02:56:25 -0700 Subject: [PATCH] Add minimal support for building the client for Itanium. --- common/clisync.h | 2 +- common/core_ogr_ng.cpp | 5 +++++ common/cputypes.h | 1 + makefile.vc | 24 ++++++++++++++++++++++++ 4 files changed, 31 insertions(+), 1 deletion(-) diff --git a/common/clisync.h b/common/clisync.h index 8c3c85158..4bbb083a6 100644 --- a/common/clisync.h +++ b/common/clisync.h @@ -182,7 +182,7 @@ return 1; } -#elif (CLIENT_CPU == CPU_X86) || (CLIENT_CPU == CPU_AMD64) || (CLIENT_CPU == CPU_CUDA) || (CLIENT_CPU == CPU_ATI_STREAM) || (CLIENT_CPU == CPU_OPENCL) || ((CLIENT_CPU == CPU_ARM) && !defined(__GNUC__)) +#elif (CLIENT_CPU == CPU_X86) || (CLIENT_CPU == CPU_AMD64) || (CLIENT_CPU == CPU_IA64) || (CLIENT_CPU == CPU_CUDA) || (CLIENT_CPU == CPU_ATI_STREAM) || (CLIENT_CPU == CPU_OPENCL) || ((CLIENT_CPU == CPU_ARM) && !defined(__GNUC__)) typedef volatile long fastlock_t; diff --git a/common/core_ogr_ng.cpp b/common/core_ogr_ng.cpp index 5896d9cab..08c05cfde 100644 --- a/common/core_ogr_ng.cpp +++ b/common/core_ogr_ng.cpp @@ -84,6 +84,8 @@ return "@(#)$Id: core_ogr_ng.cpp,v 1.47 2015/06/27 21:43:52 zebe Exp $"; } CoreDispatchTable *ogrng64_get_dispatch_table_cj1_generic(void); CoreDispatchTable *ogrng64_get_dispatch_table_cj1_sse2(void); CoreDispatchTable *ogrng64_get_dispatch_table_cj1_sse2_lzcnt(void); +#elif (CLIENT_CPU == CPU_IA64) + CoreDispatchTable *ogrng64_get_dispatch_table(void); #elif (CLIENT_CPU == CPU_SPARC) && (SIZEOF_LONG == 8) CoreDispatchTable *ogrng64_get_dispatch_table(void); #elif (CLIENT_CPU == CPU_S390X) && (SIZEOF_LONG == 8) @@ -644,6 +646,9 @@ int selcoreSelectCore_ogr_ng(Client *client, unsigned int threadindex, unit_func.ogr = ogrng64_get_dispatch_table(); coresel = 0; } +#elif (CLIENT_CPU == CPU_IA64) + unit_func.ogr = ogrng64_get_dispatch_table(); + coresel = 0; #elif (CLIENT_CPU == CPU_ARM64) && (SIZEOF_LONG == 8) unit_func.ogr = ogrng64_get_dispatch_table(); coresel = 0; diff --git a/common/cputypes.h b/common/cputypes.h index 8839f24ec..c53580ca8 100644 --- a/common/cputypes.h +++ b/common/cputypes.h @@ -616,6 +616,7 @@ (CLIENT_CPU == CPU_MIPS) || (CLIENT_CPU == CPU_ARM) || \ (CLIENT_CPU == CPU_AMD64) || (CLIENT_CPU == CPU_CUDA) || \ (CLIENT_CPU == CPU_ATI_STREAM) || (CLIENT_CPU == CPU_OPENCL) || \ + (CLIENT_CPU == CPU_IA64) || \ ((CLIENT_CPU == CPU_ALPHA) && ((CLIENT_OS == OS_WIN32) || \ (CLIENT_OS == OS_DEC_UNIX)))) #define CORES_SUPPORT_SMP diff --git a/makefile.vc b/makefile.vc index 257e85911..0fd0df7f0 100644 --- a/makefile.vc +++ b/makefile.vc @@ -4,7 +4,9 @@ # $Id: makefile.vc,v 1.141 2012/08/11 09:24:36 sla Exp $ # +#PROCESSOR_ARCHITECTURE = ALPHA #PROCESSOR_ARCHITECTURE = AMD64 +#PROCESSOR_ARCHITECTURE = IA64 #PROCESSOR_ARCHITECTURE = cuda #PROCESSOR_ARCHITECTURE = ATI_STREAM #PROCESSOR_ARCHITECTURE = OPENCL @@ -47,6 +49,11 @@ OPTS_CC_CPU = -D_AMD64_ -GS- OPTS_M_PLAT = AMD64 CHIPSRCPATH = plat/$(PROCESSOR_ARCHITECTURE) ZIPSUFFIX = win64-amd64 +!elseif "$(PROCESSOR_ARCHITECTURE)" == "IA64" +OPTS_CC_CPU = -D_IA64_ -GS- +OPTS_M_PLAT = IA64 +CHIPSRCPATH = plat/$(PROCESSOR_ARCHITECTURE) +ZIPSUFFIX = win64-ia64 !elseif "$(PROCESSOR_ARCHITECTURE)" == "cuda" # This assumes 32-bit Windows since there's no advantage to using 64-bit HAVE_OGR_CORES = 0 @@ -372,6 +379,12 @@ RC5_72_OBJS = \ $(OUTPUTPATH)/r72ansi2.obj \ $(OUTPUTPATH)/r72ansi4.obj OPTS_MSVC = $(OPTS_MSVC) -DHAVE_RC5_72_CORES +!elseif "$(PROCESSOR_ARCHITECTURE)" == "IA64" +RC5_72_OBJS = \ + $(OUTPUTPATH)/r72ansi1.obj \ + $(OUTPUTPATH)/r72ansi2.obj \ + $(OUTPUTPATH)/r72ansi4.obj +OPTS_MSVC = $(OPTS_MSVC) -DHAVE_RC5_72_CORES !elseif "$(PROCESSOR_ARCHITECTURE)" == "x86" RC5_72_OBJS = \ $(OUTPUTPATH)/r72-ses1.obj \ @@ -436,6 +449,11 @@ OGR_OBJS = \ $(OUTPUTPATH)/ogr_dat.obj \ $(OUTPUTPATH)/ogr_sup.obj !elseif "$(PROCESSOR_ARCHITECTURE)" == "AMD64" +OGR_OBJS = \ + $(OUTPUTPATH)/ogr.obj \ + $(OUTPUTPATH)/ogr_dat.obj \ + $(OUTPUTPATH)/ogr_sup.obj +!elseif "$(PROCESSOR_ARCHITECTURE)" == "IA64" OGR_OBJS = \ $(OUTPUTPATH)/ogr.obj \ $(OUTPUTPATH)/ogr_dat.obj \ @@ -478,6 +496,12 @@ OGRNG_OBJS = \ $(OUTPUTPATH)/ogrng64-cj1-sse2-lzcnt-asm.obj \ $(OUTPUTPATH)/ogrng_init.obj \ $(OUTPUTPATH)/ogrng_dat.obj +!elseif "$(PROCESSOR_ARCHITECTURE)" == "IA64" +OGRNG_OBJS = \ + $(OUTPUTPATH)/ogr_sup.obj \ + $(OUTPUTPATH)/ogrng-64.obj \ + $(OUTPUTPATH)/ogrng_init.obj \ + $(OUTPUTPATH)/ogrng_dat.obj !elseif "$(PROCESSOR_ARCHITECTURE)" == "x86" OGRNG_OBJS = \ $(OUTPUTPATH)/ogr_sup.obj \