# bionic documentation

[bionic](https://en.wikipedia.org/wiki/Bionic_(software)) is Android's
C library, math library, and dynamic linker.

## User documentation

* [Android bionic status](status.md) - where we are in terms of standards,
  and what changed with each OS release.
* [32-bit ABI bugs](32-bit-abi.md) - historical accidents we can never fix.
* [`EINTR`](EINTR.md) - what is the `EINTR` failure,
  and how can code deal with it?
* [When to use which `#define`](defines.md) - how to choose between
  `__ANDROID__` and `__BIONIC__` and all the other options for conditional
  compilation.
* [fdsan](fdsan.md) - bionic's file descriptor sanitizer,
  which detects use-after-close() bugs.
* [fdtrack](fdtrack.md) - bionic's file descriptor tracker,
  which helps debug file descriptor leaks.

## Maintainer documentation

If you're trying to make changes to bionic _itself_, start with the
[bionic maintainer documentation](../README.md).

We also have more detail on several specific parts of the implementation:

* [The anatomy of bionic's `_FORTIFY_SOURCE`](clang_fortify_anatomy.md) -
  how does `_FORTIFY_SOURCE` work on bionic (primarily "with clang").
* [Android ELF TLS](elf-tls.md) - details of bionic's ELF TLS implementation.
* [Validating libc assembler](libc_assembler.md) - how to test changes to
  libc assembler routines.
* [Validating native allocator changes](native_allocator.md) - how to test
  changes to the native allocator.
