New x86 toolchain i686-linux-android-4.6 (darwin-x86)

Build instructions (on MacOSX):

export NDK=your-AOSP-path/ndk
cd $NDK ; ./build/tools/dev-cleanup.sh
./build/tools/download-toolchain-sources.sh /tmp/ndk-$USER/src
./build/tools/gen-platforms.sh --minimal --dst-dir=$NDK --ndk-dir=$NDK --arch=x86
./build/tools/build-gcc.sh /tmp/ndk-$USER/src $NDK --gdb-version=7.3.x x86-4.6
rm -rf $NDK/toolchains/x86-4.6/prebuilt/darwin-x86/sysroot
cp -a $NDK/toolchains/x86-4.6/prebuilt/darwin-x86/* $NDK/../prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.6

Change-Id: I571ede768cca1ea19477faee3614cff35929937c
diff --git a/SOURCES b/SOURCES
index 13e5ccf..5bfae6b 100644
--- a/SOURCES
+++ b/SOURCES
@@ -1,8 +1,8 @@
-toolchain/build.git              777b41ba19cc104b6cefc3b4c408c1121ae95aaa Revert setting GDB_TARGET for i[3456]86-*-linux-android and x86_64-*-linux-android
+toolchain/build.git              6d144f8edfd3879d3c241713331460d9a6e3ee86 Allow --enable-gold co-exists with --enable-ld=default
 toolchain/gmp.git                e6b9669dafc6a5f83c80b4b4176359b78bccdc90 Add gmp-5.0.5.tar.bz2
 toolchain/mpfr.git               bde731396c38c8d5b0bca800aace6a690d0d2978 add mpfr-2.4.2.tar.bz2
 toolchain/mpc.git                a4109ccc6e07f72f41c397a17fdfbed3e5e19c66 Add mpc-0.8.1 package to toolchain source.
 toolchain/expat.git              40172a0ae9d40a068f1e1a48ffcf6a1ccf765ed5 expat package for building gdb-7.3
-toolchain/binutils.git           82d2721b9f7e12245848d8527d1b85822c9e8810 Preserve the original p_align and p_flags if they are valid.
-toolchain/gcc.git                5ac5f4e1140f42e3acf9a59fb7f92b28fcb94203 2012-05-07  Jing Yu  <jingyu@google.com>
+toolchain/binutils.git           e7891a8a63d5c3eb3bfd3e2d3a94a05438a43373 Fixed binutils-2.21/gold build in MacOSX
+toolchain/gcc.git                5f2f4ef69e2f64970aad2c303a529c49789021d8 2012-05-18   Jing Yu  <jingyu@google.com>
 toolchain/gdb.git                b3007e980fad8bf4fc0fca1d3823aff648339798 Patch GDB 6.6 and 7.1.x to understand linux-android
diff --git a/bin/i686-linux-android-addr2line b/bin/i686-linux-android-addr2line
index f24b480..a55ec4e 100755
--- a/bin/i686-linux-android-addr2line
+++ b/bin/i686-linux-android-addr2line
Binary files differ
diff --git a/bin/i686-linux-android-ar b/bin/i686-linux-android-ar
index 15da95a..19d4db6 100755
--- a/bin/i686-linux-android-ar
+++ b/bin/i686-linux-android-ar
Binary files differ
diff --git a/bin/i686-linux-android-as b/bin/i686-linux-android-as
index f6af6c7..03711b8 100755
--- a/bin/i686-linux-android-as
+++ b/bin/i686-linux-android-as
Binary files differ
diff --git a/bin/i686-linux-android-c++ b/bin/i686-linux-android-c++
index c29a88a..1e90166 100755
--- a/bin/i686-linux-android-c++
+++ b/bin/i686-linux-android-c++
Binary files differ
diff --git a/bin/i686-linux-android-c++filt b/bin/i686-linux-android-c++filt
index f7a8efc..8f1d4fe 100755
--- a/bin/i686-linux-android-c++filt
+++ b/bin/i686-linux-android-c++filt
Binary files differ
diff --git a/bin/i686-linux-android-cpp b/bin/i686-linux-android-cpp
index 8820391..ba7233e 100755
--- a/bin/i686-linux-android-cpp
+++ b/bin/i686-linux-android-cpp
Binary files differ
diff --git a/bin/i686-linux-android-elfedit b/bin/i686-linux-android-elfedit
index d5976f9..48abebb 100755
--- a/bin/i686-linux-android-elfedit
+++ b/bin/i686-linux-android-elfedit
Binary files differ
diff --git a/bin/i686-linux-android-g++ b/bin/i686-linux-android-g++
index c29a88a..1e90166 100755
--- a/bin/i686-linux-android-g++
+++ b/bin/i686-linux-android-g++
Binary files differ
diff --git a/bin/i686-linux-android-gcc b/bin/i686-linux-android-gcc
index 67353f2..a5a0d4f 100755
--- a/bin/i686-linux-android-gcc
+++ b/bin/i686-linux-android-gcc
Binary files differ
diff --git a/bin/i686-linux-android-gcc-4.6.x-google b/bin/i686-linux-android-gcc-4.6.x-google
index 67353f2..a5a0d4f 100755
--- a/bin/i686-linux-android-gcc-4.6.x-google
+++ b/bin/i686-linux-android-gcc-4.6.x-google
Binary files differ
diff --git a/bin/i686-linux-android-gcov b/bin/i686-linux-android-gcov
index fccc1a9..1a2d4bc 100755
--- a/bin/i686-linux-android-gcov
+++ b/bin/i686-linux-android-gcov
Binary files differ
diff --git a/bin/i686-linux-android-gdb b/bin/i686-linux-android-gdb
index 236e66a..fc21ba3 100755
--- a/bin/i686-linux-android-gdb
+++ b/bin/i686-linux-android-gdb
Binary files differ
diff --git a/bin/i686-linux-android-gdbtui b/bin/i686-linux-android-gdbtui
index 7045454..f14e746 100755
--- a/bin/i686-linux-android-gdbtui
+++ b/bin/i686-linux-android-gdbtui
Binary files differ
diff --git a/bin/i686-linux-android-gprof b/bin/i686-linux-android-gprof
index cf527a1..739864c 100755
--- a/bin/i686-linux-android-gprof
+++ b/bin/i686-linux-android-gprof
Binary files differ
diff --git a/bin/i686-linux-android-ld b/bin/i686-linux-android-ld
index 0a81807..348fc72 100755
--- a/bin/i686-linux-android-ld
+++ b/bin/i686-linux-android-ld
Binary files differ
diff --git a/bin/i686-linux-android-ld.bfd b/bin/i686-linux-android-ld.bfd
index 0a81807..348fc72 100755
--- a/bin/i686-linux-android-ld.bfd
+++ b/bin/i686-linux-android-ld.bfd
Binary files differ
diff --git a/bin/i686-linux-android-ld.gold b/bin/i686-linux-android-ld.gold
new file mode 100755
index 0000000..bfc6aed
--- /dev/null
+++ b/bin/i686-linux-android-ld.gold
Binary files differ
diff --git a/bin/i686-linux-android-nm b/bin/i686-linux-android-nm
index 7199995..8c139f8 100755
--- a/bin/i686-linux-android-nm
+++ b/bin/i686-linux-android-nm
Binary files differ
diff --git a/bin/i686-linux-android-objcopy b/bin/i686-linux-android-objcopy
index 1221a9e..60a0897 100755
--- a/bin/i686-linux-android-objcopy
+++ b/bin/i686-linux-android-objcopy
Binary files differ
diff --git a/bin/i686-linux-android-objdump b/bin/i686-linux-android-objdump
index ef92759..69243a2 100755
--- a/bin/i686-linux-android-objdump
+++ b/bin/i686-linux-android-objdump
Binary files differ
diff --git a/bin/i686-linux-android-ranlib b/bin/i686-linux-android-ranlib
index a7699e5..e8c0490 100755
--- a/bin/i686-linux-android-ranlib
+++ b/bin/i686-linux-android-ranlib
Binary files differ
diff --git a/bin/i686-linux-android-readelf b/bin/i686-linux-android-readelf
index abd41ef..12777d4 100755
--- a/bin/i686-linux-android-readelf
+++ b/bin/i686-linux-android-readelf
Binary files differ
diff --git a/bin/i686-linux-android-size b/bin/i686-linux-android-size
index 90477cb..cc2fef7 100755
--- a/bin/i686-linux-android-size
+++ b/bin/i686-linux-android-size
Binary files differ
diff --git a/bin/i686-linux-android-strings b/bin/i686-linux-android-strings
index 5a44ed7..f113331 100755
--- a/bin/i686-linux-android-strings
+++ b/bin/i686-linux-android-strings
Binary files differ
diff --git a/bin/i686-linux-android-strip b/bin/i686-linux-android-strip
index e1450a2..453e7ed 100755
--- a/bin/i686-linux-android-strip
+++ b/bin/i686-linux-android-strip
Binary files differ
diff --git a/i686-linux-android/bin/ar b/i686-linux-android/bin/ar
index 15da95a..19d4db6 100755
--- a/i686-linux-android/bin/ar
+++ b/i686-linux-android/bin/ar
Binary files differ
diff --git a/i686-linux-android/bin/as b/i686-linux-android/bin/as
index f6af6c7..03711b8 100755
--- a/i686-linux-android/bin/as
+++ b/i686-linux-android/bin/as
Binary files differ
diff --git a/i686-linux-android/bin/c++ b/i686-linux-android/bin/c++
index c29a88a..1e90166 100755
--- a/i686-linux-android/bin/c++
+++ b/i686-linux-android/bin/c++
Binary files differ
diff --git a/i686-linux-android/bin/g++ b/i686-linux-android/bin/g++
index c29a88a..1e90166 100755
--- a/i686-linux-android/bin/g++
+++ b/i686-linux-android/bin/g++
Binary files differ
diff --git a/i686-linux-android/bin/gcc b/i686-linux-android/bin/gcc
index 67353f2..a5a0d4f 100755
--- a/i686-linux-android/bin/gcc
+++ b/i686-linux-android/bin/gcc
Binary files differ
diff --git a/i686-linux-android/bin/ld b/i686-linux-android/bin/ld
index 0a81807..348fc72 100755
--- a/i686-linux-android/bin/ld
+++ b/i686-linux-android/bin/ld
Binary files differ
diff --git a/i686-linux-android/bin/ld.bfd b/i686-linux-android/bin/ld.bfd
index 0a81807..348fc72 100755
--- a/i686-linux-android/bin/ld.bfd
+++ b/i686-linux-android/bin/ld.bfd
Binary files differ
diff --git a/i686-linux-android/bin/ld.gold b/i686-linux-android/bin/ld.gold
new file mode 100755
index 0000000..bfc6aed
--- /dev/null
+++ b/i686-linux-android/bin/ld.gold
Binary files differ
diff --git a/i686-linux-android/bin/nm b/i686-linux-android/bin/nm
index 7199995..8c139f8 100755
--- a/i686-linux-android/bin/nm
+++ b/i686-linux-android/bin/nm
Binary files differ
diff --git a/i686-linux-android/bin/objcopy b/i686-linux-android/bin/objcopy
index 1221a9e..60a0897 100755
--- a/i686-linux-android/bin/objcopy
+++ b/i686-linux-android/bin/objcopy
Binary files differ
diff --git a/i686-linux-android/bin/objdump b/i686-linux-android/bin/objdump
index ef92759..69243a2 100755
--- a/i686-linux-android/bin/objdump
+++ b/i686-linux-android/bin/objdump
Binary files differ
diff --git a/i686-linux-android/bin/ranlib b/i686-linux-android/bin/ranlib
index a7699e5..e8c0490 100755
--- a/i686-linux-android/bin/ranlib
+++ b/i686-linux-android/bin/ranlib
Binary files differ
diff --git a/i686-linux-android/bin/strip b/i686-linux-android/bin/strip
index e1450a2..453e7ed 100755
--- a/i686-linux-android/bin/strip
+++ b/i686-linux-android/bin/strip
Binary files differ
diff --git a/i686-linux-android/lib/ldscripts/elf_i386.x b/i686-linux-android/lib/ldscripts/elf_i386.x
index ea251b4..16327dc 100644
--- a/i686-linux-android/lib/ldscripts/elf_i386.x
+++ b/i686-linux-android/lib/ldscripts/elf_i386.x
@@ -66,8 +66,7 @@
   .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
   /* Adjust the address for the data segment.  We want to align at exactly
      a page boundary to make life easier for apriori. */
