]> granicus.if.org Git - gc/commitdiff
gcconfig.h: Add machine description for Hexagon
authorLinas Vepstas <linasvepstas@gmail.com>
Mon, 10 Oct 2011 07:33:39 +0000 (11:33 +0400)
committerIvan Maidanski <ivmai@mail.ru>
Mon, 10 Oct 2011 07:33:39 +0000 (11:33 +0400)
include/private/gcconfig.h

index dcd6b2fa105732c34fb116e82f36d1888c9f80cc..2293583d48659e8744e565e7cdde3b8ebcb3f211 100644 (file)
 #   define NONSTOP
 #   define mach_type_known
 # endif
+# if defined(__hexagon__) && defined(LINUX)
+#    define HEXAGON
+#    define mach_type_known
+# endif
 
 /* Feel free to add more clauses here */
 
                     /*                  Handles 32 and 64-bit variants. */
                     /*             CRIS       ==> Axis Etrax            */
                     /*             M32R       ==> Renesas M32R          */
+                    /*             HEXAGON    ==> Qualcomm Hexagon      */
 
 
 /*
 #   endif
 # endif /* X86_64 */
 
+# ifdef HEXAGON
+#   define CPP_WORDSZ 32
+#   define MACH_TYPE "HEXAGON"
+#   define ALIGNMENT 4
+#   ifdef LINUX
+#       define OS_TYPE "LINUX"
+#       define LINUX_STACKBOTTOM
+#       define MPROTECT_VDB
+#       ifdef __ELF__
+#            define DYNAMIC_LOADING
+#            include <features.h>
+#            if defined(__GLIBC__) && __GLIBC__ >= 2
+#                define SEARCH_FOR_DATA_START
+#            else
+#                error --> unknown Hexagon libc configuration
+#            endif
+             extern int _end[];
+#            define DATAEND (ptr_t)(_end)
+#       else
+#            error --> bad Hexagon Linux configuration
+#       endif
+#   else
+#       error --> unknown Hexagon OS configuration
+#   endif
+# endif
+
 #if defined(LINUX_STACKBOTTOM) && defined(NO_PROC_STAT) \
     && !defined(USE_LIBC_PRIVATES)
     /* This combination will fail, since we have no way to get  */