Improve the 32-bit ABI documentation.

Change-Id: Ie5bfc8d6f7f3946100f653de0e006072e56e18d6
This commit is contained in:
Elliott Hughes 2015-12-19 09:36:16 -08:00
parent dd57119ced
commit 59fc2e8557

View File

@ -169,9 +169,10 @@ As mentioned above, this is currently a two-step process:
Updating tzdata Updating tzdata
--------------- ---------------
This is fully automated: This is fully automated (and these days handled by the libcore team, because
they own icu, and that needs to be updated in sync with bionic):
1. Run update-tzdata.py. 1. Run update-tzdata.py in external/icu/tools/.
Verifying changes Verifying changes
@ -268,18 +269,22 @@ However, this also makes it difficult to run the tests under GDB. To prevent
each test from being forked, run the tests with the flag `--no-isolate`. each test from being forked, run the tests with the flag `--no-isolate`.
LP32 ABI bugs 32-bit ABI bugs
------------- ---------------
This probably belongs in the NDK documentation rather than here, but these This probably belongs in the NDK documentation rather than here, but these
are the known ABI bugs in LP32: are the known ABI bugs in the 32-bit ABI:
* `time_t` is 32-bit. <http://b/5819737> * `time_t` is 32-bit. <http://b/5819737>. In the 64-bit ABI, time_t is
64-bit.
* `off_t` is 32-bit. There is `off64_t`, but no `_FILE_OFFSET_BITS` support. * `off_t` is 32-bit. There is `off64_t`, and in newer releases there is
Many of the `off64_t` functions are missing in older releases, and almost-complete support for `_FILE_OFFSET_BITS`. Unfortunately our stdio
stdio uses 32-bit offsets, so there's no way to fully implement implementation uses 32-bit offsets and -- worse -- function pointers to
`_FILE_OFFSET_BITS`. functions that use 32-bit offsets, so there's no good way to implement
the last few pieces <http://b/24807045>. In the 64-bit ABI, off_t is
off64_t.
* `sigset_t` is too small on ARM and x86 (but correct on MIPS), so support * `sigset_t` is too small on ARM and x86 (but correct on MIPS), so support
for real-time signals is broken. <http://b/5828899> for real-time signals is broken. <http://b/5828899> In the 64-bit ABI,
`sigset_t` is the correct size for every architecture.