-  . = ALIGN(4096);
-  . = DATA_SEGMENT_ALIGN(4096,4096);
+  . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
   /* Exception handling  */
   .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) }
   .gcc_except_table   : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
diff --git a/i686-linux-android/lib/ldscripts/elf_i386.xbn b/i686-linux-android/lib/ldscripts/elf_i386.xbn
index fbdc5df..cb5de61 100644
--- a/i686-linux-android/lib/ldscripts/elf_i386.xbn
+++ b/i686-linux-android/lib/ldscripts/elf_i386.xbn
@@ -65,8 +65,7 @@
   .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
   /* Adjust the address for the data segment.  We want to align at exactly
      a page boundary to make life easier for apriori. */
-  . = ALIGN(4096);
-  . = DATA_SEGMENT_ALIGN(4096,4096);
+  . = .;
   /* Exception handling  */
   .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) }
   .gcc_except_table   : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
diff --git a/i686-linux-android/lib/ldscripts/elf_i386.xc b/i686-linux-android/lib/ldscripts/elf_i386.xc
index 2900ef4..d58e7d1 100644
--- a/i686-linux-android/lib/ldscripts/elf_i386.xc
+++ b/i686-linux-android/lib/ldscripts/elf_i386.xc
@@ -68,8 +68,7 @@
   .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
   /* Adjust the address for the data segment.  We want to align at exactly
      a page boundary to make life easier for apriori. */
