Cache the most-recently used timezone for mktime_tz and localtime_tz.

Normally, the C library implicitly caches your timezone by virtue
of the fact that the prehistoric API assumes a single timezone for
the entire process.

The unfortunate mktime_tz and localtime_tz extensions work around
this, but represent timezones as strings to their callers, so code
that makes heavy use of these needs a cache to be able to perform
acceptably until it can hopefully one day be rewritten to use
java.util.Calendar or icu4c.

Bug: 8270865
Change-Id: I92e3964e86dc33ceac925f819cc5e26ff4203f50
Merge "Cache the most-recently used timezone for mktime_tz and localtime_tz."
Use Elf32_Addr instead of unsigned in linker

Change-Id: I52dcbb4b0ff0a4052e0ad7a9bbeb2df65c9d2f66
Merge "Use Elf32_Addr instead of unsigned in linker"
Use more types than just 'unsigned' in the linker.

Still chipping away at the situation where every variable in the
linker was of type 'unsigned'. This patch switches counts over to
being size_t and adds an explicit type for init/fini function pointers
and arrays of function pointers.

Also improve logging from CallArray.

Also remove trailing "\n"s from log messages.

Change-Id: Ie036d2622caac50f4d29f0570888bb527661d77e
Merge "Use more types than just 'unsigned' in the linker."
Support large errno values on ARM.

Bug: http://code.google.com/p/android/issues/detail?id=53104
Change-Id: Ic6c40be2dc50f0644a3d8b09ceae59c38f2d5b53
Merge "Support large errno values on ARM."
Merge remote-tracking branch 'aosp/master'