summaryrefslogtreecommitdiffstats
path: root/libc
Commit message (Collapse)AuthorAgeFilesLines
* Android is all-PIC/PIE.Elliott Hughes2014-08-077-50/+2
| | | | | | | | | | | Clean up the x86/x86_64 assembler. The motivator (other than reducing confusion) was that asm.h incorrectly checked PIC rather than __PIC__. Bug: 16823325 (cherry picked from commit 6b6364a7fc7c3ba37ee907776a29bdc8c9793db9) Change-Id: I89ca57fa0eb34a36de6cb11ea85f71054fce709d
* Merge "Do a second key cleanup in pthread_exit." into lmp-devChristopher Ferris2014-08-061-0/+6
|\
| * Do a second key cleanup in pthread_exit.Christopher Ferris2014-08-061-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | During pthread_exit, the keys are cleaned. Unfortunately, a call to free occurs after the cleanup and the memory for some of the keys is recreated when using jemalloc. The solution is to do the key cleanup twice. Also, modify the pthread_detach__leak test to be less flaky when run on a jemalloc system. Bug: 16513133 Change-Id: Ic17e8344bdc1ba053c4f5b6d827a4c19c57860c1
* | Merge "Upgrade bionic to tzdata2014f." into lmp-devElliott Hughes2014-08-061-0/+0
|\ \
| * | Upgrade bionic to tzdata2014f.Elliott Hughes2014-08-061-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From the release notes: Changes affecting future time stamps Russia will subtract an hour from most of its time zones on 2014-10-26 at 02:00 local time. (Thanks to Alexander Krivenyshev.) There are a few exceptions: Magadan Oblast (Asia/Magadan) and Zabaykalsky Krai are subtracting two hours; conversely, Chukotka Autonomous Okrug (Asia/Anadyr), Kamchatka Krai (Asia/Kamchatka), Kemerovo Oblast (Asia/Novokuznetsk), and the Samara Oblast and the Udmurt Republic (Europe/Samara) are not changing their clocks. The changed zones are Europe/Kaliningrad, Europe/Moscow, Europe/Simferopol, Europe/Volgograd, Asia/Yekaterinburg, Asia/Omsk, Asia/Novosibirsk, Asia/Krasnoyarsk, Asia/Irkutsk, Asia/Yakutsk, Asia/Vladivostok, Asia/Khandyga, Asia/Sakhalin, and Asia/Ust-Nera; Asia/Magadan will have two hours subtracted; and Asia/Novokuznetsk's time zone abbreviation is affected, but not its UTC offset. Two zones are added: Asia/Chita (split from Asia/Yakutsk, and also with two hours subtracted) and Asia/Srednekolymsk (split from Asia/Magadan, but with only one hour subtracted). (Thanks to Tim Parenti for much of the above.) Changes affecting past time stamps China's five zones have been simplified to two, since the post-1970 differences in the other three seem to have been imaginary. The zones Asia/Harbin, Asia/Chongqing, and Asia/Kashgar have been removed; backwards-compatibility links still work, albeit with different behaviors for time stamps before May 1980. Asia/Urumqi's 1980 transition to UTC+8 has been removed, so that it is now at UTC+6 and not UTC+8. (Thanks to Luther Ma and to Alois Treindl; Treindl sent helpful translations of two papers by Guo Qingsheng.) Some zones have been turned into links, when they differed from existing zones only for older UTC offsets where the data were likely invented. These changes affect UTC offsets in pre-1970 time stamps only. This is similar to the change in release 2013e, except this time for western Africa. The affected zones are: Africa/Bamako, Africa/Banjul, Africa/Conakry, Africa/Dakar, Africa/Freetown, Africa/Lome, Africa/Nouakchott, Africa/Ouagadougou, Africa/Sao_Tome, and Atlantic/St_Helena. This also affects the backwards-compatibility link Africa/Timbuktu. (Thanks to Alan Barrett, Stephen Colebourne, Tim Parenti, and David Patte for reporting problems in earlier versions of this change.) Asia/Shanghai's pre-standard-time UT offset has been changed from 8:05:57 to 8:05:43, the location of Xujiahui Observatory. Its transition to standard time has been changed from 1928 to 1901. Asia/Taipei switched to JWST on 1896-01-01, then to JST on 1937-10-01, then to CST on 1945-09-21 at 01:00, and did not observe DST in 1945. In 1946 it observed DST from 05-15 through 09-30; in 1947 from 04-15 through 10-31; and in 1979 from 07-01 through 09-30. (Thanks to Yu-Cheng Chuang.) Asia/Riyadh's transition to standard time is now 1947-03-14, not 1950. Europe/Helsinki's 1942 fall-back transition was 10-04 at 01:00, not 10-03 at 00:00. (Thanks to Konstantin Hyppönen.) Pacific/Pago_Pago has been changed from UTC-11:30 to UTC-11 for the period from 1911 to 1950. Pacific/Chatham has been changed to New Zealand standard time plus 45 minutes for the period before 1957, reflecting a 1956 remark in the New Zealand parliament. Europe/Budapest has several pre-1946 corrections: in 1918 the transition out of DST was on 09-16, not 09-29; in 1919 it was on 11-24, not 09-15; in 1945 it was on 11-01, not 11-03; in 1941 the transition to DST was 04-08 not 04-06 at 02:00; and there was no DST in 1920. Africa/Accra is now assumed to have observed DST from 1920 through 1935. Time in Russia before 1927 or so has been corrected by a few seconds in the following zones: Europe/Moscow, Asia/Irkutsk, Asia/Tbilisi, Asia/Tashkent, Asia/Vladivostok, Asia/Yekaterinburg, Europe/Helsinki, and Europe/Riga. Also, Moscow's location has been changed to its Kilometer 0 point. (Thanks to Vladimir Karpinsky for the Moscow changes.) Bug: 16168653 Change-Id: I23827254bcf50dd07a2192ed34b02224d73e07a0
* | | Merge "Fix the tzdata update tools." into lmp-devElliott Hughes2014-08-063-77/+19
|\ \ \ | |/ / |/| |
| * | Fix the tzdata update tools.Elliott Hughes2014-08-063-77/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The recent libcore ZoneInfo changes mean that we can no longer compile libcore's ZoneInfo against the RI. Luckily, the field in our data file that we needed ZoneInfo for isn't actually used. This change removes our dependence on libcore. I've left the field in to avoid a file format change. We can remove the field if/when we next have a real need to bump the file format. Bug: 16168653 Change-Id: Iedad2252c2b49f4d8bb2c7d9078b39b622444ca7
* | | Merge "Proper MB_CUR_MAX." into lmp-devDan Albert2014-08-062-14/+31
|\ \ \
| * | | Proper MB_CUR_MAX.Dan Albert2014-08-062-14/+31
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously this was hard coded to 4. This is only the case for UTF-8 locales. As a side effect, this properly reports C.UTF-8 as the default locale instead of C. Change-Id: I7c73cc8fe6ffac61d211cd5f75287e36de06f4fc (cherry picked from commit 1aec7c1a35b2d03038b194967d5ebdc8e2c24b80)
* | | Merge "Fix mbsrtowcs(3) src param for finished string." into lmp-devDan Albert2014-08-061-1/+4
|\ \ \
| * | | Fix mbsrtowcs(3) src param for finished string.Dan Albert2014-08-061-1/+4
| |/ / | | | | | | | | | | | | | | | | | | | | | A mistake I made while cleaning this up the first time through. mbstrtowcs(3) sets the src param to null if it finishes the string. Change-Id: I6263646e25d9537043b7025fd1dd6ae195f365e2 (cherry picked from commit b6cc8e00cd562bd0f81fe44a6bc646540a862f32)
* | | Fixes build.Dan Albert2014-08-061-1/+0
| | | | | | | | | | | | | | | | | | | | | This change somehow went missing from the vfork change. Change-Id: I807a2072080eac20601c694e85ba5723220289d8 (cherry picked from commit 9eae8405e8f70e489f2fe350a0212ab8114cbd17)
* | | Revert "Replaces vfork() implementation with fork()"Dan Albert2014-08-0612-7/+258
|/ / | | | | | | | | | | | | | | | | We're getting cold feet on this one... let's put it back. This reverts commit 210331d9762037afb9b5ed8413079c6f65872df9. Change-Id: I6b0d3c2b1dbf7f1dc9566979a91b7504c2189269 (cherry picked from commit 6a918870bab1a55a5f57dd7954abd9a8a27c1bc2)
* | Merge "Workaround b/16818336 which fails build under aggressive inlining." ↵Elliott Hughes2014-08-061-33/+0
|\ \ | | | | | | | | | into lmp-dev
| * | Workaround b/16818336 which fails build under aggressive inlining.Dehao Chen2014-08-051-33/+0
| |/ | | | | | | Change-Id: Ifcd596714c427a2ec39502b9c0af9082ded91884
* | Merge "Revert most of "Cleanup: Delete dead code."" into lmp-devPaul Jensen2014-08-052-0/+14
|\ \
| * | Revert most of "Cleanup: Delete dead code."Paul Jensen2014-08-062-0/+14
| |/ | | | | | | | | | | | | | | This reverts most of commit 2582f02a01cd56c56a4e6c9de4444a6ec937cc37. The DNS cache flushing code needs to be called when routes change. Change-Id: I5b04121bc428cc6a2e136b6c3269c395bfb4981f bug:16549455
* | Explain how wcswcs ended up in ndk_cruft.cpp.Elliott Hughes2014-08-061-1/+2
|/ | | | | | (cherry picked from commit 1628eb1d43008c52b00ec98d10c4fd9e8b6fc7c5) Change-Id: I335b35038781d0426b3647727e6c4f22c83e187b
* Fix memchr with a zero length.Christopher Ferris2014-07-301-0/+5
| | | | | | | | | | | | | | | | The memchr implementation for 64 bit fails if these conditions occur: - The buffer is 32 byte aligned. - The buffer contains the character in the first byte. - The count sent in is zero. The function should return NULL, but it's not. Bug: 16676625 (cherry picked from commit e03e1eac0b7682884b6628df1305d34299680cb4) Change-Id: Ie4cca2c445127a0936ee2b96651a8e7204fbaffd
* Implement <sys/fsuid.h>.Elliott Hughes2014-07-3014-2/+220
| | | | | | (cherry picked from commit 79310994d2b3826a10598f7e7795acb5edb42a20) Change-Id: I47688273691e5c95e5e9302eba254ccaaaad40ca
* [MIPSR6] Use C-coded string ops on mips32r6/mips64r6Duane Sand2014-07-301-0/+11
| | | | | | | | | | The existing assembler code uses deprecated lwl/lwr/swl/swr ops. Replacing those with misalignment-forgiving lw/sw ops may involve careful performance tuning. (cherry picked from commit bc5a3ec6df66d2456667ddf1d6dfaf623552169d) Change-Id: I35167da27f2d406339b7f24b4a1fb270c87bc12e
* Only wipe TLS for user-supplied stacks.Elliott Hughes2014-07-303-19/+23
| | | | | | | | Bug: 16667988 (cherry picked from commit 40a521744825b6060960c296d5fb3da4c6593d94) Change-Id: I7550fa47b76e643323aa3e2a53529e393c829e47
* Use libunwindbacktrace for debug malloc code.Christopher Ferris2014-07-297-28/+198
| | | | | | | | | | | | | | | | | | | | Create a method of disabling the debug allocation code paths so that it's possible to use the libunwindbacktrace library without any modifications. Use this path to create and destroy the maps for the process. It's not stricly necessary in the init code since the symbols are not modified until after the initialize calls. Also, remove the debug_XXX source files that doesn't need to be in libc.so. Fix the maps reading code since it was completely broken for 64 bit. Bug: 16408686 (cherry picked from commit 861c0ef37bcfcae56d88572cb01c18bcfe1faded) Change-Id: I04445f0cf9a1e85172b64d57df92eb7939ce2332
* Remove declarations for things that don't exist.Elliott Hughes2014-07-294-33/+1
| | | | | | | | The <grp.h> ones prevent gdb from building out of the box. (cherry picked from commit f4c1a36a4500bc7f12e3065be3da4e8669ee011d) Change-Id: I6958f2f1731de8c03df20b383decd414b78100aa
* Merge "Revert "Added a bionic systrace class and tracing to ↵Elliott Hughes2014-07-294-155/+0
|\ | | | | | | pthread_mutex.cpp."" into lmp-dev
| * Revert "Added a bionic systrace class and tracing to pthread_mutex.cpp."Elliott Hughes2014-07-294-155/+0
| | | | | | | | | | | | This reverts commit a09fe118b1a5eb876ddaa2620965c4a8fb8b007c. Change-Id: Ia2eb07b57a25dc2ac76fecc0925efb2bed998156
* | en_US.UTF-8 is also supported.Dan Albert2014-07-291-1/+3
| | | | | | | | | | Change-Id: Ic35fad3596dc5e24ee8ae35543a274a471f27bb2 (cherry picked from commit 1abb8bd21d64c2bd21258469b688483f821974d5)
* | There is no _MIN for unsigned types.Dan Albert2014-07-291-1/+1
| | | | | | | | | | Change-Id: I49c38e51197b750210bdbf28c9cf6db30452a206 (cherry picked from commit ee7f1b5946dffa3aa95394b8cf6f15527f1068eb)
* | Fix mbsrtowcs(3)'s handling of len parameter.Dan Albert2014-07-291-3/+2
| | | | | | | | | | | | | | | | | | | | The len parameter is a _maximum_ length. The previous code was treating it as an exact length, causing the following typical call to fail: mbsrtowcs(out, &in, sizeof(out), state); // sizeof(out) > strlen(in) Change-Id: I48e474fd54ea5f122bc168a4d74bfe08704f28cc (cherry picked from commit 6b55ba54eff4657cffe053b71e1c9cce2944a8a9)
* | __libc_fatal should print a newline to stderr.Dan Albert2014-07-291-1/+5
| | | | | | | | | | Change-Id: I088dc880d7488a65beac8cda95f530f3db41f112 (cherry picked from commit 97e31dedf056b07bcfcd46c49b60bf0798c60843)
* | Fix linkage of grantpt(3).Elliott Hughes2014-07-298-169/+85
|/ | | | | | | | | | | Also clean up the implementation of all the pty functions, add tests, and fix the stub implementations of ttyname(3) and ttyname_r(3). Bug: https://code.google.com/p/android/issues/detail?id=58888 (cherry picked from commit 4916706cfe590eb06c9b5bd4bd402ce056034d51) Change-Id: I5cb7a1c17b156456e4c4818e65f256eb8d045424
* Added a bionic systrace class and tracing to pthread_mutex.cpp.Brigid Smith2014-07-294-0/+155
| | | | | | | | | | | | | bionic_systrace.h contains an implementation of tracing that can be used with systrace.py and its associated viewer. pthread_mutex now uses this tracing to track pthread_mutex contention, which can be enabled by using the "bionic" command line option to systrace. Bug: 15116468 (cherry picked from commit a406ee6d5f616192e9a13afad6ac6a9969814fc1) Change-Id: Ic98fc303689fe9384974150d0d258c50806a55e4
* Revert "Add a hack to <stdlib.h> until we can fix libvpx."Elliott Hughes2014-07-281-6/+0
| | | | | | | | This reverts commit 3fb5097a7eec40404760c304b36c8b657b374cab. libvpx is now fixed. Bug: 15598056 Change-Id: Icca974e667f92206505f484bd291726eb0150f68
* syscall(3)'s return type should be long.Elliott Hughes2014-07-281-1/+1
| | | | | | | | | | | | | | | This doesn't require us to change any of the syscall implementations because (a) the LP32 ones have sizeof(int) == sizeof(long) anyway, which is how we never noticed this bug before and (b) the LP64 ones all use a 64-bit register for the result (and for the syscall number too). Bug: https://code.google.com/p/android/issues/detail?id=73952 Bug: 16568314 (cherry picked from commit 21972b61ec0572395c5684eebc6cc7b3a4c9e3be) Change-Id: Ifbc424be29e5650ec72a24df25dd35f24fdd5b3c
* Use vsnprintf(3) in syslog(3).Elliott Hughes2014-07-282-14/+48
| | | | | | | | | | | | | It seemed like a clever trick to use the internal log message formatting code in syslog(3), but on reflection that means you can't (for example) format floating point numbers. This patch switches us over to using good old vsnprintf(3), even though that requires us to jump through a few hoops. There's no obvious way to unit test this, so I wrote a little program and ran that. Bug: 14292866 Change-Id: I9c83500ba9cbb209b6f496067a91bf69434eeef5
* Remove localtime_tz and strftime_tz.Elliott Hughes2014-07-252-124/+41
| | | | | | | | | | | | This also brings our copy of strftime.c much closer to upstream, though we still have several GNU extensions and hacks to deal with Android32's broken time_t. Bug: 15765976 (cherry picked from commit 39d903aea901cd29a4eef3a82c2dbda59b5bc292) Change-Id: Ie278d3e976b7adc77bad5ce795dd4899cfbf3648
* Start hiding "private/bionic_time.h".Elliott Hughes2014-07-254-37/+37
| | | | | | | | Bug: 15765976 (cherry picked from commit 905e6d58aaf515bf237e62078f8a321920fe4c6b) Change-Id: Ic7435308e8b521886f42ac7bf59531924921ea67
* Implement twalk(3), add unit tests.Elliott Hughes2014-07-2412-213/+323
| | | | | | | | | | | | | | | I've also added insque(3) and remque(3) (from NetBSD because the OpenBSD ones are currently broken for non-circular lists). I've not added the three hash table functions that should be in this header because they operate on a single global hash table and thus aren't likely to be useful. Bug: https://code.google.com/p/android/issues/detail?id=73719 (cherry picked from commit 3e424d0a241f8ae5194514dabc4ad899f5a5416d) Change-Id: I5882a6b48c80fea8ac6b9c27e7b9de10b202b4ff
* [MIPS] Drop soft-fp targetsDuane Sand2014-07-241-5/+0
| | | | | | (cherry picked from commit ba23bd0a409bb0e43c57dabee96b2ae52481d5b7) Change-Id: Ica09192c2760d38ceebc14e23a5d3ba94c20764c
* [MIPSR6] setjmp supports mips32r6 and FP64A/FPXX reg modelsDuane Sand2014-07-234-244/+96
| | | | | | | | | | | | | Save and restore floating point registers via 64-bit load/stores when possible. Use assembler's builtin macro ops to generate pairs of 32-bit load/stores on Mips I cpus. Some cpus or FR modes have only 16 even-numbered dp fp regs. This is exposed by _MIPS_FPSET, defined by existing compilers. (cherry picked from commit dd37251c473e1483faba0fd5aaf30e7a55582e8a) Change-Id: Ibd43653701a363a77af85121d3cbd229d132a06a
* HACK: Disable syslog going to android log.Christopher Ferris2014-07-231-1/+5
| | | | | | Bug: 14292866 Change-Id: I3adc448dbacfeecd32508ddccf27be3aa653e466
* HACK: remove %m support from printf.Colin Cross2014-07-231-0/+4
| | | | | | | | | The change that added this support causes a cpu hard lock on one device. This code clearly isn't at fault, but disabling it to unblock until we can find a real fix. Bug: 16484311 Change-Id: I33834dc49d959ae403b10d2c7cad12ae2950f772
* Fix belated review comments on syslog change.Elliott Hughes2014-07-233-41/+45
| | | | | | | | Bug: 14292866 (cherry picked from commit afe6360627ef3f0e9bc8f45535fbfae3354f3ae0) Change-Id: I8e3cc6b37b2539e51a27261ffb5d6e58266ce11d
* Fix generate-NOTICE to cope better with BSD __COPYRIGHT macros.Elliott Hughes2014-07-231-1/+1
| | | | | | (cherry picked from commit 5d2f86f36341b76f84770d8966d7686a59555ae9) Change-Id: Iddf22c8d9ff7a4d1205d37bb58c6235af681d795
* Fix a couple of bugs in generate-NOTICE and regenerate the NOTICE files.Elliott Hughes2014-07-232-156/+165
| | | | | | (cherry picked from commit 3758a244cf758046b40f630a11aed41e68c9cfc2) Change-Id: I6ffb83b4a7b7746b095205c664cf025a72ead179
* Remove the unused swab.S.Elliott Hughes2014-07-221-68/+0
| | | | | | (cherry picked from commit ca70453e84a88405d30f64d603f9a9b5f53f1243) Change-Id: I4dc13de0bdeb7abb3bd47b0397546ad7d1f11d49
* [MIPS] Allow united mipsel and mips64el gcc toolchainDuane Sand2014-07-221-0/+3
| | | | | | | | | | Explicitly tell 32-bit links that they are doing 32-bit links. This is needed when using united 32-bit and 64-bit toolchains. This is harmless when using older separate 32-only toolchains. (cherry picked from commit f541650828f75b3dab22c9c0caab845be78b80fc) Change-Id: I8df0ee7d36c6409458e18bea4e0e8b132edf77dc
* Cleanup: Delete dead code.Sreeram Ramachandran2014-07-223-17/+3
| | | | | Bug: 15413389 Change-Id: I315468832ef18ffc84174e54774ab63b86d284dc
* Use upstream OpenBSD's arc4random.Elliott Hughes2014-07-218-291/+915
| | | | | | | | | The getentropy_linux.c is lightly modified to build on Android, but we're now completely in sync with upstream OpenBSD's arc4random implementation. (cherry picked from commit 2b67d7dee09852789d9ac7d8972ed6cdb2c18430) Change-Id: Icc939b5fa2fcac3e15ff93735d2d34f67e9bb149
* Rewrite syslog(3) to use Android logging.Elliott Hughes2014-07-215-406/+90
| | | | | | | | | | | | Since we don't have syslogd on Android and you can't run one on a non-rooted device, it's more useful if syslog output just goes to the regular Android logging system. Bug: 14292866 (cherry picked from commit 3ad8ecb64e9dd5614169232b84a93eb3b8aa32d7) Change-Id: I3038855ca4f22532bf6d2c45d3f8028b866975f9