-  . = ALIGN(4096);
-  . = DATA_SEGMENT_ALIGN(4096,4096);
+  . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
   /* Exception handling  */
   .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) }
   .gcc_except_table   : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
diff --git a/i686-linux-android/lib/ldscripts/elf_i386.xd b/i686-linux-android/lib/ldscripts/elf_i386.xd
index 3ce3dd7..168bc07 100644
--- a/i686-linux-android/lib/ldscripts/elf_i386.xd
+++ b/i686-linux-android/lib/ldscripts/elf_i386.xd
@@ -65,8 +65,7 @@
   .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
   /* Adjust the address for the data segment.  We want to align at exactly
      a page boundary to make life easier for apriori. */
-  . = ALIGN(4096);
-  . = DATA_SEGMENT_ALIGN(4096,4096);
+  . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
   /* Exception handling  */
   .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) }
   .gcc_except_table   : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
diff --git a/i686-linux-android/lib/ldscripts/elf_i386.xdc b/i686-linux-android/lib/ldscripts/elf_i386.xdc
index 94d4dae..4496dde 100644
--- a/i686-linux-android/lib/ldscripts/elf_i386.xdc
+++ b/i686-linux-android/lib/ldscripts/elf_i386.xdc
@@ -68,8 +68,7 @@
   .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
   /* Adjust the address for the data segment.  We want to align at exactly
      a page boundary to make life easier for apriori. */
