diff options
author | Dan Albert <danalbert@google.com> | 2014-10-10 17:14:37 -0700 |
---|---|---|
committer | Dan Albert <danalbert@google.com> | 2014-10-10 17:14:37 -0700 |
commit | 472cce5c98bd7200833a093275fd6e576fa0c4c1 (patch) | |
tree | f8c9072ef9e5365b6ffc8a649c5568b4b37cea17 /README.md | |
parent | 8c3901b2999e6821b8ee984193352ba45b003492 (diff) | |
download | bionic-472cce5c98bd7200833a093275fd6e576fa0c4c1.zip bionic-472cce5c98bd7200833a093275fd6e576fa0c4c1.tar.gz bionic-472cce5c98bd7200833a093275fd6e576fa0c4c1.tar.bz2 |
Fix some formatting so GitHub displays it nicely.
Change-Id: Id6ce9a61bebd98544c85e5780147715c73d0e78b
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 71 |
1 files changed, 42 insertions, 29 deletions
@@ -4,40 +4,52 @@ Working on bionic What are the big pieces of bionic? ---------------------------------- -libc/ --- libc.so, libc.a - The C library. Stuff like fopen(3) and kill(2). -libm/ --- libm.so, libm.a - The math library. Traditionally Unix systems kept stuff like sin(3) and - cos(3) in a separate library to save space in the days before shared - libraries. -libdl/ --- libdl.so - The dynamic linker interface library. This is actually just a bunch of - stubs that the dynamic linker replaces with pointers to its own - implementation at runtime. This is where stuff like dlopen(3) lives. -libstdc++/ --- libstdc++.so - The C++ ABI support functions. The C++ compiler doesn't know how to - implement thread-safe static initialization and the like, so it just calls - functions that are supplied by the system. Stuff like __cxa_guard_acquire - and __cxa_pure_virtual live here. - -linker/ --- /system/bin/linker and /system/bin/linker64 - The dynamic linker. When you run a dynamically-linked executable, its ELF - file has a DT_INTERP entry that says "use the following program to start me". - On Android, that's either linker or linker64 (depending on whether it's a - 32-bit or 64-bit executable). It's responsible for loading the ELF executable - into memory and resolving references to symbols (so that when your code tries - to jump to fopen(3), say, it lands in the right place). - -tests/ --- unit tests - The tests/ directory contains unit tests. Roughly arranged as one file per - publicly-exported header file. -benchmarks/ --- benchmarks - The benchmarks/ directory contains benchmarks. +#### libc/ --- libc.so, libc.a + +The C library. Stuff like `fopen(3)` and `kill(2)`. + +#### libm/ --- libm.so, libm.a + +The math library. Traditionally Unix systems kept stuff like `sin(3)` and +`cos(3)` in a separate library to save space in the days before shared +libraries. + +#### libdl/ --- libdl.so + +The dynamic linker interface library. This is actually just a bunch of stubs +that the dynamic linker replaces with pointers to its own implementation at +runtime. This is where stuff like `dlopen(3)` lives. + +#### libstdc++/ --- libstdc++.so + +The C++ ABI support functions. The C++ compiler doesn't know how to implement +thread-safe static initialization and the like, so it just calls functions that +are supplied by the system. Stuff like `__cxa_guard_acquire` and +`__cxa_pure_virtual` live here. + +#### linker/ --- /system/bin/linker and /system/bin/linker64 + +The dynamic linker. When you run a dynamically-linked executable, its ELF file +has a `DT_INTERP` entry that says "use the following program to start me". On +Android, that's either `linker` or `linker64` (depending on whether it's a +32-bit or 64-bit executable). It's responsible for loading the ELF executable +into memory and resolving references to symbols (so that when your code tries to +jump to `fopen(3)`, say, it lands in the right place). + +#### tests/ --- unit tests + +The `tests/` directory contains unit tests. Roughly arranged as one file per +publicly-exported header file. + +#### benchmarks/ --- benchmarks + +The `benchmarks/` directory contains benchmarks. What's in libc/? ---------------- +<pre> libc/ arch-arm/ arch-arm64/ @@ -121,6 +133,7 @@ libc/ zoneinfo/ # Android-format time zone data. # See 'Updating tzdata' later. +</pre> Adding system calls |