summaryrefslogtreecommitdiffstats
path: root/libc/bionic
Commit message (Collapse)AuthorAgeFilesLines
* [bionic]: Fixing futex problem in cpuacct update.M8668AAABQNLYA1080M8660AAABQNLYA1082M8660AAABQNLYA108001M7630AABBQMLZA4030Shashank Mittal2011-02-081-7/+8
| | | | | | | | | | | | With fprintf, sometimes after fork child process gets stuck in fuxtex waiting queue. To fix this problem this change opens the file in SYNC mode using open command and writes to the file using write command. (cherry picked from commit d96ad66076c70cd472bd36fc128031750751c09b) Change-Id: I7b0a386b1a86f2db3a1829f3d2210911febb2fbc CRs-Fixed: 272695 Signed-off-by: Shashank Mittal <mittals@codeaurora.org>
* libc: fix executable destruction support.David 'Digit' Turner2010-10-214-5/+61
| | | | | | | | | | | | | This change allows an executable to call its destructor functions (declared with __attribute__((destructor))) to be properly called when it normally exits. Note that this is different from calling the destructors of a shared library when it is unloaded with dlclose() or through program exit, which are already supported. Bug: 3106500 Change-Id: I1412ef5407f13b613fc6cb6103e0a691dbee4b1a
* Use a recursive lock for pthread_once. DO NOT MERGE.Wink Saville2010-09-221-3/+3
| | | | | | Backport change I9fc8b790 from Master to Gingerbread Change-Id: I5cf48fcd4efb7991ed82f87d9365c19655dc9b7f
* Bulletproof leak dump against null hash entriesChristopher Tate2010-08-091-20/+29
| | | | | | | | | Previously, the malloc leak checking code would crash in qsort() if null entries existed in its bookkeeping table. This change makes the comparison function detect null entries and sort them to the end safely. Change-Id: I88244a7df1e289dd9d7992ce29606d505bd63079
* libc: Fix sem_post() implementation to wake up all waiting threads.David 'Digit' Turner2010-07-021-46/+175
| | | | | | | This also allows us to optimize the case where we increment an uncontended semaphore (no need to call futex_wake() then). Change-Id: Iad48efe8551dc66dc89d3e3f18c001e5a6c1939f
* libc: add sanity checks to pthread_mutex_destroy()David 'Digit' Turner2010-06-281-2/+7
| | | | Change-Id: Iddb2204fa792fa9aca5f19838926dddbb09b74a2
* Remove compiler warnings when building Bionic.David 'Digit' Turner2010-06-226-10/+15
| | | | | | | | Also add missing declarations to misc. functions. Fix clearerr() implementation (previous was broken). Handle feature test macros like _POSIX_C_SOURCE properly. Change-Id: Icdc973a6b9d550a166fc2545f727ea837fe800c4
* Allow static C++ destructors to be properly called on dlclose().David 'Digit' Turner2010-06-181-105/+0
| | | | | | | | | | | | | | | | | | | | | | | With this patch, _and_ an upcoming build/ patch, the destruction of static C++ objects contained in shared libraries will happen properly when dlclose() is called. Note that this change introduces crtbegin_so.S and crtend_so.S which are currently ignored by the build system. + move definition of __dso_handle to the right place (before that, all shared libraries used the __dso_handle global variable from the C library). Note that we keep a 'weak' __dso_handle in aeabi.c to avoid breaking the build until the next patch to build/core/combo/ appears. We will be able to remove that later. + move bionic/aeabi.c to arch-arm/bionic/ (its proper location) Change-Id: Ie771aa204e3acbdf02fd30ebd4150373a1398f39 NOTE: The NDK will need to be modified to enable this feature in the shared libraries that are generated through it.
* libc: remove cutils dependenciesDavid 'Digit' Turner2010-06-113-4/+9
| | | | | | | | We simply copy the stuff we need from cutils headers. A future patch will change cutils to include the private <bionic_atomic_inline.h> Change-Id: Ib6fd9a03bc9e337ce867bd606dc94c2b4438480a
* Use private futexes for semaphores, unless they are initialized with pshared ↵David 'Digit' Turner2010-06-082-56/+87
| | | | | | | != 0. Change-Id: I534e36a7171cd37037ae03b910ba71ea6968286d Note: previously, sem_init() would return an error if pshared != 0.
* resolved conflicts for merge of 7b6e6fa5 to krakenJean-Baptiste Queru2010-06-031-0/+54
|\ | | | | | | Change-Id: I2b9b80a7fa32c56be2b85ff8be0d6e7ac1848afe
| * merge from open-source masterThe Android Open Source Project2010-06-031-0/+54
| |\ | | | | | | | | | Change-Id: Ib7fc9c6f79f9b13e2175da137005d8968ea85eaf
| | * pthread: introduce pthread_setname_np() as a mean to give names to threadsAndré Goddard Rosa2010-05-191-0/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... so that each cloned process at the kernel level can be named independently. Tools like 'top' can display the CPU/memory statistics for each process's thread if "Show Threads" mode is on. With this function in place, we can convert dalvik/Thread.c setThreadName() function over this function. This feature ought to be provided by the underlying C library and not coded directly in Dalvik. Change-Id: Ifa997665dbaa114e0b126f8c667708be9a4137fd Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
* | | Atomic/SMP update, part 3.Andy McFadden2010-05-282-5/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update ARM atomic ops to use LDREX/STREX. Stripped out #if 0 chunk. Insert explicit memory barriers in pthread and semaphore code. For bug 2721865. Change-Id: I0f153b797753a655702d8be41679273d1d5d6ae7
* | | Add pthread_rwlock_t implementation to the C library (DO NOT MERGE)David 'Digit' Turner2010-05-191-0/+347
|/ / | | | | | | Change-Id: I756d8c26afc37cd7b71117ddbaa02a2cb40fdecb
* | merge from open-source masterThe Android Open Source Project2010-05-032-0/+4
|\ \ | |/ | | | | Change-Id: If02d33af51017dbd85e91c79ac2e848eda6cf253
| * Merge "Fix log channel initialization at bionic/logd_write.c."David Turner2010-05-011-0/+2
| |\
| | * Fix log channel initialization at bionic/logd_write.c.Alexey Tarasov2009-12-031-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | log_channel_t contains fd member, which is file descriptor for exact logging channel. change cc05d1271680d6a7804bc89d3b1fe14c40b32396 lacks initialization of this member in __write_to_log_init(), thus logging code is not working, although not crashable. Additional details may be found in comments here: http://review.source.android.com/5617
| * | bionic: add missing NULL check from memory allocation on record_backtrace()André Goddard Rosa2010-04-291-0/+2
| | | | | | | | | | | | | | | | | | Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com> Change-Id: I739c63c5a7344fff1775580044dc647edf246ebf
* | | merge from open-source masterThe Android Open Source Project2010-04-081-3/+3
|\ \ \ | |/ / | | | | | | Change-Id: If77618a329fc7b497c44c2585e644bc50e7e1406
| * | bionic: fix memory leak in get_malloc_leak_info() error pathAndré Goddard Rosa2010-03-291-1/+2
| | | | | | | | | | | | Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
| * | bionic: clear only the part of the buffer which is not overwritten afterwardAndré Goddard Rosa2010-03-281-2/+1
| | | | | | | | | | | | | | | Change-Id: I5ddd93f0557e5a7401460dc9fc8a55b330a79c3a Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
* | | 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.