-  . = ALIGN(4096);
-  . = DATA_SEGMENT_ALIGN(4096,4096);
+  . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
   /* Exception handling  */
   .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) }
   .gcc_except_table   : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
diff --git a/i686-linux-android/lib/ldscripts/elf_i386.xdw b/i686-linux-android/lib/ldscripts/elf_i386.xdw
index a5211f3..d240fb0 100644
--- a/i686-linux-android/lib/ldscripts/elf_i386.xdw
+++ b/i686-linux-android/lib/ldscripts/elf_i386.xdw
@@ -68,8 +68,7 @@
   .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
   /* Adjust the address for the data segment.  We want to align at exactly
      a page boundary to make life easier for apriori. */
-  . = ALIGN(4096);
-  . = DATA_SEGMENT_ALIGN(4096,4096);
+  . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
   /* Exception handling  */
   .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) }
   .gcc_except_table   : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
diff --git a/i686-linux-android/lib/ldscripts/elf_i386.xn b/i686-linux-android/lib/ldscripts/elf_i386.xn
index 2926cb6..ace7a01 100644
--- a/i686-linux-android/lib/ldscripts/elf_i386.xn
+++ b/i686-linux-android/lib/ldscripts/elf_i386.xn
@@ -65,8 +65,7 @@
   .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
   /* Adjust the address for the data segment.  We want to align at exactly
      a page boundary to make life easier for apriori. */
