summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLinas Vepstas <linasvepstas@gmail.com>2011-10-10 09:33:39 +0200
committerIvan Maidanski <ivmai@mail.ru>2011-10-17 19:16:14 +0200
commitf158c32ce100c22fc5be265c364d242fedd6d0ac (patch)
tree130c18d909786c1f68a8dc92a619098aa901947a /include
parent1db3adbe1faf011b08716a87b97f80871c4766f7 (diff)
gcconfig.h: Add machine description for Hexagon
Diffstat (limited to 'include')
-rw-r--r--include/private/gcconfig.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/include/private/gcconfig.h b/include/private/gcconfig.h
index c524f71..0ff805a 100644
--- a/include/private/gcconfig.h
+++ b/include/private/gcconfig.h
@@ -497,6 +497,10 @@
# 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 */
@@ -547,6 +551,7 @@
/* Handles 32 and 64-bit variants. */
/* CRIS ==> Axis Etrax */
/* M32R ==> Renesas M32R */
+ /* HEXAGON ==> Qualcomm Hexagon */
/*
@@ -2241,6 +2246,32 @@
# 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 */