aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix ARM/GCC-4.7,4.8 generates insufficient alignment for NEON vst/vldAndrew Hsieh2013-05-152-4/+12
| | | | | | | | | | | | | | GCC allocates memory buffer and passes it as the first hidden argument for function return large composite type (ie. > 4 bytes for all NDK toolchain). Problem is that GCC doesn't observe the aligement required by the type, and ARM EABI only requires stack to be aligned to 8-byte. Please see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57271 for external bug tracking this issue and testcase. This CL offers temp relief before formal one Change-Id: I8004bc4208487e539ba8b0c9686c44ac86c37d83
* Add new GCC/MIPS option -mldc1-sdc1Andrew Hsieh2013-04-268-4/+20
| | | | | | | | ldc1/sdc1 needs memory to be 8-byte aligned. This option is on by default for arch supports it, but can be turned off by "-mno-ldc1-sdc1" to workaround issue, for example. Change-Id: I14291dc4280e75f6c765c933b60eb1b7cd44f974
* Merge "[4.7] x32: Backport x32 support into 4.7"Andrew Hsieh2013-04-2287-395/+1483
|\
| * [4.7] x32: Backport x32 support into 4.7Pavel Chupin2013-04-1887-395/+1483
| | | | | | | | | | | | | | | | This patch contains all gcc changes required to build x32 compiler. They are backported from 4.8/trunk. Change-Id: I923f639c1f0cee5812b0f555a39bab0bd0723865 Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
* | Fix GNU4.7/4.8 libstdc++ for clangAndrew Hsieh2013-04-194-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Two fixes 1) Undefine GCC4.7/4.8 _GLIBCXX_ATOMIC_BUILTINS Clang arm/mips can't compile the following atomic intrinsics yet __atomic_fetch_add(__mem, __val, __ATOMIC_ACQ_REL); __atomic_fetch_add(__mem, __val, __ATOMIC_ACQ_REL); Use library calls instead 2) Undefine GCC4.7/4.8 _GLIBCXX_USE_FLOAT128. Clang doesn't support __float128 yet Change-Id: I0ff0eb208665beeb3e5e09917fd4c7dd378fc54e
* | Merge "Fix GCC4.4.3/4.6/4.7 to supress -export-dynamic for statically linked ↵Andrew Hsieh2013-04-183-6/+9
|\ \ | | | | | | | | | programs"
| * | Fix GCC4.4.3/4.6/4.7 to supress -export-dynamic for statically linked programsAndrew Hsieh2013-04-123-6/+9
| |/ | | | | | | | | | | | | | | | | r191401 | jingyu | 2012-09-18 01:33:05 +0800 (Tue, 18 Sep 2012) | 6 lines 2012-09-17 Ben Cheng <bccheng@google.com * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Suppress the dynamic linker commands for statically linked programs. Change-Id: Ib8a27fb054ddb12242d500ef8b3ceb2b0215cb3e
* / Update -mstack-protector-guard= support based on upstream commentsAndrew Hsieh2013-04-174-8/+17
|/ | | | | | See http://gcc.gnu.org/ml/gcc-patches/2013-04/msg00764.html Change-Id: I8aad144f579def5629fcb7cb29a68d057b809be2
* Disable aarch64/linux-unwind.h for nowAndrew Hsieh2013-04-091-0/+5
| | | | Change-Id: I5ab969f1f7f049ebd043fe6e5a2b219c30338571
* Add -fuse-ld=mcldAndrew Hsieh2013-04-051-1/+5
| | | | | | | | GCC 4.8 differs from previous GCCs where the option is -fuse-ld= Also form Negative() circle for bfd/gold/mcld which is mutually exclusive Change-Id: I814c3380ad5199691e5a930f5d02696d283d19df
* Misc fixesAndrew Hsieh2013-04-045-5/+5
| | | | | | | | | | 1. Fixed darwin build of GCC 4.8/X86 by removing trailing ',' from the last item of enum. Not discovered before because GCC 4.8 now builds with -Wall -Werror, and gcc-4.2.1 in darwin is picky about that 2. Fixed -fuse-ld=mcld Change-Id: I7b65edfb76841f14c3290acb5a98f556d00e1139
* [4.8] Maintain default visibility for helper functions in libgcc.a.Ben Cheng2013-04-031-0/+10
| | | | Change-Id: If7890947b3391ec87a3fc2be9baa87ba821fa4ec
* [4.8] GNU libstdc++ --enable-linux-futexAndrew Hsieh2013-04-022-0/+17
| | | | | | See fe1a20404b19d5dd0cd0988d080cff8a455c2a76 Change-Id: I93f281d919bce84796670dc1b29917c690d39c15
* [4.8] Use READELF_FOR_TARGET in GCC 4.8Andrew Hsieh2013-04-022-3/+7
| | | | | | | | | | See b159d4300781ae367096e05076df56b1467d0d9b 4ecf441b08bb3f039e3836b7517f079be70583ad 651152db0b741de25918b21c42d604b8b6564eaa 3c138513fb44386c87bd5276725d5459f9243833 Change-Id: I6a76c29b0cca118dba4ae012ef053a872f461da1
* [4.8] Fix openmp support to use libgomp/config/linuxAndrew Hsieh2013-04-024-3/+28
| | | | | | See a38e7b29885b25278b1d356b2efd21622376695d Change-Id: I4e2671ea3aa8a67e9b5c6d5974b7486eb7ae54b7
* [4.8] OpenMP: Better CPU count detection for LinuxGeunsik Lim2013-04-021-3/+186
| | | | | | See b3cd55a4e23e443cc4561424e22c27fe7f05b5c1 Change-Id: Iafdee05e23c639fcd011550b38b2570670706c65
* [4.8] Use default visibility for the __cxa functions in eh_arm.cc.Ben Cheng2013-04-021-0/+12
| | | | Change-Id: I6f4b9adba43aa366c5107c8644a7a2afc840d193
* [4.8] Fixed GCC 4.8 ICE gen_thumb_movhi_clobber at config/arm/arm.md:5832Andrew Hsieh2013-04-022-2/+3
| | | | | | | | | See issue https://code.google.com/p/android/issues/detail?id=52732, and fix http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00732.html Also see 78a68e851a2f6f9d00367cd38eeedf670bb80f01 Change-Id: Iad4deda17414f3165714da0b60f9f8cb2a6ef052
* [4.8] Fix MIPS GCC to emit -m elf32ltsmip for linkerAndrew Hsieh2013-04-021-0/+1
| | | | | | | | | | | | ARM/X86 GCC in NDK explicitly emit -m armelf_linux_eabi and -m elf_i386, respectively, for linker. Fix MIPS to do the same, to help mclinker which is built vanilla and relies on either filename (eg. eg. arm-linux-androideabi-ld.mcd implies arm) or -mtriple/-march/-m to figure out the target See 125708b8e3afa6007ce3aa7132165d27b719ccc3 Change-Id: I79d67b5a69884713b9a3aaa59012c9170b823068
* [4.8] Add mclinker support: -fuse-ld=mcldAndrew Hsieh2013-04-023-2/+9
| | | | | | | See http://code.google.com/p/mclinker/ 6502f082fed932c0609b475d5d6917103700e5a8 Change-Id: I3c782584f43a8216d868e016d5f416a574402702
* [4.8] Use memalign instead of posix_memalign in GCC x86 mm_malloc.hAndrew Hsieh2013-04-021-0/+6
| | | | | | | | | | | | | | | | posix_memalign doesn't exist in NDK. Code inludes ?mmintrin.h which in turn includes mm_malloc.h may fail to link For AOSP platform build which uses the same compiler, add -DHAVE_POSIX_MEMALIGN to restore the original behavior. Other than non-zero return value which _mm_alloc already ignores, both paths are functioanlly identical (under the hood dlmalloc.c in 32-bit ensure alignment is at least 16-byte) See 0457b0db02c4b229eab11c01025df948032c31a7 Change-Id: I2e83d544a4ac2f4549de3b41a85e009a0a085476
* [4.8] Disable libstdc versioningAndrew Hsieh2013-04-022-2/+2
| | | | | | | | | Used to be first half of NDK local patch at $NDK/build/tools/ toolchain-patches/gcc/0006-Disable-libstdc-versioning.patch See 4a0927423d51f594b870e58b3eb51574327f8b0e Change-Id: Ifc8efb661c5b4175feb1654fbc79525e1bc7f713
* [4.8] Support OpenMPAndrew Hsieh2013-04-028-9/+72
| | | | | | | | | See b6e375800c9a2f02a732cbdf5e87a860c3d954e1, 1271761f530c0050154e8d526b95f952df551751, 92c478dba755a1a2f6f00ff390666acbffd41982 and 51df2e98d22e2c6f5d2a16860bc8fc3644179c1d. Change-Id: I7b01524a5516dd31b26a68cccc616a066893db39
* [4.8] Enable _GLIBCXX_HAS_GTHREADS in GCC 4.8Andrew Hsieh2013-04-021-1/+1
| | | | | | | | | | | | Fix a test in libstdc++/confiugre to include $glibcxx_thread_h instead of gthr.h otherwise it will fail to detect gthread lib because the new gthr.h only include gthr-default.h which doesn't exist in source directory See issue http://code.google.com/p/android/issues/detail?id=41770 946c2a6b57ac7d3b2b656ac628bcb14a216ec635 Change-Id: I13bd69f45ddee8b38055f0264c8aa484df0761d2
* [4.8] Patch GCC libstdc++ to work with Clang in C++11Andrew Hsieh2013-04-021-1/+1
| | | | | | | | | See http://clang.llvm.org/cxx_status.html http://code.google.com/p/android/issues/detail?id=39600 https://android-review.googlesource.com/#/c/47836/ 1e4edc8addf7fc21d821e64cc81d85315561bcd9 Change-Id: Ibbc2ed2bf665bbdd9529e6d962312b10a0da320f
* [4.8] Fix ARM GCC fail to links code using 64-bit atomic built-inAndrew Hsieh2013-04-021-0/+4
| | | | | | | | | | | For ARM w/o dmb a helper function is called for 64-bit atomic built-in, which call __write when helper version is too old. Change to call write instead for Android. See http://code.google.com/p/android/issues/detail?id=41297 e42abc641966570528522d61ba625e926e979ac7 Change-Id: I15498b73eebdbd5f4d62aafa943290ca341378bb
* [4.8] Enable MIPS floating-point madd/msub/nmadd/nmsub/recip/rsqrt with ↵Iceberg Fu2013-04-022-9/+4
| | | | | | | | 32-bit FPU. See 7609f724df8ca390935f63243fa72e1de39d00c6 Change-Id: Id77b56a1cf886584020cf30a4211de0a87b4f56e
* [4.8] Backport a gimplify fix.Ben Cheng2013-04-022-0/+48
| | | | | | | | See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55245 6014e0c5342ece48f16f5b02f1b0657d2538a036 Change-Id: I25bfcfdbf0911f18db9b554012258f4d9aa060bd
* [4.8] Enable armv7/thumb2 multilib for arm-eabi.Ben Cheng2013-04-021-12/+17
| | | | | | | | | | | | | Configured multilib: > arm-eabi-gcc -print-multi-lib .; thumb;@mthumb thumb/thumb2;@mthumb@march=armv7 See 978fb74a5c086cc5572dc2e3f37d207acad969d7 Change-Id: Ia04c9e23cb5abb924702639c6c0f3afc9c485ff0
* [4.8] Add -mstack-protector-guard= to x86 compilersAndrew Hsieh2013-04-024-4/+29
| | | | | | | | | | | | | | | | | | | | To choose between "global" (default) and "tls" (new) for -fstack-protector, -fstack-protector-all, and -fstack-protector-strong (GCC 4.6+). Note that this alone doesn't enable any -fstack-protector* For NDK: The default "global" generates code backward compatible with older bionic For AOSP: build may add "-mstack-protector-guard=tls" to build platform code with new bionic (*1) Related CL: ad88a0863110798cef5169dcf917e18b967a7cf6 (*1) e804643b6dfcfb5842dea4b714601c6dd89f4944 Change-Id: I341c9022530b37ca289d94e1174dfa86a8eaa1bf
* [4.8] Handle NULL return value of setlocale() in libstdc++Andrew Hsieh2013-04-023-21/+41
| | | | | | | | | | | Bionic setlocale() always returns NULL. $NDK/tests/device/test-gnustl-2 (as well as others using iostream, etc) segfault w/o this change See d3029b5a1a770d75806370618f7311a991107119, 20ffc596a2771a96ac9b4a4838edc7779a48f0af and https://code.google.com/p/android/issues/detail?id=46718 Change-Id: I4808ebaedc5495cbc074999b22e3ffea5ba2947c
* [4.8] Simplify GCC 4.7 BASE-VERAndrew Hsieh2013-04-021-1/+1
| | | | | | | | | | | | Change 4.8.0 -> 4.8 In NDK gnu-libstdc++ is built seperately and copied over to standalone. This change simplifies script doing that and make it less sensitive to future minor version upgrade See 4b8d41c82a2da3c7b7d9a19e254eba11e05f53fa Change-Id: I2656771699a188060403b4c2094134d77191566b
* [4.8] Port MIPS Android support to GCC-4.8Andrew Hsieh2013-04-024-2/+12
| | | | | | | | | Used to be local NDK patch at $NDK/build/tools/toolchain-patches/ gcc/0008-Port-MIPS-Android-support-to-GCC-4.6.patch See ec1a2a51fa75883e4bdf9f4f03e8fd16a261c275 Change-Id: I7526fc1f1c3304c14b8f6f6d5a0b26ddc1c7e4a0
* [4.8] Enable x86/arm gcc defaults; Remove march/mtune/mfpmath hardcoded valuesAndrew Hsieh2013-04-023-4/+11
| | | | | | | | | | | See c779c1ff50bde450eb49b3998353804602c4d963 Used to be local NDK patch at $NDK/build/tools/toolchain-patches/ gcc/0004-Enable-x86-gcc-defaults.patch Also see 5578813961a205a7c5d3e9da8a1b5ec00d4dac3c They should be passed in configure to work correctly. See https://android-review.googlesource.com/50815 Change-Id: I0be1f1111870070f25d92d390d2738b52315865d
* [4.8] Enable assembler linker default for securityAndrew Hsieh2013-04-025-5/+17
| | | | | | | | | Used to be local NDK patch at $NDK/build/tools/toolchain-patches/ gcc/0009-Enable-assembler-linker-default-for-security.patch See 7e66b0108987a56a58c6150672fe7cf8cf88e69a Change-Id: Ia668c962b7251dd673cc028dac8a111b1aeeb47d
* [4.8] Workaround for Android __cxa_finalize bugAndrew Hsieh2013-04-021-0/+8
| | | | | | | | | Used to be local NDK patch at $NDK/build/tools/toolchain-patches/ gcc/0003-Work-around-for-Android-__cxa_finalize-bug.patch See c3e4e5654d02106a19f315b736d56acb581246f9 Change-Id: I2c24a06f96cd183e9b250d22dacd2379b9f10b04
* [4.8] Fix crash on null context in cp/mangle.c::write_unscoped_nameAndrew Hsieh2013-04-021-1/+1
| | | | | | | | See related CL: a22b5261da70bebfad7c6f4e948501e293db172d for GCC 4.7 737fc2a978ff2364d91e634a6b990979df60058f for GCC 4.6 Change-Id: Ic5c924fa61bd839270d0218bf5f6f25d1ace8422
* [4.8] Disable warning: the mangling of <va_list> has changed in GCC 4.4Andrew Hsieh2013-04-021-1/+23
| | | | | | | | | Please see commit message of the same fix in previous GCC GCC 4.7 3800bda255b20023e993ed786674f70c909d60b5 GCC 4.6 a9fcd9b1ecb8954f67738a94b8553ab234d6def5 GCC 4.4.3 329ca6fa5d9972ad6dad8387036b4dbe9cfa1f27 Change-Id: I288f349d2140918babf3a872728da02c5706a971
* [GCC 4.8] Initial check-in of GCC 4.8.0Ben Cheng2013-03-2879423-0/+13679678
| | | | Change-Id: I0719d8a6d0f69b367a6ab6f10eb75622dbf12771
* Merge "Use READELF_FOR_TARGET in GCC 4.6/4.7"Andrew Hsieh2013-03-274-6/+14
|\
| * Use READELF_FOR_TARGET in GCC 4.6/4.7Andrew Hsieh2013-03-264-6/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In darwin where readelf isn't available, gcc/configure fails to set HAVE_LD_PERSONALITY_RELAXATION for MIPS, causes TARGET_WRITABLE_EH_FRAME=1 and flag_dwarf2_cfi_asm=0 (ie. disable CFI directive), and fails ld.mcld It's curious that the successful detection of the /tmp/ndk-$USER/gcc/binutils-2.21/readelf requires binutils to exist in the GCC's source tree, according to gcc/configure. Other tools (objdump, nm, ld, as, etc) can be successfully located because of OBJDUMP_FOR_TARGET, NM_FOR_TARGET, etc. Fix to look for READELF_FOR_TARGET in gcc/configure See https://android-review.googlesource.com/#/c/54760 https://android-review.googlesource.com/#/c/54770 https://android-review.googlesource.com/#/c/54710 Change-Id: I8b057a70d43389d3d9d02b5c54b8365ebe6487d1
* | Add for READELF and READELF_FOR_TARGET for GCC 4.6Andrew Hsieh2013-03-265-0/+439
|/ | | | | | | | | | | | | | | | | | 2011-11-09 Roland McGrath <mcgrathr@google.com> * configure.ac: Add tool checks for READELF and READELF_FOR_TARGET. * configure: Rebuild. * Makefile.def (flags_to_pass): Add READELF_FOR_TARGET. * Makefile.tpl (READELF, READELF_FOR_TARGET): New variables. (HOST_EXPORTS): Add READELF, READELF_FOR_TARGET. (BASE_FLAGS_TO_PASS): Add READELF_FOR_TARGET. (BASE_TARGET_EXPORTS, EXTRA_HOST_FLAGS, EXTRA_TARGET_FLAGS): Add READELF. * Makefile.in: Rebuild. 2011-11-09 Jason Merrill <jason@redhat.com> Change-Id: I6f8c1e7ef25a9232d7f1ed549cdb8f02a0b044b0
* MIPS GCC 4.4.3 use .cfi_* directives by defaultAndrew Hsieh2013-03-261-1/+1
| | | | | | | | | Since we are building GCC 4.4.3 with binutils-2.21 whose ld has support for read-only .eh_frames Without this, "ld.mcld --eh-frame-hdr" very often Change-Id: Ie77b5e8eba02edc4fa44de060cb37fc1d569f027
* Merge "More fix to handle NULL return value of setlocale() in libstdc++/GCC4.7"Andrew Hsieh2013-03-092-12/+24
|\
| * More fix to handle NULL return value of setlocale() in libstdc++/GCC4.7Andrew Hsieh2013-03-082-12/+24
| | | | | | | | | | | | | | | | | | | | Bionic setlocale() always returns NULL. Check return value before passing it to other libraries which don't expect NULL in argument. See 20ffc596a2771a96ac9b4a4838edc7779a48f0af https://code.google.com/p/android/issues/detail?id=46718 Change-Id: Ie2bf30d5f54c77401519ecb27cb97fb905639bba
* | Fixed GCC 4.7 ICE in redirect_eh_edge_1, at tree-eh.c:2214Andrew Hsieh2013-03-083-0/+34
|/ | | | | | | | | | | | | | http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=191571 2012-09-17 Jakub Jelinek <jakub@redhat.com> PR tree-optimization/54563 * tree-ssa-math-opts.c (execute_cse_sincos): Call gimple_purge_dead_eh_edges if last call has been changed. * g++.dg/torture/pr54563.C: New test. See https://code.google.com/p/android/issues/detail?id=52909 Change-Id: Ib0f8d0dd2faa5a8f0bdeb160da2e2cd0c24f5757
* Merge "Fix GCC 4.4.3/4.6/4.7 openmp support to use libgomp/config/linux"Andrew Hsieh2013-03-0813-9/+164
|\
| * Fix GCC 4.4.3/4.6/4.7 openmp support to use libgomp/config/linuxAndrew Hsieh2013-03-0713-9/+164
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Android does support SYS_gettid and SYS_futex which allows libgomp to use libgomp/config/linux/* instead of libgomp/config/posix and enables more features such as thread affinity. For GCC4.4.3/ARM, the missing linux/futex.h is copied from GCC 4.6 Also guard the new sc_nprocessors_actu with __ANDROID__, and fix return value in proc.c Change-Id: Ib22496075ac5e41c5f44f5160d1b34a5609c168b
* | GNU libstdc++ --enable-linux-futexAndrew Hsieh2013-03-076-0/+51
|/ | | | Change-Id: Ib97053768252b05decd513825ae45757b220f7d4
* Merge "GCC 4.6/4.4.3: OpenMP: Better CPU count detection for Linux"Andrew Hsieh2013-03-062-6/+372
|\