-  . = ALIGN(4096);
-  . = DATA_SEGMENT_ALIGN(4096,4096);
+  . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
   /* Exception handling  */
   .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) }
   .gcc_except_table   : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
diff --git a/i686-linux-android/lib/ldscripts/elf_i386.xr b/i686-linux-android/lib/ldscripts/elf_i386.xr
index ec2454f..fe5d02b 100644
--- a/i686-linux-android/lib/ldscripts/elf_i386.xr
+++ b/i686-linux-android/lib/ldscripts/elf_i386.xr
@@ -57,8 +57,6 @@
   .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
   /* Adjust the address for the data segment.  We want to align at exactly
      a page boundary to make life easier for apriori. */
-  . = ALIGN(4096);
-  . = DATA_SEGMENT_ALIGN(4096,4096);
   /* Exception handling  */
   .eh_frame     0 : ONLY_IF_RW { KEEP (*(.eh_frame)) }
   .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
diff --git a/i686-linux-android/lib/ldscripts/elf_i386.xs b/i686-linux-android/lib/ldscripts/elf_i386.xs
index f731bdf..ee14884 100644
--- a/i686-linux-android/lib/ldscripts/elf_i386.xs
+++ b/i686-linux-android/lib/ldscripts/elf_i386.xs
@@ -62,8 +62,7 @@
   .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
   /* Adjust the address for the data segment.  We want to align at exactly
      a page boundary to make life easier for apriori. */
-  . = ALIGN(4096);
-  . = DATA_SEGMENT_ALIGN(4096,4096);
+  . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
   /* Exception handling  */
   .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) }
   .gcc_except_table   : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
diff --git a/i686-linux-android/lib/ldscripts/elf_i386.xsc b/i686-linux-android/lib/ldscripts/elf_i386.xsc
index 361a7b3..db28b2d 100644
--- a/i686-linux-android/lib/ldscripts/elf_i386.xsc
+++ b/i686-linux-android/lib/ldscripts/elf_i386.xsc
@@ -66,8 +66,7 @@
   .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
   /* Adjust the address for the data segment.  We want to align at exactly
      a page boundary to make life easier for apriori. */
-  . = ALIGN(4096);
-  . = DATA_SEGMENT_ALIGN(4096,4096);
+  . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
   /* Exception handling  */
   .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) }
   .gcc_except_table   : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
diff --git a/i686-linux-android/lib/ldscripts/elf_i386.xsw b/i686-linux-android/lib/ldscripts/elf_i386.xsw
index b5421be..9d74e32 100644
--- a/i686-linux-android/lib/ldscripts/elf_i386.xsw
+++ b/i686-linux-android/lib/ldscripts/elf_i386.xsw
@@ -65,8 +65,7 @@
   .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
   /* Adjust the address for the data segment.  We want to align at exactly
      a page boundary to make life easier for apriori. */
-  . = ALIGN(4096);
-  . = DATA_SEGMENT_ALIGN(4096,4096);
+  . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
   /* Exception handling  */
   .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) }
   .gcc_except_table   : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
diff --git a/i686-linux-android/lib/ldscripts/elf_i386.xu b/i686-linux-android/lib/ldscripts/elf_i386.xu
index 9b68edc..7b5d8c5 100644
--- a/i686-linux-android/lib/ldscripts/elf_i386.xu
+++ b/i686-linux-android/lib/ldscripts/elf_i386.xu
@@ -57,8 +57,6 @@
   .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
   /* Adjust the address for the data segment.  We want to align at exactly
      a page boundary to make life easier for apriori. */
-  . = ALIGN(4096);
-  . = DATA_SEGMENT_ALIGN(4096,4096);
   /* Exception handling  */
   .eh_frame     0 : ONLY_IF_RW { KEEP (*(.eh_frame)) }
   .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
