aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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
|\
| * GCC 4.6/4.4.3: OpenMP: Better CPU count detection for LinuxAndrew Hsieh2013-03-062-6/+372
| | | | | | | | | | | | See related b3cd55a4e23e443cc4561424e22c27fe7f05b5c1 Change-Id: Ie43b94f27841b1560f2ce4b2ba163b8584f39ebc
* | GCC4.6/4.4.3: Use default visibility for the __cxa functions in eh_arm.ccAndrew Hsieh2013-03-062-0/+24
|/ | | | | | See related: 811925038a83c20dad6250957e3082e1039c0c77 Change-Id: Ibafc1a0d77bee2340c5279c4c90f5046b1080425
* Merge "OpenMP: Better CPU count detection for Linux"Andrew Hsieh2013-03-061-3/+186
|\
| * OpenMP: Better CPU count detection for LinuxGeunsik Lim2013-03-061-3/+186
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | .PURPOSE This patch is to improve the detection of total CPU count for OpenMP/Linux. This patch helps that OpenMP recognizes the actual CPUs correctly for the task parallelism. Recent mobile devices dynamically disable or enable CPU cores on demand to optimize battery life. This impacts the output of '/proc/cpuinfo' (which only reports active ones). This patch provides a way to compute the total number of cores by parsing the content of '/sys/devices/system/cpu/' instead. Actual CPUs: total installed CPUs Online's CPUs: CPUs of the turn-on status Offline's CPUs: CPUs of the turn-off status Therefore, We need to enhance the existing approach using procfs like '/proc/cpuinfo/' or '/proc/stat'. This patch is suitable for Linux kernel. This patch is based on GCC 4.7.2. .RELATED LINKS: https://android-review.googlesource.com/#/c/52821/ https://android-review.googlesource.com/#/c/51950/ https://android-review.googlesource.com/#/c/51370/ https://android.googlesource.com/toolchain/gcc/ .UNIT TEST int main (int argc, char *argv[]) { int nthreads, tid; printf("SC_NPROCESSORS_ONLN: %d\n", sysconf (_SC_NPROCESSORS_ONLN)); /* Fork a team of threads giving them their own copies of variables */ { /* Obtain thread number */ tid = omp_get_thread_num(); printf("Hello World from thread = %d\n", tid); /* Only master thread does this */ if (tid == 0) { nthreads = omp_get_num_threads(); printf("Number of threads = %d\n", nthreads); } } /* All threads join master thread and disband */ } .LIMITATION OF SCOPE These functions have to be included in Bionic C library as the resource of sysconf(). Examples: _SC_NPROCESSORS_ONLN /proc/stat (= /sys/devices/system/cpu/online) _SC_NPROCESSORS_CONF /proc/cpuinfo (= /sys/devices/system/cpu/online) _SC_NPROCESSORS_ACTU /sys/devices/system/cpu/present (* Future work) .COST EVALUATION OF SYSCALLS (On 32bit Quad core) ------------------------------------------ time seconds usecs/call calls syscall ------------------------------------------ -nan 0.000000 0 3 read -nan 0.000000 0 9 write -nan 0.000000 0 4 open -nan 0.000000 0 4 close -nan 0.000000 0 1 execve -nan 0.000000 0 1 access -nan 0.000000 0 1 brk -nan 0.000000 0 1 munmap -nan 0.000000 0 2 mprotect -nan 0.000000 0 7 mmap2 -nan 0.000000 0 3 fstat64 -nan 0.000000 0 1 set_thread_area ------------------------------------------ 100 0.000000 0 37 total Change-Id: I2c6e41616f309eee89ee1145e92201ffe73463f4 Signed-off-by: Geunsik Lim <leemgs@gmail.com> Signed-off-by: Geunsik Lim <geunsik.lim@samsung.com> Acked-by: Changwoo Min <multics69@gmail.com> CC: David Turner <digit@android.com> CC: Keith Obenschain <obenschaink@gmail.com> CC: Pavel Chupin <pavel.v.chupin@intel.com> CC: Andrew Hsieh <andrewhsieh@google.com>
* | Merge "Use default visibility for the __cxa functions in eh_arm.cc."Andrew Hsieh2013-03-061-0/+12
|\ \
| * | Use default visibility for the __cxa functions in eh_arm.cc.Ben Cheng2013-03-051-0/+12
| | | | | | | | | | | | Change-Id: I45ecaa7c20aece451664c631c01a3fefe054293a
* | | Fixed GCC 4.6/4.7 ICE gen_thumb_movhi_clobber at config/arm/arm.md:5832Andrew Hsieh2013-03-056-3/+6
| |/ |/| | | | | | | | | | | 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 Change-Id: If4759a637e5fb6f9c351c11b79d7f9f682ca2ab2
* | Fix MIPS GCC to emit -m elf32ltsmip for linkerAndrew Hsieh2013-02-283-0/+3
| | | | | | | | | | | | | | | | | | | | 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 Change-Id: I236786d0e90a3152225de1eea5e73e3de4ac3f84