summaryrefslogtreecommitdiffstats
path: root/libc/bionic
Commit message (Collapse)AuthorAgeFilesLines
* Fix typo that broke recursive mutexes implementation.David 'Digit' Turner2010-03-231-1/+1
| | | | Change-Id: I832901604b487c6a50304c311b5ba135e153530d
* pthread: Use private futexes by default in condition variablesDavid 'Digit' Turner2010-03-221-20/+23
| | | | | | | Now that the system properly uses shared condvars when needed, we can enable the use of private futexes for them too. Change-Id: Icf8351fc0a2309f764cba45c65bc3af047720cdf
* merge from open-source masterThe Android Open Source Project2010-03-224-10/+10
|\ | | | | | | Change-Id: I70266ee8c520b216773f267e46c8273d2334c31d
| * Merge "bionic: on pthread_join(), avoid extra check in case we find the thread"David Turner2010-03-181-5/+4
| |\
| | * bionic: on pthread_join(), avoid extra check in case we find the threadAndré Goddard Rosa2010-02-051-5/+4
| | | | | | | | | | | | | | | | | | ... by using similar logic as used in pthread_detach(). Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
| * | Merge "bionic: ftell() returns a long, not an int"David Turner2010-03-181-1/+1
| |\ \
| | * | bionic: ftell() returns a long, not an intAndré Goddard Rosa2010-02-051-1/+1
| | |/ | | | | | | | | | Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
| * | Merge "bionic: remove unneeded variable from chk_realloc()"David Turner2010-03-161-2/+3
| |\ \
| | * | bionic: remove unneeded variable from chk_realloc()André Goddard Rosa2010-02-051-2/+3
| | |/ | | | | | | | | | | | | | | | ... and simplify the generated code. Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
| * | bionic: equalize the <unknown> program name between ssp.c and libc_init_common.cAndré Goddard Rosa2010-02-051-2/+2
| |/ | | | | | | | | | | ... for the consistency sake. Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
| * merge from eclairJean-Baptiste Queru2009-11-151-11/+158
| |\
| | * eclair snapshotJean-Baptiste Queru2009-11-123-11/+246
| | |
* | | Use private futexes for pthread_mutex_t.David 'Digit' Turner2010-03-181-58/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This does not change the implementation of conditional variables since we're waiting for other system components to properly use pthread_condattr_init/setpshared before that. Also remove an obsolete x86 source file. Change-Id: Ia3e3fbac35b87a534fb04d4381c3c66b975bc8f7
* | | Add pthread_condattr_init/destroy/setpshared/getpsharedDavid 'Digit' Turner2010-03-181-3/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note that this does not change the implementation of conditional variables which still use shared futexes, independent on the flags being selected. This will be fixed in a later patch, once our system is modified to use pthread_condattr_setpshared(attr, PTHREAD_PROCESS_SHARED) properly. Change-Id: I935de50964cd41f97a13dbfd6626d3407b0406c3
* | | Fix indentation in pthread mutex implementation.David 'Digit' Turner2010-03-171-207/+202
| | | | | | | | | | | | | | | | | | | | | This is preliminary work to simplify later changes to support private futexes. Change-Id: I06750936a93747a5e3f5a10228cbdc29e39c528c
* | | Revert "bionic: pthread: use private futexes by default for mutexes and ↵Fabrice Di Meglio2010-03-111-493/+298
| | | | | | | | | | | | | | | | | | condvars" This reverts commit ba9c6f0989ae94778ba2b9f597adc827c9dc81e8.
* | | bionic: pthread: use private futexes by default for mutexes and condvarsDavid 'Digit' Turner2010-03-111-298/+493
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Private futexes are a recent kernel addition: faster futexes that cannot be shared between processes. This patch uses them by default, unless the PROCESS_SHARED attribute flag is used when creating a mutex and/or conditional variable. Also introduces pthread_condattr_init/destroy/setpshared/getpshared. Change-Id: I3a0e2116f467072b046524cb5babc00e41057a53
* | | bonic: libc: cpuacct support for setuid functionsMike Chan2010-03-022-0/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | Any of the setuid functions now updates /acct/uid/ with its own tid before changing users. This is so we can properly account for cpu time per uid. Change-Id: I34186cf4d5228cac8439e582a9e26c01ef3011e4 Signed-off-by: Mike Chan <mike@android.com>
* | | Fix pthread_sigmask() to return correct error values.David 'Digit' Turner2010-03-011-1/+11
| | | | | | | | | | | | | | | Before that, it returned -1 on error and set errno (not Posix) After the patch, it returns the error code and leaves errno untouched.
* | | Merge "Merge memory checking functionality from sandbox"Vladimir Chtchetkine2010-02-174-54/+1067
|\ \ \
| * | | Merge memory checking functionality from sandboxVladimir Chtchetkine2010-02-164-54/+1067
| | | | | | | | | | | | | | | | Change-Id: I304c789a752c9f4af4944ca14b9bf1e7644da15a
* | | | Fix sem_post() behaviour to wake up multiple waiting threads.David 'Digit' Turner2010-02-121-1/+1
| | | |
* | | | Fix sem_trywait() implementation + update changelog.David 'Digit' Turner2010-02-121-1/+2
| | | |
* | | | Fix android_id_from_name to accept "app_0" as a valid ID.David 'Digit' Turner2010-02-121-1/+1
|/ / / | | | | | | | | | | | | This fixes getpwnam and getpwgrp which returned NULL for "app_0". "app_0" corresponds to uid/gid 10000 and is perfectly valid.
* | | Implement clone() C library function properly.David 'Digit' Turner2010-01-251-0/+81
| | | | | | | | | | | | | | | | | | | | | Only provide an implementation for ARM at the moment, since it requires specific assembly fragments (the standard syscall stubs cannot be used because the child returns in a different stack).
* | | Add implementation of fdprintf, clearenv, and stubs for ttyname_r, *usershellColin Cross2010-01-153-0/+120
| | | | | | | | | | | | Change-Id: I5fe7e8b6ee5edbb49e707c3b6737a58563781fa3
* | | Add fts, err, and sys/queue for grepColin Cross2010-01-152-0/+1167
| | | | | | | | | | | | Change-Id: Id47514a1812d828e95efa2fab0e9c15c5b682b58
* | | Fix libc logging implementation.Andy McFadden2009-11-301-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | The file descriptor wasn't getting set, so the writev() call was silently failing. There's a parallel implementation over in system/core/liblog, but it's still using the old approach and didn't have this problem.
* | | am 362b2aab: Merge change Ib4550a04 into eclair-mr2Vladimir Chtchetkine2009-11-198-351/+647
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Merge commit '362b2aabee2dd04e04a3ad9c09f0ad0212569be4' into eclair-mr2-plus-aosp * commit '362b2aabee2dd04e04a3ad9c09f0ad0212569be4': Split libc_debug.so into two .so modules loaded on demand from libc.so
| * | | Split libc_debug.so into two .so modules loaded on demand from libc.soVladimir Chtchetkine2009-11-188-351/+647
| | | | | | | | | | | | | | | | | | | | This change is intended to eliminate need to replace libc.so with libc_debug.so in order to enablememory allocation debugging. This is also the first step towards implementing extended memoryallocation debugging using emulator's capabilities in monitoring memory access.
* | | | am bc10cd29: Fix a typo that resulted in a crash in the boot sequenceDavid 'Digit' Turner2009-09-231-1/+1
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | Merge commit 'bc10cd2900cdb7fed077163b6a33e0f8572b2b19' into eclair-plus-aosp * commit 'bc10cd2900cdb7fed077163b6a33e0f8572b2b19': Fix a typo that resulted in a crash in the boot sequence
| * | | Fix a typo that resulted in a crash in the boot sequenceDavid 'Digit' Turner2009-09-231-1/+1
| | | |
* | | | am d154954f: Merge change 26419 into eclairDavid 'Digit' Turner2009-09-231-10/+131
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | Merge commit 'd154954f02691618fdf73a5a97336e64cad37af0' into eclair-plus-aosp * commit 'd154954f02691618fdf73a5a97336e64cad37af0': Add pthread_mutex_lock_timeout_np
| * | | Add pthread_mutex_lock_timeout_npDavid 'Digit' Turner2009-09-221-10/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is used to perform a mutex lock for a given amount of milliseconds before giving up. Using the _np prefix since this is absolutely not portable. Also remove a compiler warning in pthread_attr_getstackaddr
* | | | merge from open-source masterJean-Baptiste Queru2009-09-161-11/+1
|\ \ \ \ | | |/ / | |/| |
| * | | Remove code duplication for pthread_cond_timeout_np : use ↵Matthieu CASTET2009-09-141-11/+1
| | | | | | | | | | | | | | | | __pthread_cond_timedwait_relative helper
* | | | merge from open-source masterJean-Baptiste Queru2009-09-011-32/+50
|\ \ \ \ | |/ / / | | / / | |/ / |/| |
| * | Changed logging functions in bionic/logd_write.c.Alexey Tarasov2009-08-251-32/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Main differences from original code: 1. now log channel for LOG_ID_MAIN may exist even if LOG_ID_RADIO facility failed. 2. __write_to_log_null() now acts as always successful function. 3. it's more simplier to add new logging channels now ammended commit fixes my typo on line 130
* | | merge from open-source masterJean-Baptiste Queru2009-08-072-0/+88
|\ \ \ | |/ /
| * | Merge change 10057Android Code Review2009-08-072-0/+88
| |\ \ | | |/ | |/| | | | | | | * changes: Add mspace_merge_objects
| | * Add mspace_merge_objectsBarry Hayes2009-06-022-0/+88
| | |
* | | am 39f3745c: Restore malloc debug.Andy McFadden2009-07-214-16/+21
|\ \ \ | |/ / | | | | | | | | | | | | | | | Merge commit '39f3745cf30efe38482ffead1c32f4e62f6fe32e' * commit '39f3745cf30efe38482ffead1c32f4e62f6fe32e': Restore malloc debug.
| * | Restore malloc debug.Andy McFadden2009-07-214-16/+21
| | | | | | | | | | | | | | | | | | Some libc changes were preventing the initialization call from being made. The basic problem appears to be that libc_init_common.c is only built once, and it's only built for the non-debug libc.
* | | am b56b5659: Fix the C library runtime initialization order.David 'Digit' Turner2009-07-204-100/+115
|\ \ \ | |/ / | | | | | | | | | | | | | | | Merge commit 'b56b5659b3996e98c2060f168d1cff1474e77d2a' * commit 'b56b5659b3996e98c2060f168d1cff1474e77d2a': Fix the C library runtime initialization order.
| * | Fix the C library runtime initialization order.David 'Digit' Turner2009-07-184-100/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows libc.so to run the C runtime initializer as soon as the dynamic linker loads the shared library, i.e. before any other initializers (e.g. static C++ constructors in other shared libraries the executable depends on). This also removes the bug where the initializers from the executable itself were run twice: once by the dynamic linker, and another time by __libc_init as defined by libc_init_dynamic.c
* | | allow pthread_mutexattr_setpshared to accept SHARED mutexes, since our ↵Mathias Agopian2009-07-131-1/+12
| | | | | | | | | | | | current impl actually uses shared mutexes
* | | added pthread_cond_timedwait_relative_np()Mathias Agopian2009-07-131-0/+15
|/ /
* | Prevent a crash in the memory leak checker (which happened in chk_free())David 'Digit' Turner2009-07-102-63/+85
| | | | | | | | | | | | Simplify the code a little, removing un-necessary mutex locks/unlocks. Provide slightly better diagnostic message in case of corruption. Use snprintf/strlcat instead of sprintf/strcat
* | Revert "Fix the C library initialization to avoid calling static C++ ↵David 'Digit' Turner2009-06-034-82/+168
| | | | | | | | | | | | constructors twice." This reverts commit 03eabfe65e1e2c36f4d26c78a730fa19a3bdada3.
* | Fix the C library initialization to avoid calling static C++ constructors twice.David 'Digit' Turner2009-06-024-168/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem was due to the fact that, in the case of dynamic executables, the dynamic linker calls the DT_PREINIT_ARRAY, DT_INIT and DT_INIT_ARRAY constructors when loading shared libraries and dynamic executables, *before* calling the executable's entry point (i.e. arch-$ARCH/bionic/crtbegin_dynamic.c) which in turns call __libc_init() in libc.so, as defined by bionic/libc_init_dynamic.c The latter did call these constructors array again, mistakenly. The patch also updates the documentation of many related functions. Also adds a new section to linker/README.TXT explaining restrictions on C library usage. The patch has been tested on a Dream for stability issues with proprietary blobs: - H264 decoding works - Camera + Video recording works - GPS works - Sensors work The tests in system/extra/tests/bionic/libc/common/test_static_cpp_mutex.cpp has been run and shows the static C++ constructor being called only once.