diff --git a/i686-linux-android/lib/ldscripts/elf_i386.xw b/i686-linux-android/lib/ldscripts/elf_i386.xw
index 6a75231..62240ea 100644
--- a/i686-linux-android/lib/ldscripts/elf_i386.xw
+++ b/i686-linux-android/lib/ldscripts/elf_i386.xw
@@ -68,8 +68,7 @@
   .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
   /* Adjust the address for the data segment.  We want to align at exactly
      a page boundary to make life easier for apriori. */
-  . = ALIGN(4096);
-  . = DATA_SEGMENT_ALIGN(4096,4096);
+  . = ALIGN (CONSTANT (MAXPAGESIZE)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
   /* Exception handling  */
   .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) }
   .gcc_except_table   : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
diff --git a/lib/gcc/i686-linux-android/4.6.x-google/crtfastmath.o b/lib/gcc/i686-linux-android/4.6.x-google/crtfastmath.o
index a0956fe..878bacd 100644
--- a/lib/gcc/i686-linux-android/4.6.x-google/crtfastmath.o
+++ b/lib/gcc/i686-linux-android/4.6.x-google/crtfastmath.o
Binary files differ
diff --git a/lib/gcc/i686-linux-android/4.6.x-google/crtprec32.o b/lib/gcc/i686-linux-android/4.6.x-google/crtprec32.o
index 6f5d669..bda45a9 100644
--- a/lib/gcc/i686-linux-android/4.6.x-google/crtprec32.o
+++ b/lib/gcc/i686-linux-android/4.6.x-google/crtprec32.o
Binary files differ
diff --git a/lib/gcc/i686-linux-android/4.6.x-google/crtprec64.o b/lib/gcc/i686-linux-android/4.6.x-google/crtprec64.o
index 2f27ef6..07f5844 100644
--- a/lib/gcc/i686-linux-android/4.6.x-google/crtprec64.o
+++ b/lib/gcc/i686-linux-android/4.6.x-google/crtprec64.o
Binary files differ
diff --git a/lib/gcc/i686-linux-android/4.6.x-google/crtprec80.o b/lib/gcc/i686-linux-android/4.6.x-google/crtprec80.o
index 1c0ed36..c5c340d 100644
--- a/lib/gcc/i686-linux-android/4.6.x-google/crtprec80.o
+++ b/lib/gcc/i686-linux-android/4.6.x-google/crtprec80.o
Binary files differ
diff --git a/lib/gcc/i686-linux-android/4.6.x-google/include-fixed/asm/posix_types.h b/lib/gcc/i686-linux-android/4.6.x-google/include-fixed/asm/posix_types.h
index 150143f..9ff36f5 100644
--- a/lib/gcc/i686-linux-android/4.6.x-google/include-fixed/asm/posix_types.h
+++ b/lib/gcc/i686-linux-android/4.6.x-google/include-fixed/asm/posix_types.h
@@ -2,7 +2,7 @@
 
     It has been auto-edited by fixincludes from:
 
-	"/Users/andrewhsieh/internaldroid/ndk/toolchains/x86-4.6/prebuilt/darwin-x86/sysroot/usr/include/asm/posix_types.h"
+	"/tmp/ndk-User/build/toolchain/prefix/sysroot/usr/include/asm/posix_types.h"
 
     This had to be done to correct non-standard usages in the
     original, manufacturer supplied header file.  */
diff --git a/lib/gcc/i686-linux-android/4.6.x-google/include-fixed/linux/a.out.h b/lib/gcc/i686-linux-android/4.6.x-google/include-fixed/linux/a.out.h
index cd7a42e..737b879 100644
--- a/lib/gcc/i686-linux-android/4.6.x-google/include-fixed/linux/a.out.h
+++ b/lib/gcc/i686-linux-android/4.6.x-google/include-fixed/linux/a.out.h
@@ -2,7 +2,7 @@
 
     It has been auto-edited by fixincludes from:
 
-	"/Users/andrewhsieh/internaldroid/ndk/toolchains/x86-4.6/prebuilt/darwin-x86/sysroot/usr/include/linux/a.out.h"
+	"/tmp/ndk-User/build/toolchain/prefix/sysroot/usr/include/linux/a.out.h"
 
     This had to be done to correct non-standard usages in the
     original, manufacturer supplied header file.  */
