Glibc calls theirs __ctype_get_mb_cur_max. Make ours match to cut down
on differences between bionic and glibc.
Bug: 11156955
Change-Id: Ib7231f01aa9676dff30aea0af25d597bfe07bc73
Now that -Bsymbolic is fixed, we can hide __libc_malloc_dispatch without
breaking ASAN.
Bug: 11156955
Change-Id: Ia2fc9b046a74e666b33aa6c6c5435f70a63b8021
The old definition only worked for functions that didn't use numbered
local labels. Upstream uses '666' not only as some kind of BSD in-joke,
but also because there's little likelihood of any function having
labels that high.
There's a wider question about whether we actually want to go via the
PLT at all in this code, but that's a question for another day.
(cherry-pick of 72d7e667c7e926cb120c4edb53cbf74c652ab915.)
Bug: 16906712
Change-Id: I3cd8ecc448b33f942bb6e783931808ef39091489
The property libc.debug.malloc.nobacktrace set to non-zero disables
getting backtracing when using mode 1 or mode 10.
Bug: 16874447
(cherry picked from 49de01a5be)
Change-Id: I6bbefe5420b14991fe84c2f849222dcd7cb592bf
Modify make__NR_name so that only __ARM_NR_ is exempted from the
__NR_ being prepended. This avoids a case where using a name starting
with __ but is not a valid syscall name in SYSCALLS.TXT does not generate
code that will compile but references the function itself and causes
link errors.
Fix all of the directory references from dir_part1 + dir_part2 to
use os.path.join() instead.
Change-Id: Ib9527eba6f25f26a30c5cb0ad431f3f88a7683cf
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
Change-Id: Iaa9d45009e93a4b31b719021c93ac221e336479b
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
(cherry picked from commit 18d93f2793)
Change-Id: Idb32e7f9b09e2c088d256ed9eb881df80c81ff8e
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.)
(cherry-pick of 0dc2c1db6fc84b4526f2a5f8d73e1187500f2300.)
Bug: 16168653
Change-Id: I23827254bcf50dd07a2192ed34b02224d73e07a0
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.
(cherry-pick of 90cb5ffb85a9bc2e725824b3ca8db932d02c45db.)
Bug: 16168653
Change-Id: Iedad2252c2b49f4d8bb2c7d9078b39b622444ca7
This reverts commit 3fb5097a7e.
libvpx is now fixed.
(cherry-pick of 2be1be47aa9b63568fe6ce1e0a4029b37d90764d.)
Bug: 15598056
Change-Id: Icca974e667f92206505f484bd291726eb0150f68
We don't want GCC's fixincludes to touch our <stdio.h> because we
want to support multiple platform versions with one toolchain. Give
them a nice easy unambiguous string to look for.
Bug: http://code.google.com/p/android/issues/detail?id=73728
Change-Id: I15cb9a2c9eb0a44b0965dc2139f224f2b6e68ea1
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
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
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
Change-Id: Iab33cc7a8b79920350c72f054dff0e0a3cde69ce
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
Change-Id: I6b02ef6ce26fdb7a59ad1029e7cbba9accceb704
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
Change-Id: I0fb36438cd1abf8d4e87c29415f03db9ba13c3c2
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
Change-Id: I30ed5b377c91ca4c36568a0e647ddf95d4e4a61a
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
Change-Id: I97397a7b921e2e860fd9c8032cafd9097380498a
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
Change-Id: I9866c3579a7a94de27bfbe80ad7a822c3183c7fb
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.
(cherry-pick of b1b60c30bf321c0fc02264b953b5c16c49d34457.)
Bug: 14292866
Change-Id: I9c83500ba9cbb209b6f496067a91bf69434eeef5
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
Change-Id: Ic9ef36e8acd3619504ecc4d73feec2b61fd4dfa1