• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1From fc0c72d824b194f5c5e2c16ae5e706eed3a359fc Mon Sep 17 00:00:00 2001
2From: Mark D Horn <mark.d.horn@intel.com>
3Date: Tue, 28 Jun 2011 15:35:46 -0700
4Subject: [PATCH 4/4] Enable x86 gcc defaults
5
6Enabling the same built-in defaults for the x86
7toolchain as is currently done for ARM.
8
9Change-Id: I1118569246c70496ae8e0971036916286321274c
10---
11 gcc-4.4.3/gcc/config.gcc              |    4 +-
12 gcc-4.4.3/gcc/config/arm/linux-eabi.h |    2 +-
13 gcc-4.4.3/gcc/config/i386/linux.h     |   38 +++++++++++++++++++++++++++-----
14 gcc-4.4.3/gcc/config/linux-android.h  |    4 +-
15 4 files changed, 37 insertions(+), 11 deletions(-)
16
17diff --git a/gcc-4.4.3/gcc/config.gcc b/gcc-4.4.3/gcc/config.gcc
18index 321cf55..e758dc4 100644
19--- a/gcc-4.4.3/gcc/config.gcc
20+++ b/gcc-4.4.3/gcc/config.gcc
21@@ -515,7 +515,7 @@ case ${target} in
22       tm_defines="$tm_defines OPTION_GLIBC=1";;
23   esac
24   case $target in
25-    *-*-*android*)
26+    *-*-*android* | *-android-linux-*)
27       tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
28       ;;
29     *-*-*uclibc*)
30@@ -538,7 +538,7 @@ case ${target} in
31   esac
32   # Enable compilation for Android by default for *android* targets.
33   case $target in
34-    *-*-*android*)
35+    *-*-*android* | *-android-linux-*)
36       tm_defines="$tm_defines ANDROID_DEFAULT=1"
37       ;;
38     *)
39diff --git a/gcc-4.4.3/gcc/config/arm/linux-eabi.h b/gcc-4.4.3/gcc/config/arm/linux-eabi.h
40index 2ca8818..b295423 100644
41--- a/gcc-4.4.3/gcc/config/arm/linux-eabi.h
42+++ b/gcc-4.4.3/gcc/config/arm/linux-eabi.h
43@@ -74,7 +74,7 @@
44 #undef  CC1_SPEC
45 #define CC1_SPEC                                               \
46   LINUX_OR_ANDROID_CC (LINUX_TARGET_CC1_SPEC,                  \
47-                      LINUX_TARGET_CC1_SPEC " " ANDROID_CC1_SPEC)
48+                      LINUX_TARGET_CC1_SPEC " " ANDROID_CC1_SPEC("-fpic"))
49
50 #define CC1PLUS_SPEC \
51   LINUX_OR_ANDROID_CC ("", ANDROID_CC1PLUS_SPEC)
52diff --git a/gcc-4.4.3/gcc/config/i386/linux.h b/gcc-4.4.3/gcc/config/i386/linux.h
53index f3a98c2..bc2a5d5 100644
54--- a/gcc-4.4.3/gcc/config/i386/linux.h
55+++ b/gcc-4.4.3/gcc/config/i386/linux.h
56@@ -72,15 +72,36 @@ along with GCC; see the file COPYING3.  If not see
57 #define TARGET_OS_CPP_BUILTINS()		\
58   do						\
59     {						\
60-	LINUX_TARGET_OS_CPP_BUILTINS();		\
61+	    LINUX_TARGET_OS_CPP_BUILTINS();		\
62+        ANDROID_TARGET_OS_CPP_BUILTINS();	\
63     }						\
64   while (0)
65
66 #undef CPP_SPEC
67 #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
68
69+#define OVERRIDE_LINUX_TARGET_CC1_SPEC "%(cc1_cpu) %{profile:-p}"
70 #undef CC1_SPEC
71-#define CC1_SPEC "%(cc1_cpu) %{profile:-p}"
72+#define CC1_SPEC                                               \
73+  LINUX_OR_ANDROID_CC (OVERRIDE_LINUX_TARGET_CC1_SPEC,                  \
74+                       OVERRIDE_LINUX_TARGET_CC1_SPEC \
75+                       " -march=i686 -mtune=atom" \
76+                       " -mstackrealign -msse3 -mfpmath=sse" \
77+                       " -m32 -fno-short-enums" \
78+                       " " \
79+                       ANDROID_CC1_SPEC("-fPIC"))
80+
81+#define CC1PLUS_SPEC \
82+  LINUX_OR_ANDROID_CC ("", ANDROID_CC1PLUS_SPEC)
83+
84+#undef  LIB_SPEC
85+#define LIB_SPEC                                           \
86+  LINUX_OR_ANDROID_LD (LINUX_TARGET_LIB_SPEC,                  \
87+                      LINUX_TARGET_LIB_SPEC " " ANDROID_LIB_SPEC)
88+
89+#undef STARTFILE_SPEC
90+#define STARTFILE_SPEC \
91+  LINUX_OR_ANDROID_LD (LINUX_TARGET_STARTFILE_SPEC, ANDROID_STARTFILE_SPEC)
92
93 /* Provide a LINK_SPEC appropriate for Linux.  Here we provide support
94    for the special GCC options -static and -shared, which allow us to
95@@ -121,23 +142,28 @@ along with GCC; see the file COPYING3.  If not see
96   { "link_emulation", LINK_EMULATION },\
97   { "dynamic_linker", LINUX_DYNAMIC_LINKER }
98
99-#undef	LINK_SPEC
100-#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
101+#define OVERRIDE_LINUX_TARGET_LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
102   %{!shared: \
103     %{!ibcs: \
104       %{!static: \
105 	%{rdynamic:-export-dynamic} \
106 	%{!dynamic-linker:-dynamic-linker %(dynamic_linker)}} \
107 	%{static:-static}}}"
108+#undef	LINK_SPEC
109+#define LINK_SPEC                                              \
110+  LINUX_OR_ANDROID_LD (OVERRIDE_LINUX_TARGET_LINK_SPEC,                 \
111+                      OVERRIDE_LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC)
112
113 /* Similar to standard Linux, but adding -ffast-math support.  */
114-#undef  ENDFILE_SPEC
115-#define ENDFILE_SPEC \
116+#define OVERRIDE_LINUX_TARGET_ENDFILE_SPEC \
117   "%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
118    %{mpc32:crtprec32.o%s} \
119    %{mpc64:crtprec64.o%s} \
120    %{mpc80:crtprec80.o%s} \
121    %{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
122+#undef  ENDFILE_SPEC
123+#define ENDFILE_SPEC \
124+  LINUX_OR_ANDROID_LD (OVERRIDE_LINUX_TARGET_ENDFILE_SPEC, ANDROID_ENDFILE_SPEC)
125
126 /* A C statement (sans semicolon) to output to the stdio stream
127    FILE the assembler definition of uninitialized global DECL named
128diff --git a/gcc-4.4.3/gcc/config/linux-android.h b/gcc-4.4.3/gcc/config/linux-android.h
129index 5ca3858..c1f8f7a 100644
130--- a/gcc-4.4.3/gcc/config/linux-android.h
131+++ b/gcc-4.4.3/gcc/config/linux-android.h
132@@ -41,9 +41,9 @@
133 #define ANDROID_LINK_SPEC \
134   "%{shared: -Bsymbolic}"
135
136-#define ANDROID_CC1_SPEC						\
137+#define ANDROID_CC1_SPEC(ANDROID_PIC_DEFAULT)   \
138   "%{!mglibc:%{!muclibc:%{!mbionic: -mbionic}}} "			\
139-  "%{!fno-pic:%{!fno-PIC:%{!fpic:%{!fPIC: -fPIC}}}}"
140+  "%{!fno-pic:%{!fno-PIC:%{!fpic:%{!fPIC: " ANDROID_PIC_DEFAULT "}}}}"
141
142 #define ANDROID_CC1PLUS_SPEC						\
143   "%{!fexceptions:%{!fno-exceptions: -fno-exceptions}} "		\
144--
1451.7.1
146
147