From: Shea Levy Date: Sun, 18 Feb 2018 06:37:12 +0000 (-0500) Subject: Add initial RISC-V support X-Git-Tag: v7.6.8~97 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=05bc4a65b8bfe415c1a2906a5842c0ec868bfde5;p=gc Add initial RISC-V support (back-port of commits 4f7f0eebd, 3b008f79e from 'master') Issue #208 (bdwgc). * include/private/gcconfig.h [__riscv && LINUX] (RISCV, mach_type_known): Define macro. * include/private/gcconfig.h [RISCV] (MACH_TYPE): Likewise. * include/private/gcconfig.h [RISCV && LINUX] (OS_TYPE, DATASTART, LINUX_STACKBOTTOM, DYNAMIC_LOADING): Likewise. * include/private/gcconfig.h [RISCV && LINUX] (__data_start): Declare external variable. * include/private/gcconfig.h [RISCV] (CPP_WORDSZ, ALIGNMENT): Define using __riscv_xlen. --- diff --git a/include/private/gcconfig.h b/include/private/gcconfig.h index 052e773a..30d4ef31 100644 --- a/include/private/gcconfig.h +++ b/include/private/gcconfig.h @@ -598,6 +598,10 @@ # endif # define mach_type_known # endif +# if defined(__riscv) && defined(LINUX) +# define RISCV +# define mach_type_known +# endif # if defined(SYMBIAN) # define mach_type_known @@ -2667,6 +2671,19 @@ # endif # endif +# ifdef RISCV +# define MACH_TYPE "RISC-V" +# define CPP_WORDSZ __riscv_xlen /* 32 or 64 */ +# define ALIGNMENT (CPP_WORDSZ/8) +# ifdef LINUX +# define OS_TYPE "LINUX" + extern int __data_start[]; +# define DATASTART ((ptr_t)__data_start) +# define LINUX_STACKBOTTOM +# define DYNAMIC_LOADING +# endif +# endif /* RISCV */ + #if defined(__GLIBC__) && !defined(DONT_USE_LIBC_PRIVATES) /* Use glibc's stack-end marker. */ # define USE_LIBC_PRIVATES