aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.7/gcc/config/i386/gnu-user64.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.7/gcc/config/i386/gnu-user64.h')
-rw-r--r--gcc-4.7/gcc/config/i386/gnu-user64.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/gcc-4.7/gcc/config/i386/gnu-user64.h b/gcc-4.7/gcc/config/i386/gnu-user64.h
index ed06b6afe..c392fd738 100644
--- a/gcc-4.7/gcc/config/i386/gnu-user64.h
+++ b/gcc-4.7/gcc/config/i386/gnu-user64.h
@@ -40,7 +40,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#undef CC1_SPEC
#define CC1_SPEC \
LINUX_OR_ANDROID_CC (LINUX_TARGET_CC1_SPEC, \
- LINUX_TARGET_CC1_SPEC " " ANDROID_CC1_SPEC)
+ LINUX_TARGET_CC1_SPEC \
+ " -mstackrealign -mssse3" \
+ " -fno-short-enums" \
+ " " \
+ ANDROID_CC1_SPEC("-fPIC"))
/* The svr4 ABI for the i386 says that records and unions are returned
in memory. In the 64bit compilation we will turn this flag off in
@@ -63,8 +67,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#if TARGET_64BIT_DEFAULT
#define SPEC_32 "m32"
+#if TARGET_BI_ARCH == 2
+#define SPEC_64 "m64"
+#define SPEC_X32 "m32|m64:;"
+#else
#define SPEC_64 "m32|mx32:;"
#define SPEC_X32 "mx32"
+#endif
#else
#define SPEC_32 "m64|mx32:;"
#define SPEC_64 "m64"
@@ -119,7 +128,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
ANDROID_ENDFILE_SPEC)
#if TARGET_64BIT_DEFAULT
+#if TARGET_BI_ARCH == 2
+#define MULTILIB_DEFAULTS { "mx32" }
+#else
#define MULTILIB_DEFAULTS { "m64" }
+#endif
#else
#define MULTILIB_DEFAULTS { "m32" }
#endif
@@ -150,3 +163,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define TARGET_THREAD_SPLIT_STACK_OFFSET \
(TARGET_64BIT ? (TARGET_X32 ? 0x40 : 0x70) : 0x30)
#endif
+
+#undef WCHAR_TYPE
+#define WCHAR_TYPE (TARGET_LP64 ? "int" : "long int")