/bionic/linker/ |
D | linked_list.h | 44 LinkedListIterator(const LinkedListIterator<T>& that) : entry_(that.entry_) {} in LinkedListIterator() argument 47 LinkedListIterator<T>& operator=(const LinkedListIterator<T>& that) { 48 entry_ = that.entry_; 61 bool operator==(const LinkedListIterator<T>& that) const { 62 return entry_ == that.entry_; 65 bool operator!=(const LinkedListIterator<T>& that) const { 66 return entry_ != that.entry_; 87 LinkedList(LinkedList&& that) noexcept { in LinkedList() argument 88 this->head_ = that.head_; in LinkedList() 89 this->tail_ = that.tail_; in LinkedList() [all …]
|
D | Android.bp | 10 // each binary. There's a linker script that sets all of that up (generated by 132 // Ensure that the compiler won't insert string function calls before ifuncs are resolved. 268 // Leave the symbols in the shared library so that stack unwinders can produce 292 // Ensure that if the linker needs __gnu_Unwind_Find_exidx, then the linker will have a 368 // NOTE: --exclude-libs=libgcc.a makes sure that any symbols ld-android.so pulls from 369 // libgcc.a are made static to ld-android.so. This in turn ensures that libraries that 451 // Parts of the linker that we're testing.
|
/bionic/docs/ |
D | libc_assembler.md | 9 verify that the routine is being properly tested. 10 * Rerun the benchmarks using the updated image that uses the code for 13 * Verify that unwind information for new routine looks correct. See 17 Make sure that you benchmark both the big and little cores to verify that 62 The last argument is the name of the one function that you want to 66 **bionic/benchmarks/suites**. Look at the examples in that file to see 67 how to add a benchmark for a function that doesn't already exist. 94 that if the device does not get up to the maximum cpu frequency, the results 99 Another potential issue is that the device can overheat when running the 101 or choose a device that is less likely to overheat. To detect these kind [all …]
|
D | 32-bit-abi.md | 6 that use `off_t` to working on files no larger than 2GiB. 20 all you need are functions like `read` that don't take/return `off_t`, large 28 compiled with that was actually using a 32-bit `off_t`. With a new enough NDK, 30 all functions that take an `off_t` become unavailable. You've asked for their 35 [linker map](libc/libc.map.txt) for full details. Note also that in NDK r16 and 38 that's often needed. This means that code using `_FILE_OFFSET_BITS=64` 39 and `mmap` (but no other functions that are unavailable at your target 46 aren't aware that `_FILE_OFFSET_BITS` is set. You might also have to 48 flag that should never be set by user code but sometimes is (by zlib, 50 doesn't compile, you can insert this just before the line that's failing [all …]
|
D | native_allocator.md | 10 It is important to note that there are two modes for a native allocator 21 When evaluating a native allocator, make sure that you benchmark both 25 Android supports a few non-standard functions and mallopt controls that 29 These are functions that are used to implement a memory leak detector 33 This function, when called, should pause all threads that are making a 51 These are mallopt options that Android requires for a native allocator 55 When set to zero, `mallopt(M_DECAY_TIME, 0)`, it is expected that an 65 The drawback to this option is that most allocators do not have a separate 67 allocation operation occurs. For server processes, this can mean that 73 made by default. The idea is that it allows application frees to run a [all …]
|
D | defines.md | 10 is typically a good choice when you use libc API that's only in bionic, such as 12 `__GLIBC__`, `__APPLE__`, or `_WIN32`. Note that although bionic is most often 19 more appropriate. This is typically a good choice if you have code that's part 22 remember that it is possible -- if unusual -- to use bionic on the host). 32 that for most of the year, the OS builds with this set to 10,000 rather than the 34 value of `__ANDROID_API__` drops to that number. 60 macros to conditionally compile. Note that the ABI usually called `arm64` uses
|
D | fdsan.md | 38 Assertion failures are probably the most innocuous result that can arise from these bugs: silent da… 43 …ile descriptor with an owner; if someone tries to close a file descriptor that they don't own, dep… 45 …that identifies the type of the owner (`enum android_fdan_owner_type` in [`<android/fdsan.h>`](htt… 47 If a file descriptor that's been marked with a tag is closed with an incorrect tag, or without a ta… 63 …ror is proportional to the percentage of file descriptors in your process that are tagged with an … 68 Let's look at a simple contrived example that uses sleeps to force a particular interleaving of thr… 136 This implies that either we're accidentally closing out file descriptor too early, or someone else … 158 Now that we've guarded the file descriptor with fdsan, we should be able to find where the double c… 186 …hen tracking down double-closes in processes that have sparse fdsan coverage. What actually happen… 227 …ed types like `unique_fd` and `ParcelFileDescriptor`, to improve the odds that double closes in ot… [all …]
|
D | status.md | 75 * `aligned_alloc` correctly verifies that `size` is a multiple of `alignment`. 284 Note that this doesn't change behavior as much as you might think: the 286 the lookup, so there was still a race between that and the dereference 287 in the caller, given that callers actually need the tid to pass to some 312 use `pthread_gettid_np` at some point that you know the thread to be 321 POSIX says that `sem_wait` can be interrupted by delivery of a 323 bug we found that existing code relied on the old behavior. To preserve 335 Note that in recent releases Android's FORTIFY has been extended to 349 need to manually enable FORTIFY by setting that themselves in whatever
|
/bionic/ |
D | README.md | 29 that the dynamic linker replaces with pointers to its own implementation at 35 thread-safe static initialization and the like, so it just calls functions that 42 has a `DT_INTERP` entry that says "use the following program to start me". On 43 Android, that's either `linker` or `linker64` (depending on whether it's a 45 into memory and resolving references to symbols (so that when your code tries to 67 # Each architecture has its own subdirectory for stuff that isn't shared 68 # because it's architecture-specific. There will be a .mk file in here that 115 # because the Linux kernel interface is sufficiently different that we 117 # legacy mess that needs to be sorted out, either by replacing it with 122 # The code that implements the functionality to enable debugging of [all …]
|
D | android-changes-for-ndk-developers.md | 19 Our general practice with dynamic linker behavior changes is that they 27 * Warnings about any behavior change that will affect a library if you 28 increase your target API level will appear in logcat when that library 29 is loaded, even if you're not yet targeting that API level. 32 as toasts. Experience has shown that many developers don’t habitually 40 on the dynamic linker's search path. This meant that apps 65 in that order. For API 23 and later, for any given library, the dynamic 72 the local group. This allows ASAN, for example, to ensure that it can 78 LD_PRELOAD applies to both 32- and 64-bit processes. This means that you 87 correctly in API 23 and later. Note that RTLD_LOCAL is the default, [all …]
|
/bionic/libdl/ |
D | NOTICE | 14 the copyright owner that is granting the License. 17 other entities that control, are controlled by, or are under common 18 control with that entity. For the purposes of this definition, 38 copyright notice that is included in or attached to the work 42 form, that is based on (or derived from) the Work and for which the 45 of this License, Derivative Works shall not include works that remain 51 to that Work or Derivative Works thereof, that is intentionally 58 and issue tracking systems that are managed by, or on behalf of, the 60 excluding communication that is conspicuously marked or otherwise 80 by such Contributor that are necessarily infringed by their [all …]
|
D | Android.bp | 45 // NOTE: --exclude-libs=libgcc.a makes sure that any symbols libdl.so pulls from 46 // libgcc.a are made static to libdl.so. This in turn ensures that libraries that 137 // NOTE: --exclude-libs=libgcc.a makes sure that any symbols libdl.so pulls from 138 // libgcc.a are made static to libdl.so. This in turn ensures that libraries that
|
/bionic/libc/malloc_debug/ |
D | README.md | 13 When malloc debug is enabled, it works by adding a shim layer that replaces 60 padded so that it is a multiple of 8 bytes on 32 bit systems and 16 bytes 61 on 64 bit systems to make sure that the allocation returned is aligned 64 This option adds a special header to all allocations that contains the guard 84 This option adds a special header to all allocations that contains 105 Note that any backtrace frames that occur within the malloc backtrace library 112 Before P, this option adds a special header to all allocations that contains 113 the backtrace and information about the original allocation. After that, this 119 that dumped when running am dumpheap -n. The default is to dump this data 121 used with native only executables that run for a while since these processes [all …]
|
D | README_marshmallow_and_earlier.md | 9 functional until API level 19, so using it on a version older than that 19 When malloc debug is enabled, it works by adding a shim layer that replaces 39 Malloc debug is controlled by a system property that takes a numeric value 40 named libc.debug.malloc. It has only a few distinct modes that enables a 46 that contains information about the allocation. 73 that contains information about the allocation. 94 on the list is removed and verified that it still contains the pattern 0xef. 99 When the program completes, all of the allocations that are still live 112 cause malloc debug to only be used on processes with that name. For example,
|
D | README_api.md | 4 in a process. The libc library in Android exports two calls that can be 12 *info* is set to a buffer allocated by the call that contains all of 17 *total\_memory* is set to the sum of all allocation sizes that are live at 21 that are present for each allocation.
|
/bionic/libc/kernel/ |
D | README.md | 3 Bionic comes with a processed set of all of the uapi Linux kernel headers that 9 declarations and constructs that usually result in compilation failure. 22 also includes the header files that are generated by building the kernel 65 tracking, read the uapi/linux/version.h that is generated. 71 Before running the command to import the headers, make sure that you have 92 After this, you will need to build/test the tree to make sure that these
|
/bionic/benchmarks/linker_relocation/ |
D | Android.bp | 5 // modification, are permitted provided that the following conditions 34 // into the testcases/linker_reloc_bench directory. The obvious way to do that is to list each 35 // library in the "data" property, but that doesn't work, because each library is listed as having a 37 // "link:(shared/static)" variation. It appears that Soong needs to be fixed to make this benchmark
|
/bionic/libc/malloc_hooks/ |
D | README.md | 4 Malloc hooks allows a program to intercept all allocation/free calls that 11 When malloc hooks is enabled, it works by adding a shim layer that replaces 62 the caller must guarantee that it does not depend on allocations/frees 68 the current default allocation functions. It is expected that if an 115 of 32. This meant that to create a wrap property with the name of the app, it
|
/bionic/libc/ |
D | NOTICE | 5 modification, are permitted provided that the following conditions 32 modification, are permitted provided that the following conditions are met: 61 software is freely granted, provided that this notice 71 software is freely granted, provided that this notice 84 software is freely granted, provided that this notice 97 software is freely granted, provided that this notice 111 software is freely granted, provided that this notice 121 software is freely granted, provided that this notice 134 software is freely granted, provided that this notice 148 software is freely granted, provided that this notice [all …]
|
D | Android.bp | 41 // Try to catch typical 32-bit assumptions that break with 64-bit pointers. 134 // Functions not implemented by jemalloc directly, or that need to 142 // Used to pull in the jemalloc include directory so that if the 151 // Code that implements the stack protector (or that runs before TLS has been set up) needs to be 435 // that can be safely included in the libc_ndk.a (doesn't 989 // libc_bionic_ndk.a- The portions of libc_bionic that can 1189 // libc_pthread.a - pthreads parts that previously lived in 1296 // This is an LP32 ARM-only library that needs to be built with -fno-builtin 1315 // all the parts of libc that are safe to statically link. 1316 // We can't safely statically link things that can only run [all …]
|
D | SECCOMP_BLOCKLIST_APP.TXT | 2 # Note that the resultant policy is applied only to zygote spawned processes. 11 # the process still has CAP_SYS_ADMIN; changing the uid would remove that capability.
|
D | SECCOMP_ALLOWLIST_SYSTEM.TXT | 2 # Note that the resultant policy is applied only to zygote spawned processes.
|
/bionic/libc/kernel/android/ |
D | README.md | 1 The files under the uapi directory are android kernel uapi header files that 10 declarations that can't be directly used by userspace. The glibc
|
/bionic/benchmarks/ |
D | README.md | 33 searches for the XML file in the `suites/` directory. If it doesn't exist in that directory, then 61 Note that benchmarks will run normally if extra arguments are passed in, and it will fail 95 benchmarks, the CPU measurement only counts time spent in the thread calling `posix_spawn`, not that 179 Changing the scaling governor to `performance` suppresses the warning that Google Benchmark 184 Some devices have a `perf-setup.sh` script that locks CPU and GPU frequencies. Some TradeFed
|
/bionic/tests/libs/ |
D | Android.bp | 311 // 1. Check that private libraries loaded in different namespaces are 312 // different. Check that dlsym does not confuse them. 313 // 2. Check that public libraries loaded in different namespaces are shared 315 // 3. Check that namespace sticks on dlopen 316 // 4. Check that having access to shared library (libnstest_public.so) 374 // 1. Check that namespace a exposes libnstest_ns_a_public1 to 377 // 2. Check that namespace b exposes all libraries to namespace a. 1265 // Check that RTLD_NEXT of a libc symbol works in dlopened library 1274 // Library with constructor that calls dlopen() b/7941716 1319 // Library that depends on the library with constructor that calls dlopen() b/7941716 [all …]
|