summaryrefslogtreecommitdiffstats
path: root/libc/include
Commit message (Collapse)AuthorAgeFilesLines
* Fix GNU/POSIX basename headers.Josh Gao2016-03-092-10/+11
| | | | | | | | | | Including glibc's <libgen.h> will result in the user getting the POSIX version of basename always, regardless of when it is included relative to <string.h>. Prior to this patch, our implementation would result in the one that's included first winning. Bug: http://b/25459151 Change-Id: Id4aaf1670dad317d6bbc05763a84ee87596e8e59
* Add prlimit to LP32.Elliott Hughes2016-03-091-3/+0
| | | | | Bug: http://b/24918750 Change-Id: I0151cd66ccf79a6169610de35bb9c288c0fa4917
* Fix regoff_t for LP32 and _FILE_OFFSET_BITS=64.Elliott Hughes2015-11-071-2/+3
| | | | | | | | | | bionic is built without _FILE_OFFSET_BITS=64, so internally regoff_t was 32-bit on LP32, but code compiled with _FILE_OFFSET_BITS would expect rm_so and rm_eo in struct regmatch_t to be 64-bit, leading to confusion. Bug: http://b/23566443 Change-Id: Iae92fa545104068e4f64ce1977f5ec616859638c
* bionic: Let popen fall back to /sbin/shTom Marshall2015-11-031-0/+1
| | | | | | minivold in recovery uses popen, where /system/bin/sh is not available. Change-Id: I2136b0ca4188b7b44416f5d79492fc006382d4ad
* Improve personality initializationDmitriy Ivanov2015-06-301-1/+1
| | | | | | | | | | 1. Personality parameter should be unsigned int (not long) 2. Do not reset bits outside of PER_MASK when setting personality value. 3. Set personality for static executables. Bug: http://b/21900686 Change-Id: I4c7e34079cbd59b818ce221eed325c05b9bb2303
* Fix bad merge of 64e9e71cdb7d88397e510e1986d494b797ed3b45.Elliott Hughes2015-06-231-3/+0
| | | | | Bug: http://b/22029751 Change-Id: I6245fe5f274c9af8a632da5eebe50cf9fe29dc4a
* Merge "Add flag that makes linker honor min(p_vaddr)" into mnc-devDavid Srbecky2015-06-191-1/+9
|\
| * Add flag that makes linker honor min(p_vaddr)Dmitriy Ivanov2015-06-181-1/+9
| | | | | | | | | | | | | | | | (cherry picked from commit 8a1162835597be38705b381ac34c07da17932568) Bug: 21924613 Bug: http://b/21523078 Change-Id: I3f944a08dd2ed1df4d8a807da4fee423fdd35eb7
* | Fixes for building gdbserver (and gdb) out of the box.Elliott Hughes2015-06-163-2/+28
|/ | | | | | Bug: http://b/21695943 Change-Id: Iadb600b2ae619515d7038a4db9bf464ba31adb36 (cherry picked from commit 895241efbba344c1590b76fcada89c48f4743cf2)
* Avoid name collision with user_fpsimd_state in <asm/ptrace.h>.Elliott Hughes2015-06-151-2/+2
| | | | | | | | | | | | | We don't want to use <asm/ptrace.h> because (a) it'll drag in a bunch of namespace pollution and (b) the registers should be "long double" for userspace, not the kernel's uint128s. So just use a slightly different name for our struct (which matches the traditional names for these structs anyway). Bug: http://b/21695943 Bug: https://code.google.com/p/android/issues/detail?id=86712 Change-Id: I8812ca98cfe6b649dbd31f7d6aea41928ba2acbd (cherry picked from commit 0577733c2e15a4745d5c75f59e5f56dd179a4aa7)
* Add a sys/procfs.h.Dan Albert2015-06-152-0/+55
| | | | | | | | | Needed for building gdbserver out of the box. Bug: http://b/21695943 Bug: https://code.google.com/p/android/issues/detail?id=86712 Change-Id: Ieadda2b595f08bfddfa61fcd68006b8e7c1a438d (cherry picked from commit bf18c61798d1ae9197ae087ed85e94eef55e8678)
* am 00cef820: am 64e9e71c: Define nonportable pthread mutex macros with the ↵Sharvil Nanavati2015-06-151-0/+3
|\ | | | | | | | | | | | | _NP suffix. * commit '00cef82013c0826bb43c11651d25de8b99335618': Define nonportable pthread mutex macros with the _NP suffix.
| * am 64e9e71c: Define nonportable pthread mutex macros with the _NP suffix.Sharvil Nanavati2015-06-121-0/+3
| |\ | | | | | | | | | | | | * commit '64e9e71cdb7d88397e510e1986d494b797ed3b45': Define nonportable pthread mutex macros with the _NP suffix.
| | * Define nonportable pthread mutex macros with the _NP suffix.Sharvil Nanavati2015-06-121-0/+3
| | | | | | | | | | | | Change-Id: I1066352e5b2607f64daf6aeb0030d0bbe88ead8d
| | * Restore symbols from <arpa/nameser.h>.Elliott Hughes2014-12-041-74/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | Bug: 18627252 Bug: https://code.google.com/p/android/issues/detail?id=81690 (cherry picked from commit 42804c4b30e813d3140cba877d3ae6bbef0d3a17) Change-Id: Idd33578b31bba9a4afdfd15c7b193d10974aea90
| | * sysconf(3) returns long.Elliott Hughes2014-11-142-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On LP32, this makes no difference. Not an ABI change. On LP64, results are going to be in %rax or x0 whether they're 32- or 64-bit, and the only difference is going to be whether the top bits are clobbered. (cherry picked from commit 60d84af1726225320b26683b726e5e735d9d76e8) Bug: 18390956 Change-Id: I722461498bc5494e2972fb07d5189dffe76e8993
| | * bionic: libc: Added path to vendor build properties file.Daniel Rosenberg2014-11-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Daniel Rosenberg <drosen@google.com> (cherry picked from commit 71d220c1de1372e20c8bbec4ccf387991a3bb549) Bug: 18281574 Change-Id: I2843f23ecb4c4ca79b230d8041bbca02dbedeadc
| | * Revert "Add RTLD_NODELETE flag support"Dmitriy Ivanov2014-11-031-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit c87f65d2cd0690d81665f8b241c1d763f72b6f80. Bug: 18222321 Bug: 18211780 Change-Id: I00252e26a28a41ab9f1e2dd3b32f0f80d86297f1
| | * Add RTLD_NODELETE flag supportDmitriy Ivanov2014-10-311-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Bug: 18186310 Bug: https://code.google.com/p/android/issues/detail?id=64069 (cherry picked from commit 1b20dafdbe65e43b9f4c95057e8482380833ea91) Change-Id: Ic02eec22a7c322ece65eb40730a3404f611526b1
| | * Fix unused DT entry warnings.Dmitriy Ivanov2014-10-311-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DT_STRSZ Implement strtab boundary checks DT_FLAGS_1 Warn if flags other than DF_1_NOW|DF_1_GLOBAL are set Bug: 17552334 Bug: 18186310 (cherry picked from commit 6cdeb5234d7f4523fe9d83974f265d80f10512a6) Change-Id: I7ffc7bc600798308a77ad949a644949b64250ae2
| | * Only use <atomic> for C++11 and newer.Dan Albert2014-10-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Any pre-C++11 clients of stdatomic.h that use libc++ are being forced over to <atomic>, which they don't have the language support to use. Bug:17736764 Change-Id: I62445c1f2541410a1569498c09433c7196635537 (cherry picked from commit 3ce0769aa5f9a991af1d167f730d987dd002253c)
| | * Fix the type of u_ar0 in <sys/user.h>.Elliott Hughes2014-10-291-3/+3
| | | | | | | | | | | | | | | | | | | | | (cherry picked from commit e03950fa0c5567edf70d011b856a027e03b1c0f7) Bug: 18172268 Change-Id: I0feda6b253882f68f47bcf30fad998286cc7f620
| | * Add greg_t for arm64.Elliott Hughes2014-10-291-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was already present for the other architectures. I think we skipped this because glibc seems to have an incorrect definition (int rather than long), but the kernel has the sane definition (just not in a uapi header). (cherry picked from commit 8e4d371091e5738346f5c6ad395b8487c2a5ec67) Bug: 18172268 Change-Id: I22d13fdeb6431ea122dd028a229782dcaf2286b2
| | * POSIX says <signal.h> gets you ucontext_t.Elliott Hughes2014-10-292-8/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | POSIX also says that ucontext_t's uc_sigmask has type sigset_t. MIPS64 strace needs this. The #define is to keep chromium off our lawn; otherwise it tries to redefine all this stuff itself. We should probably clean that up and remove the #define. (cherry picked from commit 26a8eb50a84e131d34d10d5d167d67e9995399bd) Bug: 18172268 Change-Id: I49d7d09dabfc6c6926a8e1f4b235d041e2f2fc4d
| | * Add in_port_t and move it and in_addr_t to the correct header file.Elliott Hughes2014-10-292-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | No one's reported this, but I saw it in an Android port of fuser(1). We still have lots of problems in our network headers because we get most of the structs direct from the kernel, and it doesn't use types like this (which is why we've got away without this one for so long). One day we should probably look at cleaning that up, but doing so can wait. (cherry picked from commit 35d226e05d92824c6eb992e7a64ea22efc8bae03) Bug: 18172268 Change-Id: Ice490bfe84afb04722d738128053d4c533b8a664
| | * Use mxcr_mask instead of mxcsr_mask to match glibc.Elliott Hughes2014-10-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Bug: 18097559 (cherry picked from commit f485547b9267263e1de220a3cc368deaec367191) Change-Id: I242105faa8210abc9635a951b25b127cd64ed23c
| | * Rename library_offset to library_fd_offsetDmitriy Ivanov2014-10-221-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | replace lseek() and use pread() instead add test for library_fd_offset > file_size case Bug: 17762003 (cherry picked from commit a6c1279098f24a675d0df74ce1946f5d534b425e) Change-Id: Ie117c745081ee33d07db5341115ff6c8e98b0dec
| | * Add file_offset parameter to android_extinfoDmitriy Ivanov2014-10-211-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | Bug: 17762003 (cherry picked from commit 07e5bc152d8a3ad4c50808bb86f3c0f2c5e2f514) Change-Id: I72d527831384ff5dde013a4c8dfe639fbec165f5
| | * Make memory_order_acquire visible in global namespaceHans Boehm2014-10-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | We were missing that using directive when including <atomic>. Bug:17736764 Change-Id: Ie8ca92a952749415567bcd5fa21d56629a364660 (cherry picked from commit 76ac4d0853c3bba0c65edc98a9cdf932c452e252)
| | * Inline helpers need to be exported unmangled.Dan Albert2014-10-077-39/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | __open_2() is used by the fortify implementation of open(2) in fcntl.h, and as such needs an unmangled C name. For some reason (inlining?), this doesn't cause problems at the default optimization level, but does for -O0. The rest of these didn't cause build failures, but they look suspect and probably will, we just haven't caught them yet. (cherry-pick of 658727e111ed6dee7be5239494f0764f7b1b02f8 with conflicts in stdio.h and string.h.) Bug: 17784968 Change-Id: I7391a7a8999ee204eaf6abd14a3d5373ea419d5b
| | * cdefs.h: add artificial attribute to FORTIFY_SOURCE functionsNick Kralevich2014-10-071-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise the gcc compiler warning doesn't show up. Add -Wno-error to fortify related tests. Fortify related tests are expected to be examples of bad programs, and in many cases shouldn't compile cleanly. Rewriting them to compile cleanly isn't feasible nor desirable. Bug: 17784968 (cherry picked from commit 1aaa17802c92d99ae170245c2b2f15a6c27b133e) Change-Id: Ib6df1a3f44b55b1fff222e78395c10c51cd39817
| | * Work around a bug in Immersion's libImmEmulatorJ.so.Elliott Hughes2014-10-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This library calls pthread_mutex_lock and pthread_mutex_unlock with a NULL pthread_mutex_t*. This gives them (and their users) one release to fix things. Bug: 17443936 (cherry picked from commit 7d3f553f989f830976efa92ddc3c84661d4d42aa) Change-Id: Ie26bbecd3a74d61113b51c18832872499b97ee86
| | * Improve <sys/cdefs.h>.Elliott Hughes2014-10-078-173/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix and use __RENAME (and lose ___RENAME --- two underscores should be enough for anybody). This was the point of this change, because I want to use __RENAME to support the two basename variants and the two strerror_r variants. Lose a bunch of macros that weren't being used. Lose three dead files from the DNS code. Bug: 17784968 (cherry picked from commit 2cfb4e8e2e217ef0e4140dcbf9b3da809781158c) Change-Id: I5e96146f92c0521248c78c0933bec5e9a9818222
| | * further cleanup memcpy fortify implementationNick Kralevich2014-10-061-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | Bug: 17784968 (cherry picked from commit b84f667e9312611536a564700daea11c12b6fcfa) Change-Id: I68fc2cc0a1ee7f0887edf3681eb83ef678de1383
| | * string.h: remove unused variableNick Kralevich2014-10-061-1/+0
| | | | | | | | | | | | | | | | | | | | | (cherry picked from commit 48be71d02b6cc4e6493d38cdd6b7779032c38901) Bug: 17784968 Change-Id: Iac7732fb4f7fe42977cb9f62472bb636e17e5232
| | * Run constructors before resolving ifunc functionsDmitriy Ivanov2014-10-011-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | Bug: 17177284 (cherry picked from commit 9598b8c415e2fa9f240508185fe8c964b83f538d) Change-Id: I2c9631ee1cd77f8cf95ec0216a35b605c8786454
| | * Added test for ifunc support in dynamic linker.Brigid Smith2014-10-011-8/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ifuncs now work in i386 and x86_64 when called in the same library as well as in a different library. Bug:6657325 (cherry picked from commit c5a13efa9bc4264be0a9a9e37c00633af01584ed) Change-Id: I321d780bc2f9bd1baa749e1acacd2683aefe827b
| | * Fix incorrect parameter types for locale funcs.Dan Albert2014-09-242-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | strtoll(3), strtoull(3), wcstoll(3), and wcstoull(3) all take an _int_ as a base, not a size_t. This is an ABI compatibility issue. Bug: 17628622 Change-Id: I17f8eead34ce2112005899fc30162067573023ec (cherry picked from commit 3c5037f1b3b747e79d17a5f717d9f9c365132d33)
| | * Add pthread_gettid_np and re-expose __get_thread for LP32.Elliott Hughes2014-09-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A lot of third-party code calls the private __get_thread symbol, often as part of a backport of bionic's pthread_rwlock implementation. Hopefully this will go away for LP64 (since you're guaranteed the real implementation there), but there are still APIs that take a tid and no way to convert between a pthread_t and a tid. pthread_gettid_np is a public API for that. To aid the transition, make __get_thread available again for LP32. Bug: 14079438 Change-Id: I43fabc7f1918250d31d4665ffa4ca352d0dbeac1
| | * Add posix_fadvise(3).Elliott Hughes2014-09-101-0/+2
| | | | | | | | | | | | | | | Bug: 12449798 Change-Id: I07cbf3f670a0d1304b68148325a774f266b5c433
| | * Don't expose non-standard basename_r and dirname_r in LP64.Elliott Hughes2014-09-051-17/+8
| | | | | | | | | | | | | | | Bug: 17407423 Change-Id: I47fe499a4c396bf09d7b78fd828728d04777398b
| | * Make stdatomic.h work with gcc4.6 host compilerHans Boehm2014-09-021-11/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is needed to make L work correctly, and bionic tests pass again, after applying the equivalent of commit 00aaea364501b3b0abe58dae461136159df1e356 there. It makes the preexisting code that uses __sync implementations much more useful, although we should no longer be exercising that code in AOSP. Specifically fixes: We were invoking __has_extension and __has_builtin for GCC compilations. They're clang specific. Restructured the tests. The __sync implementation was not defining the LOCK_FREE macros. ATOMIC_VAR_INIT was using named field initializations. These are a C, not C++, feature, that is not supported by g++ 4.6. The stdatomic bionic test still failed with 4.6 and glibc with our questionable LOCK_FREE macro implementation. Don't run that piece with 4.6. In L, this is a prerequisite for fixing: Bug:16880454 Bug:16513433 Change-Id: I9b61e42307f96a114dce7552b6ead4ad1c544eab (cherry picked from commit 32429606bf696d3b2ca555f132a0d60c566d0bd0)
| | * Undefine _Atomic before redefiningHans Boehm2014-09-021-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Stdatomic.h was potentially redefining _Atomic, in spite of a prior definition by <atomic>. This could cause g++ builds that included <stdatomic.h> with an available <atomic> header to break. A functional stdatomic.h is a prerequisite for fixing the following bugs. This is the middle of 3 AOSP updates to bionics stdatomic.h that are needded to get there. Bug:16880454 Bug:16513433 Change-Id: I562c7115118c0587d594d4d5b62d25101e47bfd8 (cherry picked from commit 3e4a0099a179d7acee63d78c8fc4c3cc7b0bae42)
| | * Fix, generalize stdatomic.h; improve test.Hans Boehm2014-09-021-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We seem to use this stdatomic.h sometimes, and slightly different prebuilts at other times, making them all difficult to test, and making it unclear which one we're testing. This generalizes the bionic header so that it can be used directly as the prebuilt header as well. So long as they don't diverge again, that should somewhat improve test coverage. Use the correct builtin for atomic_is_lock_free. Fix atomic_flag_init. Turn on atomic tests even with __GLIBC__, since they now appear to pass. Include uchar.h in stdatomic.h where needed. Add a basic memory ordering test. Fix bit-rotted comments in bionic tests makefile. Prerequisite for fixing b/16880454 and Bug:16513433 Change-Id: If6a14c1075b379395ba5d93357d56025c0ffab68 (cherry picked from commit 00aaea364501b3b0abe58dae461136159df1e356)
| | * Use __GNUC_PREREQ rather than __GNUC_PREREQ__ to match glibc.Elliott Hughes2014-08-292-20/+20
| | | | | | | | | | | | | | | | | | | | | | | | Bug: 16874785 (cherry picked from commit e0c56efddf55ad40cb35b2c22e1dd9b4b50df159) Change-Id: I9c922ba019f648766fc399d1c4e35e789e25acd4
| | * Fix some 32-bit-isms in <stdio.h>.Elliott Hughes2014-08-201-0/+12
| | | | | | | | | | | | | | | Bug: 17157793 Change-Id: I8290e240b92e5617f4c12c0eacad6e622e677b6a
| | * Expose android_set_abort_message().Dan Albert2014-08-191-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | Removes the leading underscores from __android_set_abort_message() and moves its declaration into a public header file. Bug: 17059126 Change-Id: I470c79db47ec783ea7a54b800f8b78ecbe7479ab (cherry picked from commit ce6b1abbb1da797e716d8ec03da4e3b6304fd11d) (cherry picked from commit 3a25ab952befbe908f6df45805683ebe3bf65863)
| | * Have stdatomic.h punt to C++ atomic when possibleHans Boehm2014-08-151-0/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an alternate, somewhat simpler, fix that makes it safe to include both <atomic> and <stdatomic.h> from C++ code in either order. It means that C code consistently uses one implementation of atomics and C++ another. We still have to make sure that those two implementations interoperate correctly at runtime; in particular, any flavor of atomic object needs to be represented exactly like the underlying type, with the proper alignment constraint. Bug:17007799 Change-Id: Iffcfc5220d8fa150f89dd083a121b24d23f268fc (cherry picked from commit 019d3958118b7dc3ec8444ad2accca50c268b737)
| | * Change name of MB_CUR_MAX implementation function.Dan Albert2014-08-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Glibc calls theirs __ctype_get_mb_cur_max. Make ours match to cut down on differences between bionic and glibc. Bug: 11156955 Change-Id: Ib7231f01aa9676dff30aea0af25d597bfe07bc73
| | * Proper MB_CUR_MAX.Dan Albert2014-08-061-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously this was hard coded to 4. This is only the case for UTF-8 locales. As a side effect, this properly reports C.UTF-8 as the default locale instead of C. Change-Id: I7c73cc8fe6ffac61d211cd5f75287e36de06f4fc (cherry picked from commit 1aec7c1a35b2d03038b194967d5ebdc8e2c24b80)