aboutsummaryrefslogtreecommitdiffstats
path: root/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99494.patch
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99494.patch')
-rw-r--r--toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99494.patch1272
1 files changed, 0 insertions, 1272 deletions
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99494.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99494.patch
deleted file mode 100644
index 56897e984b..0000000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99494.patch
+++ /dev/null
@@ -1,1272 +0,0 @@
-2011-04-09 Andrew Stubbs <ams@codesourcery.com>
-
- Backport from mainline:
-
- Maxim Kuvyrkov <maxim@codesourcery.com>
-
- * config.sub: Recognize *-linux-android*.
-
- 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- Add support for Bionic C library
- gcc/
- * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
- macro.
- (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
- (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
-
- * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
- (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
- (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
- to support multiple C libraries. Handle Bionic.
- (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
- (BIONIC_DYNAMIC_LINKER64): Define.
- (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
- Update.
- (TARGET_HAS_SINCOS): Enable for Bionic.
-
- * config/linux.opt: Rewrite to handle more than 2 C libraries. Make
- the last option specified on command line take effect.
- (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
- (mbionic): New.
- (mglibc, muclibc): Update.
-
- * config/alpha/linux-elf.h, config/rs6000/linux64.h,
- * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
- DEFAULT_LIBC.
-
- * doc/invoke.texi (-mglibc, -muclibc): Update.
- (-mbionic): Document.
-
- gcc/testsuite/
- * gcc.dg/glibc-uclibc-1.c, gcc.dg/glibc-uclibc-2.c: Remove, no longer
- necessary.
-
- 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- Support compilation for Android platform. Reimplement -mandroid.
- gcc/
- * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
- (*android*): Set ANDROID_DEFAULT.
- (arm*-*-linux*): Include linux-android.h.
- (arm*-*-eabi*): Don't include previous -mandroid implementation.
- * config/arm/eabi.h: Remove, move Android-specific parts ...
- * config/linux-android.h: ... here. New file.
- * config/arm/eabi.opt: Rename to ...
- * config/linux-android.opt: ... this.
- (mandroid): Allow -mno-android option. Initialize based on
- ANDROID_DEFAULT.
- * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
- Move logic to corresponding LINUX_TARGET_* macros.
- (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
- * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
- (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
- Android definitions.
- (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
- * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
- Document.
-
- 2010-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- gcc/
- * config/arm/t-linux-androideabi: New.
- * config.gcc (arm*-*-linux-androideabi): Include multilib configuration.
-
- 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- gcc/
- * gthr-posix.h (pthread_cancel): Don't declare if compiling against
- Bionic C library.
- (__gthread_active_p): Check for pthread_create if compiling against
- Bionic C library.
-
- 2010-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- libstdc++-v3/
- * acinclude.m4: Support Bionic C library.
- Explicitly specify -fexceptions for exception check.
- * configure.host: Support Bionic C library.
- * configure: Regenerate.
- * config/os/bionic/ctype_base.h, config/os/bionic/ctype_inline.h,
- * config/os/bionic/ctype_noincline.h, config/os/bionic/os_defines.h:
- New files, based on config/os/newlib/*.
-
-=== modified file 'config.sub'
-Index: gcc-4.5.3/config.sub
-===================================================================
---- gcc-4.5.3.orig/config.sub
-+++ gcc-4.5.3/config.sub
-@@ -4,7 +4,7 @@
- # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
- # Free Software Foundation, Inc.
-
--timestamp='2010-03-22'
-+timestamp='2010-04-23'
-
- # This file is (in principle) common to ALL GNU software.
- # The presence of a machine in this file suggests that SOME GNU software
-@@ -124,8 +124,9 @@ esac
- # Here we must recognize all the valid KERNEL-OS combinations.
- maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
- case $maybe_os in
-- nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
-- uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
-+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-+ linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
-+ knetbsd*-gnu* | netbsd*-gnu* | \
- kopensolaris*-gnu* | \
- storm-chaos* | os2-emx* | rtmk-nova*)
- os=-$maybe_os
-@@ -1307,7 +1308,8 @@ case $os in
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* | -cegcc* \
- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
-+ | -mingw32* | -linux-gnu* | -linux-android* \
-+ | -linux-newlib* | -linux-uclibc* \
- | -uxpv* | -beos* | -mpeix* | -udk* \
- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
-Index: gcc-4.5.3/gcc/config.gcc
-===================================================================
---- gcc-4.5.3.orig/gcc/config.gcc
-+++ gcc-4.5.3/gcc/config.gcc
-@@ -513,26 +513,48 @@ case ${target} in
- *-*-gnu*)
- tmake_file="$tmake_file t-gnu";;
- esac
-- # glibc / uclibc switch. uclibc isn't usable for GNU/Hurd and neither for
-- # GNU/k*BSD.
-+ # Common C libraries.
-+ tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3"
-+ # glibc / uclibc / bionic switch.
-+ # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
- case $target in
- *linux*)
- extra_options="$extra_options linux.opt";;
- *)
- tm_defines="$tm_defines OPTION_GLIBC=1";;
- esac
-- case ${target} in
-+ case $target in
-+ *-*-*android*)
-+ tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
-+ ;;
- *-*-*uclibc*)
-- tm_defines="${tm_defines} UCLIBC_DEFAULT=1"
-+ tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
- ;;
- *)
-- tm_defines="${tm_defines} UCLIBC_DEFAULT=0"
-+ tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
- ;;
- esac
-- # Assume that glibc or uClibc are being used and so __cxa_atexit is provided.
-+ # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
-+ # is provided.
- default_use_cxa_atexit=yes
- use_gcc_tgmath=no
- use_gcc_stdint=wrap
-+ # Add Android userspace support to Linux targets.
-+ case $target in
-+ *linux*)
-+ tm_file="$tm_file linux-android.h"
-+ extra_options="$extra_options linux-android.opt"
-+ ;;
-+ esac
-+ # Enable compilation for Android by default for *android* targets.
-+ case $target in
-+ *-*-*android*)
-+ tm_defines="$tm_defines ANDROID_DEFAULT=1"
-+ ;;
-+ *)
-+ tm_defines="$tm_defines ANDROID_DEFAULT=0"
-+ ;;
-+ esac
- ;;
- *-*-netbsd*)
- tmake_file="t-slibgcc-elf-ver t-libc-ok t-netbsd t-libgcc-pic"
-@@ -728,7 +750,7 @@ arm*-*-netbsd*)
- use_collect2=yes
- ;;
- arm*-*-linux*) # ARM GNU/Linux with ELF
-- tm_file="dbxelf.h elfos.h linux.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
-+ tm_file="dbxelf.h elfos.h linux.h linux-android.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
- case $target in
- arm*b-*)
- tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
-@@ -739,6 +761,12 @@ arm*-*-linux*) # ARM GNU/Linux with EL
- arm*-*-linux-*eabi)
- tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
- tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc"
-+ # Define multilib configuration for arm-linux-androideabi.
-+ case ${target} in
-+ *-androideabi)
-+ tmake_file="$tmake_file arm/t-linux-androideabi"
-+ ;;
-+ esac
- # The BPABI long long divmod functions return a 128-bit value in
- # registers r0-r3. Correctly modeling that requires the use of
- # TImode.
-@@ -785,9 +813,8 @@ arm*-*-eabi* | arm*-*-symbianelf* )
- tmake_file="arm/t-arm arm/t-arm-elf"
- case ${target} in
- arm*-*-eabi*)
-- tm_file="$tm_file arm/eabi.h newlib-stdint.h"
-+ tm_file="$tm_file newlib-stdint.h"
- tmake_file="${tmake_file} arm/t-bpabi"
-- extra_options="${extra_options} arm/eabi.opt"
- use_gcc_stdint=wrap
- ;;
- arm*-*-symbianelf*)
-@@ -843,7 +870,7 @@ bfin*-elf*)
- bfin*-uclinux*)
- tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h linux.h glibc-stdint.h bfin/uclinux.h"
- tmake_file=bfin/t-bfin-uclinux
-- tm_defines="${tm_defines} UCLIBC_DEFAULT=1"
-+ tm_defines="${tm_defines} DEFAULT_LIBC=LIBC_UCLIBC"
- extra_options="${extra_options} linux.opt"
- use_collect2=no
- ;;
-@@ -924,7 +951,7 @@ moxie-*-uclinux*)
- tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h glibc-stdint.h moxie/uclinux.h"
- extra_parts="crti.o crtn.o crtbegin.o crtend.o"
- tmake_file="${tmake_file} moxie/t-moxie moxie/t-moxie-softfp soft-fp/t-softfp"
-- tm_defines="${tm_defines} UCLIBC_DEFAULT=1"
-+ tm_defines="${tm_defines} DEFAULT_LIBC=LIBC_UCLIBC"
- extra_options="${extra_options} linux.opt"
- ;;
- h8300-*-rtems*)
-@@ -1644,7 +1671,7 @@ m68k-*-uclinux*) # Motorola m68k/ColdFi
- default_m68k_cpu=68020
- default_cf_cpu=5206
- tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h flat.h m68k/linux.h m68k/uclinux.h ./sysroot-suffix.h"
-- tm_defines="${tm_defines} MOTOROLA=1 UCLIBC_DEFAULT=1"
-+ tm_defines="${tm_defines} MOTOROLA=1 DEFAULT_LIBC=LIBC_UCLIBC"
- extra_options="${extra_options} linux.opt"
- tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
- ;;
-Index: gcc-4.5.3/gcc/config/alpha/linux-elf.h
-===================================================================
---- gcc-4.5.3.orig/gcc/config/alpha/linux-elf.h
-+++ gcc-4.5.3/gcc/config/alpha/linux-elf.h
-@@ -29,10 +29,12 @@ along with GCC; see the file COPYING3.
-
- #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
- #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
--#if UCLIBC_DEFAULT
--#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:%{muclibc:%e-mglibc and -muclibc used together}" G ";:" U "}"
-+#if DEFAULT_LIBC == LIBC_UCLIBC
-+#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
-+#elif DEFAULT_LIBC == LIBC_GLIBC
-+#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:" U ";:" G "}"
- #else
--#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:%{mglibc:%e-mglibc and -muclibc used together}" U ";:" G "}"
-+#error "Unsupported DEFAULT_LIBC"
- #endif
- #define LINUX_DYNAMIC_LINKER \
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
-Index: gcc-4.5.3/gcc/config/arm/eabi.h
-===================================================================
---- gcc-4.5.3.orig/gcc/config/arm/eabi.h
-+++ /dev/null
-@@ -1,125 +0,0 @@
--/* Configuration file for ARM EABI targets.
-- Copyright (C) 2008
-- Free Software Foundation, Inc.
-- Contributed by Doug Kwan (dougkwan@google.com)
--
-- This file is part of GCC.
--
-- GCC is free software; you can redistribute it and/or modify it
-- under the terms of the GNU General Public License as published
-- by the Free Software Foundation; either version 3, or (at your
-- option) any later version.
--
-- GCC is distributed in the hope that it will be useful, but WITHOUT
-- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
-- License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with GCC; see the file COPYING3. If not see
-- <http://www.gnu.org/licenses/>. */
--
--/* This file contains macro overrides for EABI targets. */
--
--#undef TARGET_OS_CPP_BUILTINS
--#define TARGET_OS_CPP_BUILTINS() \
-- do \
-- { \
-- TARGET_BPABI_CPP_BUILTINS (); \
-- if (TARGET_ANDROID) \
-- builtin_define ("__ANDROID__"); \
-- } \
-- while (false)
--
--#undef SUBSUBTARGET_EXTRA_SPECS
--#define SUBSUBTARGET_EXTRA_SPECS \
-- { "link_android", ANDROID_LINK_SPEC }, \
-- { "link_default", BPABI_LINK_SPEC }, \
-- { "cc1_android", ANDROID_CC1_SPEC }, \
-- { "cc1_default", CC1_DEFAULT_SPEC }, \
-- { "cc1plus_android", ANDROID_CC1PLUS_SPEC }, \
-- { "cc1plus_default", CC1PLUS_DEFAULT_SPEC }, \
-- { "lib_android", ANDROID_LIB_SPEC }, \
-- { "lib_default", LIB_DEFAULT_SPEC }, \
-- { "startfile_android", ANDROID_STARTFILE_SPEC }, \
-- { "startfile_default", UNKNOWN_ELF_STARTFILE_SPEC }, \
-- { "endfile_android", ANDROID_ENDFILE_SPEC }, \
-- { "endfile_default", UNKNOWN_ELF_ENDFILE_SPEC }, \
--
--#undef ANDROID_LINK_SPEC
--#define ANDROID_LINK_SPEC \
--"%{mbig-endian:-EB} %{mlittle-endian:-EL} " \
--"%{static:-Bstatic} %{shared:-shared} %{symbolic:-Bsymbolic} " \
--"%{!static:" \
-- "%{shared: -Bsymbolic} " \
-- "%{!shared:" \
-- "%{rdynamic:-export-dynamic} " \
-- "%{!dynamic-linker:-dynamic-linker /system/bin/linker}}} " \
--"-X" SUBTARGET_EXTRA_LINK_SPEC
--
--/* Override LINK_SPEC in bpabi.h. */
--#undef LINK_SPEC
--#define LINK_SPEC \
--"%{mandroid: %(link_android) ;" \
--" : %(link_default)}"
--
--/* Android uses -fno-exceptions by default. */
--#undef ANDROID_CC1_SPEC
--#define ANDROID_CC1_SPEC "%{!fexceptions:-fno-exceptions}"
--
--/* Default CC1_SPEC as in arm.h. */
--#undef CC1_DEFAULT_SPEC
--#define CC1_DEFAULT_SPEC ""
--
--#undef CC1_SPEC
--#define CC1_SPEC \
--"%{mandroid: %(cc1_android) ;" \
--" : %(cc1_default)}"
--
--/* Android uses -fno-rtti by default. */
--#undef ANDROID_CC1PLUS_SPEC
--#define ANDROID_CC1PLUS_SPEC "%{!frtti:-fno-rtti}"
--
--/* Default CC1PLUS_SPEC as in gcc.c. */
--#undef CC1PLUS_DEFAULT_SPEC
--#define CC1PLUS_DEFAULT_SPEC ""
--
--#undef CC1PLUS_SPEC
--#define CC1PLUS_SPEC \
--"%{mandroid: %(cc1plus_android) ;" \
--" : %(cc1plus_default)}"
--
--#undef ANDROID_LIB_SPEC
--#define ANDROID_LIB_SPEC "-lc %{!static:-ldl}"
--
--/* Default LIB_SPEC as in gcc.c. */
--#undef LIB_DEFAULT_SPEC
--#define LIB_DEFAULT_SPEC \
--"%{!shared:%{g*:-lg} %{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}}"
--
--#undef LIB_SPEC
--#define LIB_SPEC \
--"%{mandroid: %(lib_android) ;" \
--" : %(lib_default)}"
--
--#undef ANDROID_STARTFILE_SPEC
--#define ANDROID_STARTFILE_SPEC \
--"%{!shared:" \
-- "%{static: crtbegin_static%O%s ;" \
-- " : crtbegin_dynamic%O%s}}"
--
--/* Override STARTFILE_SPEC in unknown-elf.h. */
--#undef STARTFILE_SPEC
--#define STARTFILE_SPEC \
--"%{mandroid: %(startfile_android) ;" \
--" : %(startfile_default)}"
--
--#undef ANDROID_ENDFILE_SPEC
--#define ANDROID_ENDFILE_SPEC "%{!shared:crtend_android%O%s}"
--
--/* Override ENDFILE_SPEC in unknown-elf.h. */
--#undef ENDFILE_SPEC
--#define ENDFILE_SPEC \
--"%{mandroid: %(endfile_android) ;" \
--" : %(endfile_default)}"
--
-Index: gcc-4.5.3/gcc/config/arm/eabi.opt
-===================================================================
---- gcc-4.5.3.orig/gcc/config/arm/eabi.opt
-+++ /dev/null
-@@ -1,23 +0,0 @@
--; EABI specific options for ARM port of the compiler.
--
--; Copyright (C) 2008 Free Software Foundation, Inc.
--;
--; This file is part of GCC.
--;
--; GCC is free software; you can redistribute it and/or modify it under
--; the terms of the GNU General Public License as published by the Free
--; Software Foundation; either version 3, or (at your option) any later
--; version.
--;
--; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
--; WARRANTY; without even the implied warranty of MERCHANTABILITY or
--; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
--; for more details.
--;
--; You should have received a copy of the GNU General Public License
--; along with GCC; see the file COPYING3. If not see
--; <http://www.gnu.org/licenses/>.
--
--mandroid
--Target Report RejectNegative Mask(ANDROID)
--Generate code for the Android operating system.
-Index: gcc-4.5.3/gcc/config/arm/linux-eabi.h
-===================================================================
---- gcc-4.5.3.orig/gcc/config/arm/linux-eabi.h
-+++ gcc-4.5.3/gcc/config/arm/linux-eabi.h
-@@ -70,7 +70,30 @@
- /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
- use the GNU/Linux version, not the generic BPABI version. */
- #undef LINK_SPEC
--#define LINK_SPEC LINUX_TARGET_LINK_SPEC BE8_LINK_SPEC TARGET_FIX_V4BX_SPEC
-+#define LINK_SPEC BE8_LINK_SPEC TARGET_FIX_V4BX_SPEC \
-+ LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC, \
-+ LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC)
-+
-+#undef CC1_SPEC
-+#define CC1_SPEC \
-+ LINUX_OR_ANDROID_CC (LINUX_TARGET_CC1_SPEC, \
-+ LINUX_TARGET_CC1_SPEC " " ANDROID_CC1_SPEC)
-+
-+#define CC1PLUS_SPEC \
-+ LINUX_OR_ANDROID_CC ("", ANDROID_CC1PLUS_SPEC)
-+
-+#undef LIB_SPEC
-+#define LIB_SPEC \
-+ LINUX_OR_ANDROID_LD (LINUX_TARGET_LIB_SPEC, \
-+ LINUX_TARGET_LIB_SPEC " " ANDROID_LIB_SPEC)
-+
-+#undef STARTFILE_SPEC
-+#define STARTFILE_SPEC \
-+ LINUX_OR_ANDROID_LD (LINUX_TARGET_STARTFILE_SPEC, ANDROID_STARTFILE_SPEC)
-+
-+#undef ENDFILE_SPEC
-+#define ENDFILE_SPEC \
-+ LINUX_OR_ANDROID_LD (LINUX_TARGET_ENDFILE_SPEC, ANDROID_ENDFILE_SPEC)
-
- /* Use the default LIBGCC_SPEC, not the version in linux-elf.h, as we
- do not use -lfloat. */
-Index: gcc-4.5.3/gcc/config/arm/t-linux-androideabi
-===================================================================
---- /dev/null
-+++ gcc-4.5.3/gcc/config/arm/t-linux-androideabi
-@@ -0,0 +1,10 @@
-+MULTILIB_OPTIONS = march=armv7-a mthumb
-+MULTILIB_DIRNAMES = armv7-a thumb
-+MULTILIB_EXCEPTIONS =
-+MULTILIB_MATCHES =
-+MULTILIB_OSDIRNAMES =
-+
-+# The "special" multilib can be used to build native applications for Android,
-+# as opposed to native shared libraries that are then called via JNI.
-+#MULTILIB_OPTIONS += tno-android-cc
-+#MULTILIB_DIRNAMES += special
-Index: gcc-4.5.3/gcc/config/linux-android.h
-===================================================================
---- /dev/null
-+++ gcc-4.5.3/gcc/config/linux-android.h
-@@ -0,0 +1,53 @@
-+/* Configuration file for Linux Android targets.
-+ Copyright (C) 2010
-+ Free Software Foundation, Inc.
-+ Contributed by CodeSourcery, Inc.
-+
-+ This file is part of GCC.
-+
-+ GCC is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU General Public License as published
-+ by the Free Software Foundation; either version 3, or (at your
-+ option) any later version.
-+
-+ GCC is distributed in the hope that it will be useful, but WITHOUT
-+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
-+ License for more details.
-+
-+ You should have received a copy of the GNU General Public License
-+ along with GCC; see the file COPYING3. If not see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#if ANDROID_DEFAULT
-+# define NOANDROID "mno-android"
-+#else
-+# define NOANDROID "!mandroid"
-+#endif
-+
-+#define LINUX_OR_ANDROID_CC(LINUX_SPEC, ANDROID_SPEC) \
-+ "%{" NOANDROID "|tno-android-cc:" LINUX_SPEC ";:" ANDROID_SPEC "}"
-+
-+#define LINUX_OR_ANDROID_LD(LINUX_SPEC, ANDROID_SPEC) \
-+ "%{" NOANDROID "|tno-android-ld:" LINUX_SPEC ";:" ANDROID_SPEC "}"
-+
-+#define ANDROID_LINK_SPEC \
-+ "%{shared: -Bsymbolic}"
-+
-+#define ANDROID_CC1_SPEC \
-+ "%{!mglibc:%{!muclibc:%{!mbionic: -mbionic}}} " \
-+ "%{!fno-pic:%{!fno-PIC:%{!fpic:%{!fPIC: -fPIC}}}}"
-+
-+#define ANDROID_CC1PLUS_SPEC \
-+ "%{!fexceptions:%{!fno-exceptions: -fno-exceptions}} " \
-+ "%{!frtti:%{!fno-rtti: -fno-rtti}}"
-+
-+#define ANDROID_LIB_SPEC \
-+ "%{!static: -ldl}"
-+
-+#define ANDROID_STARTFILE_SPEC \
-+ "%{!shared:" \
-+ " %{static: crtbegin_static%O%s;: crtbegin_dynamic%O%s}}"
-+
-+#define ANDROID_ENDFILE_SPEC \
-+ "%{!shared: crtend_android%O%s}"
-Index: gcc-4.5.3/gcc/config/linux-android.opt
-===================================================================
---- /dev/null
-+++ gcc-4.5.3/gcc/config/linux-android.opt
-@@ -0,0 +1,23 @@
-+; Android specific options.
-+
-+; Copyright (C) 2010 Free Software Foundation, Inc.
-+;
-+; This file is part of GCC.
-+;
-+; GCC is free software; you can redistribute it and/or modify it under
-+; the terms of the GNU General Public License as published by the Free
-+; Software Foundation; either version 3, or (at your option) any later
-+; version.
-+;
-+; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
-+; WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+; for more details.
-+;
-+; You should have received a copy of the GNU General Public License
-+; along with GCC; see the file COPYING3. If not see
-+; <http://www.gnu.org/licenses/>.
-+
-+mandroid
-+Target Report Mask(ANDROID) Var(flag_android) Init(ANDROID_DEFAULT ? OPTION_MASK_ANDROID : 0)
-+Generate code for the Android platform.
-Index: gcc-4.5.3/gcc/config/linux.h
-===================================================================
---- gcc-4.5.3.orig/gcc/config/linux.h
-+++ gcc-4.5.3/gcc/config/linux.h
-@@ -1,6 +1,6 @@
- /* Definitions for Linux-based GNU systems with ELF format
- Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2003, 2004, 2005, 2006,
-- 2007, 2009 Free Software Foundation, Inc.
-+ 2007, 2009, 2010 Free Software Foundation, Inc.
- Contributed by Eric Youngdale.
- Modified for stabs-in-ELF by H.J. Lu (hjl@lucon.org).
-
-@@ -42,16 +42,17 @@ see the files COPYING3 and COPYING.RUNTI
- provides part of the support for getting C++ file-scope static
- object constructed before entering `main'. */
-
--#undef STARTFILE_SPEC
- #if defined HAVE_LD_PIE
--#define STARTFILE_SPEC \
-+#define LINUX_TARGET_STARTFILE_SPEC \
- "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
- crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
- #else
--#define STARTFILE_SPEC \
-+#define LINUX_TARGET_STARTFILE_SPEC \
- "%{!shared: %{pg|p|profile:gcrt1.o%s;:crt1.o%s}} \
- crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
- #endif
-+#undef STARTFILE_SPEC
-+#define STARTFILE_SPEC LINUX_TARGET_STARTFILE_SPEC
-
- /* Provide a ENDFILE_SPEC appropriate for GNU/Linux. Here we tack on
- the GNU/Linux magical crtend.o file (see crtstuff.c) which
-@@ -59,33 +60,44 @@ see the files COPYING3 and COPYING.RUNTI
- object constructed before entering `main', followed by a normal
- GNU/Linux "finalizer" file, `crtn.o'. */
-
--#undef ENDFILE_SPEC
--#define ENDFILE_SPEC \
-+#define LINUX_TARGET_ENDFILE_SPEC \
- "%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
-+#undef ENDFILE_SPEC
-+#define ENDFILE_SPEC LINUX_TARGET_ENDFILE_SPEC
-
- /* This is for -profile to use -lc_p instead of -lc. */
-+#define LINUX_TARGET_CC1_SPEC "%{profile:-p}"
- #ifndef CC1_SPEC
--#define CC1_SPEC "%{profile:-p}"
-+#define CC1_SPEC LINUX_TARGET_CC1_SPEC
- #endif
-
- /* The GNU C++ standard library requires that these macros be defined. */
- #undef CPLUSPLUS_CPP_SPEC
- #define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)"
-
--#undef LIB_SPEC
--#define LIB_SPEC \
-+#define LINUX_TARGET_LIB_SPEC \
- "%{pthread:-lpthread} \
- %{shared:-lc} \
- %{!shared:%{mieee-fp:-lieee} %{profile:-lc_p}%{!profile:-lc}}"
-+#undef LIB_SPEC
-+#define LIB_SPEC LINUX_TARGET_LIB_SPEC
-+
-+/* C libraries supported on Linux. */
-+#define OPTION_GLIBC (linux_libc == LIBC_GLIBC)
-+#define OPTION_UCLIBC (linux_libc == LIBC_UCLIBC)
-+#define OPTION_BIONIC (linux_libc == LIBC_BIONIC)
-
- #define LINUX_TARGET_OS_CPP_BUILTINS() \
- do { \
-- builtin_define ("__gnu_linux__"); \
-+ if (OPTION_GLIBC) \
-+ builtin_define ("__gnu_linux__"); \
- builtin_define_std ("linux"); \
- builtin_define_std ("unix"); \
- builtin_assert ("system=linux"); \
- builtin_assert ("system=unix"); \
- builtin_assert ("system=posix"); \
-+ if (OPTION_ANDROID) \
-+ builtin_define ("__ANDROID__"); \
- } while (0)
-
- #if defined(HAVE_LD_EH_FRAME_HDR)
-@@ -105,13 +117,24 @@ see the files COPYING3 and COPYING.RUNTI
- #endif
-
- /* Determine which dynamic linker to use depending on whether GLIBC or
-- uClibc is the default C library and whether -muclibc or -mglibc has
-- been passed to change the default. */
--#if UCLIBC_DEFAULT
--#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:%{muclibc:%e-mglibc and -muclibc used together}" G ";:" U "}"
-+ uClibc or Bionic is the default C library and whether
-+ -muclibc or -mglibc or -mbionic has been passed to change the default. */
-+
-+#define CHOOSE_DYNAMIC_LINKER1(LIBC1, LIBC2, LIBC3, LD1, LD2, LD3) \
-+ "%{" LIBC2 ":" LD2 ";:%{" LIBC3 ":" LD3 ";:" LD1 "}}"
-+
-+#if DEFAULT_LIBC == LIBC_GLIBC
-+#define CHOOSE_DYNAMIC_LINKER(G, U, B) \
-+ CHOOSE_DYNAMIC_LINKER1 ("mglibc", "muclibc", "mbionic", G, U, B)
-+#elif DEFAULT_LIBC == LIBC_UCLIBC
-+#define CHOOSE_DYNAMIC_LINKER(G, U, B) \
-+ CHOOSE_DYNAMIC_LINKER1 ("muclibc", "mglibc", "mbionic", U, G, B)
-+#elif DEFAULT_LIBC == LIBC_BIONIC
-+#define CHOOSE_DYNAMIC_LINKER(G, U, B) \
-+ CHOOSE_DYNAMIC_LINKER1 ("mbionic", "mglibc", "muclibc", B, G, U)
- #else
--#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:%{mglibc:%e-mglibc and -muclibc used together}" U ";:" G "}"
--#endif
-+#error "Unsupported DEFAULT_LIBC"
-+#endif /* DEFAULT_LIBC */
-
- /* For most targets the following definitions suffice;
- GLIBC_DYNAMIC_LINKER must be defined for each target using them, or
-@@ -120,18 +143,25 @@ see the files COPYING3 and COPYING.RUNTI
- #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
- #define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
- #define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
--#define LINUX_DYNAMIC_LINKER \
-- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
--#define LINUX_DYNAMIC_LINKER32 \
-- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32)
--#define LINUX_DYNAMIC_LINKER64 \
-- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
-+#define BIONIC_DYNAMIC_LINKER "/system/bin/linker"
-+#define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker"
-+#define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64"
-+
-+#define LINUX_DYNAMIC_LINKER \
-+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \
-+ BIONIC_DYNAMIC_LINKER)
-+#define LINUX_DYNAMIC_LINKER32 \
-+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32, \
-+ BIONIC_DYNAMIC_LINKER32)
-+#define LINUX_DYNAMIC_LINKER64 \
-+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64, \
-+ BIONIC_DYNAMIC_LINKER64)
-
- /* Determine whether the entire c99 runtime
- is present in the runtime library. */
- #define TARGET_C99_FUNCTIONS (OPTION_GLIBC)
-
- /* Whether we have sincos that follows the GNU extension. */
--#define TARGET_HAS_SINCOS (OPTION_GLIBC)
-+#define TARGET_HAS_SINCOS (OPTION_GLIBC | OPTION_BIONIC)
-
- #define TARGET_POSIX_IO
-Index: gcc-4.5.3/gcc/config/linux.opt
-===================================================================
---- gcc-4.5.3.orig/gcc/config/linux.opt
-+++ gcc-4.5.3/gcc/config/linux.opt
-@@ -1,6 +1,6 @@
- ; Processor-independent options for GNU/Linux.
- ;
--; Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
-+; Copyright (C) 2006, 2007, 2009, 2010 Free Software Foundation, Inc.
- ; Contributed by CodeSourcery.
- ;
- ; This file is part of GCC.
-@@ -19,10 +19,14 @@
- ; along with GCC; see the file COPYING3. If not see
- ; <http://www.gnu.org/licenses/>.
-
-+mbionic
-+Target Report RejectNegative Var(linux_libc,LIBC_BIONIC) Init(DEFAULT_LIBC) Negative(mglibc)
-+Use Bionic C library
-+
- mglibc
--Target RejectNegative Report InverseMask(UCLIBC, GLIBC) Var(linux_uclibc) Init(UCLIBC_DEFAULT ? OPTION_MASK_UCLIBC : 0)
--Use GNU libc instead of uClibc
-+Target Report RejectNegative Var(linux_libc,LIBC_GLIBC) VarExists Negative(muclibc)
-+Use GNU C library
-
- muclibc
--Target RejectNegative Report Mask(UCLIBC) Var(linux_uclibc) VarExists
--Use uClibc instead of GNU libc
-+Target Report RejectNegative Var(linux_libc,LIBC_UCLIBC) VarExists Negative(mbionic)
-+Use uClibc C library
-Index: gcc-4.5.3/gcc/config/rs6000/linux64.h
-===================================================================
---- gcc-4.5.3.orig/gcc/config/rs6000/linux64.h
-+++ gcc-4.5.3/gcc/config/rs6000/linux64.h
-@@ -344,10 +344,12 @@ extern int dot_symbols;
- #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld64.so.1"
- #define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
- #define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
--#if UCLIBC_DEFAULT
--#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:%{muclibc:%e-mglibc and -muclibc used together}" G ";:" U "}"
-+#if DEFAULT_LIBC == LIBC_UCLIBC
-+#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
-+#elif DEFAULT_LIBC == LIBC_GLIBC
-+#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:" U ";:" G "}"
- #else
--#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:%{mglibc:%e-mglibc and -muclibc used together}" U ";:" G "}"
-+#error "Unsupported DEFAULT_LIBC"
- #endif
- #define LINUX_DYNAMIC_LINKER32 \
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32)
-Index: gcc-4.5.3/gcc/config/rs6000/sysv4.h
-===================================================================
---- gcc-4.5.3.orig/gcc/config/rs6000/sysv4.h
-+++ gcc-4.5.3/gcc/config/rs6000/sysv4.h
-@@ -901,10 +901,12 @@ SVR4_ASM_SPEC \
-
- #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
- #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
--#if UCLIBC_DEFAULT
--#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:%{muclibc:%e-mglibc and -muclibc used together}" G ";:" U "}"
-+#if DEFAULT_LIBC == LIBC_UCLIBC
-+#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
-+#elif DEFAULT_LIBC == LIBC_GLIBC
-+#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:" U ";:" G "}"
- #else
--#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:%{mglibc:%e-mglibc and -muclibc used together}" U ";:" G "}"
-+#error "Unsupported DEFAULT_LIBC"
- #endif
- #define LINUX_DYNAMIC_LINKER \
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
-Index: gcc-4.5.3/gcc/doc/invoke.texi
-===================================================================
---- gcc-4.5.3.orig/gcc/doc/invoke.texi
-+++ gcc-4.5.3/gcc/doc/invoke.texi
-@@ -565,7 +565,8 @@ Objective-C and Objective-C++ Dialects}.
- -mcpu=@var{cpu}}
-
- @emph{GNU/Linux Options}
--@gccoptlist{-muclibc}
-+@gccoptlist{-mglibc -muclibc -mbionic -mandroid @gol
-+-tno-android-cc -tno-android-ld}
-
- @emph{H8/300 Options}
- @gccoptlist{-mrelax -mh -ms -mn -mint32 -malign-300}
-@@ -11469,13 +11470,41 @@ These @samp{-m} options are defined for
- @table @gcctabopt
- @item -mglibc
- @opindex mglibc
--Use the GNU C library instead of uClibc. This is the default except
--on @samp{*-*-linux-*uclibc*} targets.
-+Use the GNU C library. This is the default except
-+on @samp{*-*-linux-*uclibc*} and @samp{*-*-linux-*android*} targets.
-
- @item -muclibc
- @opindex muclibc
--Use uClibc instead of the GNU C library. This is the default on
-+Use uClibc C library. This is the default on
- @samp{*-*-linux-*uclibc*} targets.
-+
-+@item -mbionic
-+@opindex mbionic
-+Use Bionic C library. This is the default on
-+@samp{*-*-linux-*android*} targets.
-+
-+@item -mandroid
-+@opindex mandroid
-+Compile code compatible with Android platform. This is the default on
-+@samp{*-*-linux-*android*} targets.
-+
-+When compiling, this option enables @option{-mbionic}, @option{-fPIC},
-+@option{-fno-exceptions} and @option{-fno-rtti} by default. When linking,
-+this option makes the GCC driver pass Android-specific options to the linker.
-+Finally, this option causes the preprocessor macro @code{__ANDROID__}
-+to be defined.
-+
-+@item -tno-android-cc
-+@opindex tno-android-cc
-+Disable compilation effects of @option{-mandroid}, i.e., do not enable
-+@option{-mbionic}, @option{-fPIC}, @option{-fno-exceptions} and
-+@option{-fno-rtti} by default.
-+
-+@item -tno-android-ld
-+@opindex tno-android-ld
-+Disable linking effects of @option{-mandroid}, i.e., pass standard Linux
-+linking options to the linker.
-+
- @end table
-
- @node H8/300 Options
-Index: gcc-4.5.3/gcc/gthr-posix.h
-===================================================================
---- gcc-4.5.3.orig/gcc/gthr-posix.h
-+++ gcc-4.5.3/gcc/gthr-posix.h
-@@ -124,7 +124,9 @@ __gthrw(pthread_join)
- __gthrw(pthread_equal)
- __gthrw(pthread_self)
- __gthrw(pthread_detach)
-+#ifndef __BIONIC__
- __gthrw(pthread_cancel)
-+#endif
- __gthrw(sched_yield)
-
- __gthrw(pthread_mutex_lock)
-@@ -238,7 +240,15 @@ static inline int
- __gthread_active_p (void)
- {
- static void *const __gthread_active_ptr
-- = __extension__ (void *) &__gthrw_(pthread_cancel);
-+ = __extension__ (void *) &__gthrw_(
-+/* Android's C library does not provide pthread_cancel, check for
-+ `pthread_create' instead. */
-+#ifndef __BIONIC__
-+ pthread_cancel
-+#else
-+ pthread_create
-+#endif
-+ );
- return __gthread_active_ptr != 0;
- }
-
-Index: gcc-4.5.3/gcc/testsuite/gcc.dg/glibc-uclibc-1.c
-===================================================================
---- gcc-4.5.3.orig/gcc/testsuite/gcc.dg/glibc-uclibc-1.c
-+++ /dev/null
-@@ -1,6 +0,0 @@
--/* Test -mglibc and -muclibc not allowed together. */
--/* Origin: Joseph Myers <joseph@codesourcery.com> */
--/* { dg-do link { target *-*-linux* } } */
--/* { dg-options "-mglibc -muclibc" } */
--
--/* { dg-message "-mglibc and -muclibc used together" "" { target *-*-* } 0 } */
-Index: gcc-4.5.3/gcc/testsuite/gcc.dg/glibc-uclibc-2.c
-===================================================================
---- gcc-4.5.3.orig/gcc/testsuite/gcc.dg/glibc-uclibc-2.c
-+++ /dev/null
-@@ -1,6 +0,0 @@
--/* Test -mglibc and -muclibc not allowed together. */
--/* Origin: Joseph Myers <joseph@codesourcery.com> */
--/* { dg-do link { target *-*-linux* } } */
--/* { dg-options "-muclibc -mglibc" } */
--
--/* { dg-message "-mglibc and -muclibc used together" "" { target *-*-* } 0 } */
-Index: gcc-4.5.3/libstdc++-v3/acinclude.m4
-===================================================================
---- gcc-4.5.3.orig/libstdc++-v3/acinclude.m4
-+++ gcc-4.5.3/libstdc++-v3/acinclude.m4
-@@ -95,7 +95,7 @@ AC_DEFUN([GLIBCXX_CONFIGURE], [
- ## (Right now, this only matters for enable_wchar_t, but nothing prevents
- ## other macros from doing the same. This should be automated.) -pme
-
-- # Check for uClibc since Linux platforms use different configuration
-+ # Check for C library flavor since Linux platforms use different configuration
- # directories depending on the C library in use.
- AC_EGREP_CPP([_using_uclibc], [
- #include <stdio.h>
-@@ -104,6 +104,13 @@ AC_DEFUN([GLIBCXX_CONFIGURE], [
- #endif
- ], uclibc=yes, uclibc=no)
-
-+ AC_EGREP_CPP([_using_bionic], [
-+ #include <stdio.h>
-+ #if __BIONIC__
-+ _using_bionic
-+ #endif
-+ ], bionic=yes, bionic=no)
-+
- # Find platform-specific directories containing configuration info.
- # Also possibly modify flags used elsewhere, as needed by the platform.
- GLIBCXX_CHECK_HOST
-@@ -2722,7 +2729,7 @@ void foo()
- }
- EOF
- old_CXXFLAGS="$CXXFLAGS"
-- CXXFLAGS=-S
-+ CXXFLAGS="-S -fexceptions"
- if AC_TRY_EVAL(ac_compile); then
- if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then
- enable_sjlj_exceptions=yes
-Index: gcc-4.5.3/libstdc++-v3/config/os/bionic/ctype_base.h
-===================================================================
---- /dev/null
-+++ gcc-4.5.3/libstdc++-v3/config/os/bionic/ctype_base.h
-@@ -0,0 +1,57 @@
-+// Locale support -*- C++ -*-
-+
-+// Copyright (C) 2010 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 3, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+// GNU General Public License for more details.
-+
-+// Under Section 7 of GPL version 3, you are granted additional
-+// permissions described in the GCC Runtime Library Exception, version
-+// 3.1, as published by the Free Software Foundation.
-+
-+// You should have received a copy of the GNU General Public License and
-+// a copy of the GCC Runtime Library Exception along with this program;
-+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-+// <http://www.gnu.org/licenses/>.
-+
-+//
-+// ISO C++ 14882: 22.1 Locales
-+//
-+
-+// Information as gleaned from /usr/include/ctype.h, for solaris2.5.1
-+
-+// Support for Solaris 2.5.1
-+
-+_GLIBCXX_BEGIN_NAMESPACE(std)
-+
-+ /// @brief Base class for ctype.
-+ struct ctype_base
-+ {
-+ // Non-standard typedefs.
-+ typedef const int* __to_type;
-+
-+ // NB: Offsets into ctype<char>::_M_table force a particular size
-+ // on the mask type. Because of this, we don't use an enum.
-+ typedef char mask;
-+ static const mask upper = _U;
-+ static const mask lower = _L;
-+ static const mask alpha = _U | _L;
-+ static const mask digit = _N;
-+ static const mask xdigit = _X | _N;
-+ static const mask space = _S;
-+ static const mask print = _P | _U | _L | _N | _B;
-+ static const mask graph = _P | _U | _L | _N;
-+ static const mask cntrl = _C;
-+ static const mask punct = _P;
-+ static const mask alnum = _U | _L | _N;
-+ };
-+
-+_GLIBCXX_END_NAMESPACE
-Index: gcc-4.5.3/libstdc++-v3/config/os/bionic/ctype_inline.h
-===================================================================
---- /dev/null
-+++ gcc-4.5.3/libstdc++-v3/config/os/bionic/ctype_inline.h
-@@ -0,0 +1,71 @@
-+// Locale support -*- C++ -*-
-+
-+// Copyright (C) 2010 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 3, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+// GNU General Public License for more details.
-+
-+// Under Section 7 of GPL version 3, you are granted additional
-+// permissions described in the GCC Runtime Library Exception, version
-+// 3.1, as published by the Free Software Foundation.
-+
-+// You should have received a copy of the GNU General Public License and
-+// a copy of the GCC Runtime Library Exception along with this program;
-+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-+// <http://www.gnu.org/licenses/>.
-+
-+/** @file ctype_inline.h
-+ * This is an internal header file, included by other library headers.
-+ * You should not attempt to use it directly.
-+ */
-+
-+//
-+// ISO C++ 14882: 22.1 Locales
-+//
-+
-+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
-+// functions go in ctype.cc
-+
-+_GLIBCXX_BEGIN_NAMESPACE(std)
-+
-+ bool
-+ ctype<char>::
-+ is(mask __m, char __c) const
-+ { return _M_table[static_cast<unsigned char>(__c)] & __m; }
-+
-+ const char*
-+ ctype<char>::
-+ is(const char* __low, const char* __high, mask* __vec) const
-+ {
-+ while (__low < __high)
-+ *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
-+ return __high;
-+ }
-+
-+ const char*
-+ ctype<char>::
-+ scan_is(mask __m, const char* __low, const char* __high) const
-+ {
-+ while (__low < __high && !this->is(__m, *__low))
-+ ++__low;
-+ return __low;
-+ }
-+
-+ const char*
-+ ctype<char>::
-+ scan_not(mask __m, const char* __low, const char* __high) const
-+ {
-+ while (__low < __high && this->is(__m, *__low) != 0)
-+ ++__low;
-+ return __low;
-+ }
-+
-+_GLIBCXX_END_NAMESPACE
-Index: gcc-4.5.3/libstdc++-v3/config/os/bionic/ctype_noninline.h
-===================================================================
---- /dev/null
-+++ gcc-4.5.3/libstdc++-v3/config/os/bionic/ctype_noninline.h
-@@ -0,0 +1,98 @@
-+// Locale support -*- C++ -*-
-+
-+// Copyright (C) 2010 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 3, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+// GNU General Public License for more details.
-+
-+// Under Section 7 of GPL version 3, you are granted additional
-+// permissions described in the GCC Runtime Library Exception, version
-+// 3.1, as published by the Free Software Foundation.
-+
-+// You should have received a copy of the GNU General Public License and
-+// a copy of the GCC Runtime Library Exception along with this program;
-+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-+// <http://www.gnu.org/licenses/>.
-+
-+/** @file ctype_noninline.h
-+ * This is an internal header file, included by other library headers.
-+ * You should not attempt to use it directly.
-+ */
-+
-+//
-+// ISO C++ 14882: 22.1 Locales
-+//
-+
-+// Information as gleaned from /usr/include/ctype.h
-+
-+ const ctype_base::mask*
-+ ctype<char>::classic_table() throw()
-+ { return _ctype_ + 1; }
-+
-+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
-+ size_t __refs)
-+ : facet(__refs), _M_del(__table != 0 && __del),
-+ _M_toupper(NULL), _M_tolower(NULL),
-+ _M_table(__table ? __table : classic_table())
-+ {
-+ memset(_M_widen, 0, sizeof(_M_widen));
-+ _M_widen_ok = 0;
-+ memset(_M_narrow, 0, sizeof(_M_narrow));
-+ _M_narrow_ok = 0;
-+ }
-+
-+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
-+ : facet(__refs), _M_del(__table != 0 && __del),
-+ _M_toupper(NULL), _M_tolower(NULL),
-+ _M_table(__table ? __table : classic_table())
-+ {
-+ memset(_M_widen, 0, sizeof(_M_widen));
-+ _M_widen_ok = 0;
-+ memset(_M_narrow, 0, sizeof(_M_narrow));
-+ _M_narrow_ok = 0;
-+ }
-+
-+ char
-+ ctype<char>::do_toupper(char __c) const
-+ {
-+ int __x = __c;
-+ return (this->is(ctype_base::lower, __c) ? (__x - 'a' + 'A') : __x);
-+ }
-+
-+ const char*
-+ ctype<char>::do_toupper(char* __low, const char* __high) const
-+ {
-+ while (__low < __high)
-+ {
-+ *__low = this->do_toupper(*__low);
-+ ++__low;
-+ }
-+ return __high;
-+ }
-+
-+ char
-+ ctype<char>::do_tolower(char __c) const
-+ {
-+ int __x = __c;
-+ return (this->is(ctype_base::upper, __c) ? (__x - 'A' + 'a') : __x);
-+ }
-+
-+ const char*
-+ ctype<char>::do_tolower(char* __low, const char* __high) const
-+ {
-+ while (__low < __high)
-+ {
-+ *__low = this->do_tolower(*__low);
-+ ++__low;
-+ }
-+ return __high;
-+ }
-+
-Index: gcc-4.5.3/libstdc++-v3/config/os/bionic/os_defines.h
-===================================================================
---- /dev/null
-+++ gcc-4.5.3/libstdc++-v3/config/os/bionic/os_defines.h
-@@ -0,0 +1,36 @@
-+// Specific definitions for Bionic -*- C++ -*-
-+
-+// Copyright (C) 2010 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 3, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+// GNU General Public License for more details.
-+
-+// Under Section 7 of GPL version 3, you are granted additional
-+// permissions described in the GCC Runtime Library Exception, version
-+// 3.1, as published by the Free Software Foundation.
-+
-+// You should have received a copy of the GNU General Public License and
-+// a copy of the GCC Runtime Library Exception along with this program;
-+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-+// <http://www.gnu.org/licenses/>.
-+
-+/** @file os_defines.h
-+ * This is an internal header file, included by other library headers.
-+ * You should not attempt to use it directly.
-+ */
-+
-+#ifndef _GLIBCXX_OS_DEFINES
-+#define _GLIBCXX_OS_DEFINES 1
-+
-+// System-specific #define, typedefs, corrections, etc, go here. This
-+// file will come before all others.
-+
-+#endif
-Index: gcc-4.5.3/libstdc++-v3/configure
-===================================================================
---- gcc-4.5.3.orig/libstdc++-v3/configure
-+++ gcc-4.5.3/libstdc++-v3/configure
-@@ -5185,7 +5185,7 @@ fi
- ## (Right now, this only matters for enable_wchar_t, but nothing prevents
- ## other macros from doing the same. This should be automated.) -pme
-
-- # Check for uClibc since Linux platforms use different configuration
-+ # Check for C library flavor since Linux platforms use different configuration
- # directories depending on the C library in use.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
-@@ -5205,6 +5205,24 @@ fi
- rm -f conftest*
-
-
-+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h. */
-+
-+ #include <stdio.h>
-+ #if __BIONIC__
-+ _using_bionic
-+ #endif
-+
-+_ACEOF
-+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-+ $EGREP "_using_bionic" >/dev/null 2>&1; then :
-+ bionic=yes
-+else
-+ bionic=no
-+fi
-+rm -f conftest*
-+
-+
- # Find platform-specific directories containing configuration info.
- # Also possibly modify flags used elsewhere, as needed by the platform.
-
-@@ -14897,7 +14915,7 @@ void foo()
- }
- EOF
- old_CXXFLAGS="$CXXFLAGS"
-- CXXFLAGS=-S
-+ CXXFLAGS="-S -fexceptions"
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-Index: gcc-4.5.3/libstdc++-v3/configure.host
-===================================================================
---- gcc-4.5.3.orig/libstdc++-v3/configure.host
-+++ gcc-4.5.3/libstdc++-v3/configure.host
-@@ -238,6 +238,8 @@ case "${host_os}" in
- gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)
- if [ "$uclibc" = "yes" ]; then
- os_include_dir="os/uclibc"
-+ elif [ "$bionic" = "yes" ]; then
-+ os_include_dir="os/bionic"
- else
- os_include_dir="os/gnu-linux"
- fi