1 From fc0c72d824b194f5c5e2c16ae5e706eed3a359fc Mon Sep 17 00:00:00 2001 2 From: Mark D Horn <mark.d.horn (a] intel.com> 3 Date: Tue, 28 Jun 2011 15:35:46 -0700 4 Subject: [PATCH 4/4] Enable x86 gcc defaults 5 6 Enabling the same built-in defaults for the x86 7 toolchain as is currently done for ARM. 8 9 Change-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 17 diff --git a/gcc-4.4.3/gcc/config.gcc b/gcc-4.4.3/gcc/config.gcc 18 index 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 *) 39 diff --git a/gcc-4.4.3/gcc/config/arm/linux-eabi.h b/gcc-4.4.3/gcc/config/arm/linux-eabi.h 40 index 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) 52 diff --git a/gcc-4.4.3/gcc/config/i386/linux.h b/gcc-4.4.3/gcc/config/i386/linux.h 53 index 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 128 diff --git a/gcc-4.4.3/gcc/config/linux-android.h b/gcc-4.4.3/gcc/config/linux-android.h 129 index 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 -- 145 1.7.1 146 147