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