>From c526e24cb06c77de257d705378d81334fc417098 Mon Sep 17 00:00:00 2001 From: Michael Shigorin Date: Fri, 17 Mar 2017 15:56:15 +0300 Subject: [PATCH] Imake.cf, Imake.tmpl, linux.cf, xorg.cf: add e2k support Elbrus 2000 is a 64-bit VLIW architecture originating from Russia. See-also: http://mcst.ru --- Imake.cf | 4 ++++ Imake.tmpl | 2 ++ linux.cf | 29 +++++++++++++++++++++++++++-- xorg.cf | 6 ++++++ 4 files changed, 39 insertions(+), 2 deletions(-) diff --git a/Imake.cf b/Imake.cf index 0942fb0..09e5264 100644 --- a/Imake.cf +++ b/Imake.cf @@ -1037,6 +1037,10 @@ XCOMM Keep cpp from replacing path elements containing i486/i586/i686 # define AArch64Architecture # undef __aarch64__ # endif +# if defined(__e2k__) +# undef __e2k__ +# define E2KArchitecture +# endif #endif /* linux || __GLIBC__ */ #if (defined(__Lynx__) || defined(Lynx)) && (defined(i386) || defined(__i386__) || defined(__x86__) || defined(__powerpc__) || defined(__sparc__) || defined(sparc)) diff --git a/Imake.tmpl b/Imake.tmpl index 9d02cb6..96c3d30 100644 --- a/Imake.tmpl +++ b/Imake.tmpl @@ -536,6 +536,8 @@ XCOMM the platform-specific parameters - edit site.def to change #define ByteOrder X_LITTLE_ENDIAN #elif defined(SuperHebArchitecture) #define ByteOrder X_BIG_ENDIAN +#elif defined(E2KArchitecture) +#define ByteOrder X_LITTLE_ENDIAN #endif #endif /* ByteOrder */ X_BYTE_ORDER = ByteOrder diff --git a/linux.cf b/linux.cf index 7845325..6e05f35 100644 --- a/linux.cf +++ b/linux.cf @@ -309,7 +309,7 @@ InstallNamedTargetNoClobber(install,file.ad,$(INSTAPPFLAGS),$(XAPPLOADDIR),class /* On x86, determine whether to build with MTRR support */ #ifndef HasMTRRSupport -# if defined (i386Architecture) || defined (AMD64Architecture) +# if defined (i386Architecture) || defined (AMD64Architecture) || defined (E2KArchitecture) # if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion > 1) || \ (OSMajorVersion == 2 && OSMinorVersion == 1 && OSTeenyVersion >= 99) # define HasMTRRSupport YES @@ -382,6 +382,8 @@ InstallNamedTargetNoClobber(install,file.ad,$(INSTAPPFLAGS),$(XAPPLOADDIR),class # define BuildXF86DRI NO # elif defined(AMD64Architecture) # define BuildXF86DRI YES +# elif defined(E2KArchitecture) +# define BuildXF86DRI YES # else # define BuildXF86DRI NO # endif @@ -578,7 +580,7 @@ InstallNamedTargetNoClobber(install,file.ad,$(INSTAPPFLAGS),$(XAPPLOADDIR),class #define MkdirHierCmd mkdir -p #ifndef HaveLib64 -# if defined (AMD64Architecture) || defined (s390xArchitecture) || defined (Ppc64Architecture) || defined (AArch64Architecture) +# if defined (AMD64Architecture) || defined (s390xArchitecture) || defined (Ppc64Architecture) || defined (AArch64Architecture) || defined (E2KArchitecture) # define HaveLib64 YES # else # define HaveLib64 NO @@ -707,6 +709,13 @@ InstallNamedTargetNoClobber(install,file.ad,$(INSTAPPFLAGS),$(XAPPLOADDIR),class # define LdCmd CcCmd -nostdlib # define AsmDefines -DUSE_GAS -U__ELF__ # endif /* AMD64Architecture */ +# ifdef E2KArchitecture +# define CcCmd gcc +# define CplusplusCmd g++ +# define AsCmd CcCmd -c -x assembler +# define LdCmd CcCmd -nostdlib +# define AsmDefines -DUSE_GAS -U__ELF__ +# endif /* E2KArchitecture */ # endif /* UseElfFormat */ #else # if UseElfFormat @@ -753,6 +762,13 @@ InstallNamedTargetNoClobber(install,file.ad,$(INSTAPPFLAGS),$(XAPPLOADDIR),class # define LdCmd CcCmd -nostdlib # define AsmDefines -D__ELF__ # endif /* AMD64Architecture */ +# ifdef E2KArchitecture +# define CcCmd gcc +# define CplusplusCmd g++ +# define AsCmd CcCmd -c -x assembler +# define LdCmd CcCmd -nostdlib +# define AsmDefines -D__ELF__ +# endif /* E2KArchitecture */ # else # define CcCmd gcc # define AsCmd CcCmd -c -x assembler @@ -994,6 +1010,15 @@ InstallNamedTargetNoClobber(install,file.ad,$(INSTAPPFLAGS),$(XAPPLOADDIR),class # define ServerExtraDefines -DGCCUSESGAS XFree86ServerDefines -D_XSERVER64 #endif /* AArch64Architecture */ +#ifdef E2KArchitecture +# ifndef OptimizedCDebugFlags +# define OptimizedCDebugFlags DefaultGcc2E2KOpt +# endif +# define LinuxMachineDefines -D__e2k__ +# define ServerOSDefines XFree86ServerOSDefines -DDDXTIME +# define ServerExtraDefines -DGCCUSESGAS XFree86ServerDefines -D_XSERVER64 +#endif /* E2KArchitecture */ + #ifndef StandardDefines # ifdef __linux__ # define StandardDefines -Dlinux LinuxMachineDefines LinuxSourceDefines diff --git a/xorg.cf b/xorg.cf index 3b0f10b..ea88c05 100644 --- a/xorg.cf +++ b/xorg.cf @@ -1603,6 +1603,12 @@ XFREE86JAPANESEDOCDIR = $(DOCDIR)/Japanese # endif #endif +#if HasGcc2 && defined(E2KArchitecture) +# ifndef DefaultGcc2E2KOpt +# define DefaultGcc2E2KOpt -O2 -fno-strength-reduce GccAliasingArgs +# endif +#endif + #ifndef DefaultGcc2DebugOpt # define DefaultGcc2DebugOpt -g #endif -- 2.7.4