diff --git a/lib/gcc/i686-linux-android/4.6.x-google/include-fixed/stdio.h b/lib/gcc/i686-linux-android/4.6.x-google/include-fixed/stdio.h
index 279e580..3656425 100644
--- a/lib/gcc/i686-linux-android/4.6.x-google/include-fixed/stdio.h
+++ b/lib/gcc/i686-linux-android/4.6.x-google/include-fixed/stdio.h
@@ -2,7 +2,7 @@
 
     It has been auto-edited by fixincludes from:
 
-	"/Users/andrewhsieh/internaldroid/ndk/toolchains/x86-4.6/prebuilt/darwin-x86/sysroot/usr/include/stdio.h"
+	"/tmp/ndk-User/build/toolchain/prefix/sysroot/usr/include/stdio.h"
 
     This had to be done to correct non-standard usages in the
     original, manufacturer supplied header file.  */
diff --git a/lib/gcc/i686-linux-android/4.6.x-google/include-fixed/sys/types.h b/lib/gcc/i686-linux-android/4.6.x-google/include-fixed/sys/types.h
index 971ece1..e36e0d8 100644
--- a/lib/gcc/i686-linux-android/4.6.x-google/include-fixed/sys/types.h
+++ b/lib/gcc/i686-linux-android/4.6.x-google/include-fixed/sys/types.h
@@ -2,7 +2,7 @@
 
     It has been auto-edited by fixincludes from:
 
-	"/Users/andrewhsieh/internaldroid/ndk/toolchains/x86-4.6/prebuilt/darwin-x86/sysroot/usr/include/sys/types.h"
+	"/tmp/ndk-User/build/toolchain/prefix/sysroot/usr/include/sys/types.h"
 
     This had to be done to correct non-standard usages in the
     original, manufacturer supplied header file.  */
diff --git a/lib/gcc/i686-linux-android/4.6.x-google/libgcc.a b/lib/gcc/i686-linux-android/4.6.x-google/libgcc.a
index c1c4b3e..b416761 100644
--- a/lib/gcc/i686-linux-android/4.6.x-google/libgcc.a
+++ b/lib/gcc/i686-linux-android/4.6.x-google/libgcc.a
Binary files differ
diff --git a/lib/gcc/i686-linux-android/4.6.x-google/libgcov.a b/lib/gcc/i686-linux-android/4.6.x-google/libgcov.a
index 018d346..f019e1d 100644
--- a/lib/gcc/i686-linux-android/4.6.x-google/libgcov.a
+++ b/lib/gcc/i686-linux-android/4.6.x-google/libgcov.a
Binary files differ
diff --git a/lib/libiberty.a b/lib/libiberty.a
index 3c32ff4..0e47e7f 100644
--- a/lib/libiberty.a
+++ b/lib/libiberty.a
Binary files differ
diff --git a/lib32/libbfd.a b/lib32/libbfd.a
index 33224a3..7cec250 100644
--- a/lib32/libbfd.a
+++ b/lib32/libbfd.a
Binary files differ
diff --git a/lib32/libbfd.la b/lib32/libbfd.la
index 41c81ef..0e40c62 100755
--- a/lib32/libbfd.la
+++ b/lib32/libbfd.la
@@ -38,4 +38,4 @@
 dlpreopen=''
 
 # Directory that this library needs to be installed in:
