• Home
Name Date Size #Lines LOC

..--

img/04-Jul-2025-

32-bit-abi.mdD04-Jul-20256.1 KiB12497

EINTR.mdD04-Jul-20254.1 KiB9271

NOTICED04-Jul-202511.1 KiB204169

README.mdD04-Jul-20251.5 KiB3628

c23.mdD04-Jul-20254 KiB9871

clang_fortify_anatomy.mdD04-Jul-202535.9 KiB841704

defines.mdD04-Jul-20253.8 KiB8261

elf-tls.mdD04-Jul-202541.8 KiB878676

fdsan.mdD04-Jul-202515.9 KiB379307

fdtrack.mdD04-Jul-20254.7 KiB9581

libc_assembler.mdD04-Jul-20257.2 KiB166126

mte.mdD04-Jul-202513.1 KiB245187

native_allocator.mdD04-Jul-202519.6 KiB432316

status.mdD04-Jul-202520.9 KiB444375

README.md

1# bionic documentation
2
3[bionic](https://en.wikipedia.org/wiki/Bionic_(software)) is Android's
4C library, math library, and dynamic linker.
5
6## User documentation
7
8* [Android bionic status](status.md) - where we are in terms of standards,
9  and what changed with each OS release.
10* [32-bit ABI bugs](32-bit-abi.md) - historical accidents we can never fix.
11* [`EINTR`](EINTR.md) - what is the `EINTR` failure,
12  and how can code deal with it?
13* [When to use which `#define`](defines.md) - how to choose between
14  `__ANDROID__` and `__BIONIC__` and all the other options for conditional
15  compilation.
16* [fdsan](fdsan.md) - bionic's file descriptor sanitizer,
17  which detects use-after-close() bugs.
18* [fdtrack](fdtrack.md) - bionic's file descriptor tracker,
19  which helps debug file descriptor leaks.
20* [C23](c23.md) - dealing with C23's breaking changes.
21
22## Maintainer documentation
23
24If you're trying to make changes to bionic _itself_, start with the
25[bionic maintainer documentation](../README.md).
26
27We also have more detail on several specific parts of the implementation:
28
29* [The anatomy of bionic's `_FORTIFY_SOURCE`](clang_fortify_anatomy.md) -
30  how does `_FORTIFY_SOURCE` work on bionic (primarily "with clang").
31* [Android ELF TLS](elf-tls.md) - details of bionic's ELF TLS implementation.
32* [Validating libc assembler](libc_assembler.md) - how to test changes to
33  libc assembler routines.
34* [Validating native allocator changes](native_allocator.md) - how to test
35  changes to the native allocator.
36