-libdir='/Users/andrewhsieh/internaldroid/ndk/toolchains/x86-4.6/prebuilt/darwin-x86/x86_64-apple-darwin/i686-linux-android/lib'
+libdir='/tmp/ndk-User/build/toolchain/prefix/i686-apple-darwin/i686-linux-android/lib'
diff --git a/lib32/libintl.a b/lib32/libintl.a
index 2429a32..1e79ee1 100644
--- a/lib32/libintl.a
+++ b/lib32/libintl.a
Binary files differ
diff --git a/libexec/gcc/i686-linux-android/4.6.x-google/cc1 b/libexec/gcc/i686-linux-android/4.6.x-google/cc1
index bdd011c..e7dfc8c 100755
--- a/libexec/gcc/i686-linux-android/4.6.x-google/cc1
+++ b/libexec/gcc/i686-linux-android/4.6.x-google/cc1
Binary files differ
diff --git a/libexec/gcc/i686-linux-android/4.6.x-google/cc1plus b/libexec/gcc/i686-linux-android/4.6.x-google/cc1plus
index 5c562d8..c1f03a1 100755
--- a/libexec/gcc/i686-linux-android/4.6.x-google/cc1plus
+++ b/libexec/gcc/i686-linux-android/4.6.x-google/cc1plus
Binary files differ
diff --git a/libexec/gcc/i686-linux-android/4.6.x-google/collect2 b/libexec/gcc/i686-linux-android/4.6.x-google/collect2
index 100dc4b..5c70014 100755
--- a/libexec/gcc/i686-linux-android/4.6.x-google/collect2
+++ b/libexec/gcc/i686-linux-android/4.6.x-google/collect2
Binary files differ
diff --git a/libexec/gcc/i686-linux-android/4.6.x-google/libfunction_reordering_plugin.0.so b/libexec/gcc/i686-linux-android/4.6.x-google/libfunction_reordering_plugin.0.so
index 01b6286..af33175 100755
--- a/libexec/gcc/i686-linux-android/4.6.x-google/libfunction_reordering_plugin.0.so
+++ b/libexec/gcc/i686-linux-android/4.6.x-google/libfunction_reordering_plugin.0.so
Binary files differ
diff --git a/libexec/gcc/i686-linux-android/4.6.x-google/libfunction_reordering_plugin.la b/libexec/gcc/i686-linux-android/4.6.x-google/libfunction_reordering_plugin.la
index b613eb2..7b075e6 100755
--- a/libexec/gcc/i686-linux-android/4.6.x-google/libfunction_reordering_plugin.la
+++ b/libexec/gcc/i686-linux-android/4.6.x-google/libfunction_reordering_plugin.la
@@ -38,4 +38,4 @@
 dlpreopen=''
 
 # Directory that this library needs to be installed in:
-libdir='/Users/andrewhsieh/internaldroid/ndk/toolchains/x86-4.6/prebuilt/darwin-x86/libexec/gcc/i686-linux-android/4.6.x-google'
+libdir='/tmp/ndk-User/build/toolchain/prefix/libexec/gcc/i686-linux-android/4.6.x-google'
diff --git a/libexec/gcc/i686-linux-android/4.6.x-google/liblto_plugin.0.so b/libexec/gcc/i686-linux-android/4.6.x-google/liblto_plugin.0.so
index 54678e0..96212a7 100755
--- a/libexec/gcc/i686-linux-android/4.6.x-google/liblto_plugin.0.so
+++ b/libexec/gcc/i686-linux-android/4.6.x-google/liblto_plugin.0.so
Binary files differ
diff --git a/libexec/gcc/i686-linux-android/4.6.x-google/liblto_plugin.la b/libexec/gcc/i686-linux-android/4.6.x-google/liblto_plugin.la
index 46b3c4d..86de6b6 100755
--- a/libexec/gcc/i686-linux-android/4.6.x-google/liblto_plugin.la
+++ b/libexec/gcc/i686-linux-android/4.6.x-google/liblto_plugin.la
@@ -38,4 +38,4 @@
 dlpreopen=''
 
 # Directory that this library needs to be installed in:
-libdir='/Users/andrewhsieh/internaldroid/ndk/toolchains/x86-4.6/prebuilt/darwin-x86/libexec/gcc/i686-linux-android/4.6.x-google'
+libdir='/tmp/ndk-User/build/toolchain/prefix/libexec/gcc/i686-linux-android/4.6.x-google'
diff --git a/libexec/gcc/i686-linux-android/4.6.x-google/lto-wrapper b/libexec/gcc/i686-linux-android/4.6.x-google/lto-wrapper
index 2dacefc..b7b6396 100755
--- a/libexec/gcc/i686-linux-android/4.6.x-google/lto-wrapper
+++ b/libexec/gcc/i686-linux-android/4.6.x-google/lto-wrapper
Binary files differ
diff --git a/libexec/gcc/i686-linux-android/4.6.x-google/lto1 b/libexec/gcc/i686-linux-android/4.6.x-google/lto1
index 865b0d1..b4a9476 100755
--- a/libexec/gcc/i686-linux-android/4.6.x-google/lto1
+++ b/libexec/gcc/i686-linux-android/4.6.x-google/lto1
Binary files differ