00fedf5879176d580aa7e9c4fdc820a6f9655033 |
|
06-Jul-2017 |
Elliott Hughes <enh@google.com> |
Undo recent _FILE_OFFSET_BITS=64 changes. We had several bugs filed saying "if I set _FILE_OFFSET_BITS=64 when targeting an API < L, various functions are missing". Instead of saying "yes, they are", we quietly just modified the header files to expose the non-64-bit variants. This makes no sense. We can't just say "oh, yeah, we don't have a version of this function that agrees with your calling code about how large off_t is, but here's a version that doesn't: I'm sure it'll be fine". _FILE_OFFSET_BITS=64 on Android LP32 has always been a game of chance, but that game should be "are all the functions my code needs available at compile time?", not "will my code actually work at run time?". Bug: https://github.com/android-ndk/ndk/issues/449 Bug: https://github.com/android-ndk/ndk/issues/442 Bug: https://github.com/android-ndk/ndk/issues/333 Bug: https://github.com/android-ndk/ndk/issues/332 Bug: https://github.com/android-ndk/ndk/issues/324 Test: builds Change-Id: Ib095251d3e21e77ed50cc3575388107fecec4ecd
|
cfb61712c4367c2943f1b4fb7838d5e125020bef |
|
20-Apr-2017 |
Josh Gao <jmgao@google.com> |
The future is now. __INTRODUCED_IN_FUTURE -> __INTRODUCED_IN(26) Bug: http://b/37437368 Test: treehugger Change-Id: I601a23da83b65a0cd582cc840ed3856a9031b673 (cherry picked from commit cb302f932a3532f1484e1e70894e9b1199384283) (Cherry picked a DO N*T MERGE commit that should have been merged) (cherry picked from commit 2e8e5e60b6ecbcfe2110242e41b9ec5340b11cf5)
|
2e8e5e60b6ecbcfe2110242e41b9ec5340b11cf5 |
|
20-Apr-2017 |
Josh Gao <jmgao@google.com> |
DO NOT MERGE: The future is now. __INTRODUCED_IN_FUTURE -> __INTRODUCED_IN(26) Bug: http://b/37437368 Test: treehugger Change-Id: I601a23da83b65a0cd582cc840ed3856a9031b673 (cherry picked from commit cb302f932a3532f1484e1e70894e9b1199384283)
|
cb302f932a3532f1484e1e70894e9b1199384283 |
|
20-Apr-2017 |
Josh Gao <jmgao@google.com> |
The future is now. __INTRODUCED_IN_FUTURE -> __INTRODUCED_IN(26) Bug: http://b/37437368 Test: treehugger Change-Id: I601a23da83b65a0cd582cc840ed3856a9031b673
|
79a3db030475792f8ee355292235d3453f50db65 |
|
18-Mar-2017 |
Elliott Hughes <enh@google.com> |
Only rename fgetpos/fsetpos/fseeko/ftello/funopen if we're N or newer. Without this, setting __FILE_OFFSET_BITS to 64 and targeting pre-L made these functions entirely unavailable. Bug: https://github.com/android-ndk/ndk/issues/333 Test: builds Change-Id: Id17ae3c070f8b2650a9bc9aa2aa2e92c5fcdf4ad
|
9c2094f3c527301068f2049eefd9e684a7995352 |
|
15-Feb-2017 |
Dan Albert <danalbert@google.com> |
Fixup API level guards for new fortify functions. Test: tools/update_headers.sh && make checkbuild Bug: None Change-Id: I9d06ea8a5ee9dc27d957f59e6e84150651ed1c76
|
156d5a8ae93c6515919dd6706481991c7c0dc600 |
|
10-Feb-2017 |
George Burgess IV <gbiv@google.com> |
Match __bos0 to __pass_object_size0 in FORTIFY pass_object_size(N) forwards the result of __builtin_object_size(param, N) to a function. So, a function that looks like: size_t foo(void *const p __pass_object_size) { return __bos0(p); } int bar = foo(baz); would effectively be turned into size_t foo(void *const p, size_t sz) { return sz; } int bar = foo(baz, __bos(baz)); // note that this is not __bos0 This is bad, since if we're using __bos0, we want more relaxed objectsize checks. __bos0 should be more permissive than __bos in all cases, so this change Should Be Fineā¢. This change also makes GCC and clang share another function's implementation (recv). I just realized we need to add special diagnostic-related overloads bits for clang to it, but I can do that in another patch. Bug: None Test: Bullhead builds and boots; CtsBionicTestCases passes. Change-Id: I6818d0041328ab5fd0946a1e57321a977c1e1250
|
7cc779f15c524e1622f7d5b1c7e82e6ffc6677fd |
|
09-Feb-2017 |
George Burgess IV <gbiv@google.com> |
libc: add clang FORTIFY support This patch adds clang-style FORTIFY to Bionic. For more information on FORTIFY, please see https://goo.gl/8HS2dW . This implementation works for versions of clang that don't support diagnose_if, so please see the "without diagnose_if" sections. We plan to swap to a diagnose_if-based FORTIFY later this year (since it doesn't really add any features; it just simplifies the implementation a lot, and it gives us much prettier diagnostics) Bug: 32073964 Test: Builds on angler, bullhead, marlin, sailfish. Bionic CTS tests pass on Angler and Bullhead. Change-Id: I607aecbeee81529709b1eee7bef5b0836151eb2b
|
5bc78c8bcd0c1e634c04029309ede3ec05f2d424 |
|
16-Nov-2016 |
Elliott Hughes <enh@google.com> |
Add and use constants for the Android API levels. Test: bionic tests still pass Change-Id: If1b619cfc9db1d3f5d91f14f2ace71058dca0c4a
|
3037ea43fccf5ec64537c3ee024bc726ee723c01 |
|
07-Oct-2016 |
Dan Albert <danalbert@google.com> |
Fix stdin/stdout/stderr for pre-M. This wasn't an array of pointers, it was an array of structs. Unfortunately we need a complete type to index into the struct for stdin/stdout/stderr, so add a phony struct that matches the size and alignment of `struct __sFILE`. This property is guaranteed by the static_asserts in libc/bionic/struct_file_test.cpp. Test: mma Bug: http://b/30465923 Change-Id: I8ce851dd64a261703bb44f9b5cd23b7caff4dd68
|
fd936ae0257dd3db5ec5fcff46188993bec7a65d |
|
12-Aug-2016 |
Elliott Hughes <enh@google.com> |
POSIX says <fcntl.h> makes SEEK_* visible. http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/fcntl.h.html We already had two copies of these constants, so time to factor them out into bits/. Change-Id: I213c0d2372e41463593f878d338002b8eaa918cd
|
53cf348c829cb36328755bbdbe46668ecbc55348 |
|
09-Aug-2016 |
Elliott Hughes <enh@google.com> |
Remove more stdio copy/paste. Change-Id: Ia92629b75d2c153ecf1cec711e2f9575eef604ab
|
dfa6bbb54bd9ab2a71df4c066427ea804608e20b |
|
03-Aug-2016 |
Dan Albert <danalbert@google.com> |
Guard fortify inlines with __ANDROID_API__. Test: make checkbuild with libc ndk_library patches applied Change-Id: Ic5e248994c4f2702b0f4d6dfeda787187ea86017
|
c1020754c26b3d9f89a61491d515acead2c6c52a |
|
27-Jul-2016 |
Dan Albert <danalbert@google.com> |
Remove _GNU_SOURCE guard on tmpnam. This shouldn't be guarded by _GNU_SOURCE. external/opencv3 expects P_tmpdir to be available. http://pubs.opengroup.org/onlinepubs/009695399/functions/tmpnam.html Test: make checkbuild Change-Id: Iba9ee03aec6e712356b571f7165ed1809e6227fe
|
f6495c78a84b4a797a6faf77f8bd56998c739509 |
|
25-Jul-2016 |
Elliott Hughes <enh@google.com> |
Stop #define'ing __func__ and __restrict. __STDC_VERSION__ isn't defined for __cplusplus, so we've been removing such checks. Some got missed. Stop defining __func__ and just use the __PRETTY_FUNCTION__ GCC extension in <assert.h>. Also fix the #if there so that C++ gets __assert2 rather than __assert, and rewrite the cast to work with -I rather than -isystem. Also remove __restrict and just always use the __restrict GCC extension. Add a trivial test for <assert.h>. Bug: http://b/30353757 Change-Id: Ie49bb417976293d3a9692b516e28fe3c0ae0a6d9 Test: ran bionic unit tests.
|
5470c183611737af5ec954984e4bdb5da8c99b73 |
|
22-Jul-2016 |
Elliott Hughes <enh@google.com> |
Make it possible to build bionic with -I instead of -isystem. Various things: * work around -Wnullability-completeness. * use C++ casts in C++ and C casts in C. * stop using attributes clang doesn't support (such as `warning`). * remove duplicate definitions of XATTR_CREATE and XATTR_REPLACE. Change-Id: I07649e46275b28a23ca477deea119fe843999533
|
32c79c279d8d06163c8ee3e013007bebe3ff62ba |
|
15-Jul-2016 |
Dan Albert <danalbert@google.com> |
Put the legacy stdio fds back for pre-M. Change-Id: I2e397b04cba2969b9f9a3767b9b2fd12a289fcd2
|
9eb3ae122fd9759251063ee351cb23cc769dbe61 |
|
30-Jun-2016 |
Elliott Hughes <enh@google.com> |
Remove __nonnull (in favor of _Nonnull). It's a dangerous pain in the ass, and we're only using it in one place, and that's a mistake too. Change-Id: Ida1d1286aaa1343bdee95fa092fcb45ff3258f77
|
9c8d711aa5ee3108a8e1e8959be9d0355ca0fa6a |
|
13-Jun-2016 |
Elliott Hughes <enh@google.com> |
Don't expose all BSD extensions. Just expose the ones that bionic historically leaked. Also, many of the M_* constants in <math.h> are actually POSIX. Change-Id: I6275df84c5866b872b71f1c8ed14e2aada12b793
|
95fa26e5901e548d2c3650953bd2d5f92c9e9d2d |
|
11-Jun-2016 |
Josh Gao <jmgao@google.com> |
Update symbol versions. Bug: http://b/28178111 Change-Id: I8e9fb919d96693dd320962775e991caf5aeb0107
|
3ba55f8022f3d5c5ca94a3df46fa658eda791987 |
|
09-Jun-2016 |
Elliott Hughes <enh@google.com> |
Rationalize visibility. If it's C or POSIX, it's in. If it's BSD or GNU, it's guarded by __USE_BSD or __USE_GNU. Bug: https://code.google.com/p/android/issues/detail?id=194631 Change-Id: Ife51a21c2b37b060db56780d29c929805b199cb6
|
20788aec002ab3f6dea4e01665a439933161d11c |
|
10-Jun-2016 |
Elliott Hughes <enh@google.com> |
Add ctermid. Change-Id: I7c7c815c2725df222932db923632c8b6419741ab
|
46b44160e9e4c466be0faf1bb8d6ec70ecc83273 |
|
27-May-2016 |
Josh Gao <jmgao@google.com> |
Update header versions for NDK platform fixes. Bug: http://b/28178111 Change-Id: Icd638673b409aa43a91490f77c6b4d79c9ea20d9
|
14adff1cfa06a3d4d3281a9bf7848b556d84c20d |
|
29-Apr-2016 |
Josh Gao <jmgao@google.com> |
Add versioning information to symbols. Bug: http://b/28178111 Change-Id: I46bf95accd819f4521afb1173d8badcc5e9df31c
|
f226ee59e0effedeabed09e2d65be7fa7499cc25 |
|
03-Feb-2016 |
Elliott Hughes <enh@google.com> |
Add fopen64/freopen64/tmpfile64 aliases. Our fopen/freopen/tmpfile are already always O_LARGEFILE, but let's add the aliases for _LARGEFILE_SOURCE compatibility. Bug: http://b/24807045 Change-Id: I5d99b3ef3c9f27ce70f13313f6a92e96c7f21f80
|
03e65eb03bf0bfaafa797daf91e80e8308968db3 |
|
26-Jan-2016 |
Elliott Hughes <enh@google.com> |
Implement funopen64. Bug: http://b/24807045 Change-Id: I161920978161389be34b707cc6ce8e05f760d552
|
9677fab88c25fd2e6f3149ad00fb8870963f0675 |
|
26-Jan-2016 |
Elliott Hughes <enh@google.com> |
Support _FILE_OFFSET_BITS=64 for most of <stdio.h>. This doesn't address funopen, but does add fgetpos/fsetpos/fseeko/ftello. Bug: http://b/24807045 Change-Id: Ibff6f00df5fb699c8e8f13b91a75caf024540b73
|
e70e0e9267d069bf56a5078c99307e08a7280de7 |
|
25-Jan-2016 |
Elliott Hughes <enh@google.com> |
Move internal FILE flags macros to "local.h" from <stdio.h>. Bug: http://b/24807045 Change-Id: Ia42ec1907370b4af957ece94a856f71c7ee27cb7
|
2704bd13409a77237147f861c43796148326b2e3 |
|
21-Jan-2016 |
Elliott Hughes <enh@google.com> |
Simplify fseek/ftell. Another step towards _FILE_OFFSET_BITS=64 support. Bug: http://b/24807045 Change-Id: I00b83c81a7b108176c4d9437bc32611f73b7e967
|
fb994f4c040da968b7271860535f07daba182069 |
|
07-Nov-2015 |
Yabin Cui <yabinc@google.com> |
Add fileno_unlocked to support thread sanitizer. Bug: 25392375 Change-Id: If3f92a0e08a53f4b59e01397e8efa307d8572349
|
f0141dfab10a4b332769d52fa76631a64741297a |
|
12-Oct-2015 |
Elliott Hughes <enh@google.com> |
Make struct FILE opaque. Bug: http://b/24807045 Change-Id: I3cb4e436325a65bef3b203e3970e4d967101fcce
|
fed2659869ec41a93f655be8058568ddab419e01 |
|
18-Jul-2015 |
Daniel Micay <danielmicay@gmail.com> |
add fortified implementations of fread/fwrite A __size_mul_overflow utility is used to take advantage of the checked overflow intrinsics in Clang and GCC (>= 5). The fallback for older compilers is the optimized but less than ideal overflow checking pattern used in OpenBSD. Change-Id: Ibb0d4fd9b5acb67983e6a9f46844c2fd444f7e69
|
9b4f77f5cfc45a377b7de7195341a7769a722b74 |
|
24-Feb-2015 |
Yabin Cui <yabinc@google.com> |
Make tempnam/mktemp deprecated. Bug: 19340053 Change-Id: Ib02c65814ef97cd1758fd8142b73736cc8bc1700
|
913fcb274f353348a353aaabbe872b3b5924a6e7 |
|
18-Feb-2015 |
Yabin Cui <yabinc@google.com> |
Make gets() deprecated. gets is already deprecated in glibc. Others with __warnattr are not deprecated. Change-Id: I80a276d2b5964630218be47f1c94b146c0d31151
|
68dc20d41193831a94df04b994ff2f601dd38d10 |
|
07-Feb-2015 |
Elliott Hughes <enh@google.com> |
Implement _FILE_OFFSET_BITS (mostly). I still don't think we can make stdio's fseeko and ftello work, but we can have everything else, and very few programs use fseeko/ftello (and they can just refrain from using _FILE_OFFSET_BITS and be no worse off than they are today). Bug: 11865851 Change-Id: Ic3cb409aae6713f4b345de954bcc4241fcd969ec
|
784de4e50a1161d78757402c149d85368bd49c29 |
|
18-Feb-2015 |
Yabin Cui <yabinc@google.com> |
Revert "Move use of __warnattr to __deprecated." This reverts commit 4645c4f62df49d1ece5aabb7c9fa44ca34d30272. Change-Id: I6c1062d54a4e2c4f41ce7a403e4e7840e6339146
|
4645c4f62df49d1ece5aabb7c9fa44ca34d30272 |
|
17-Feb-2015 |
Yabin Cui <yabinc@google.com> |
Move use of __warnattr to __deprecated. clang don't support warning attribute. Replacing warning attriubte with deprecated attribute can achieve the same behavior whether compiled by gcc or clang. Bug: 19340053 Change-Id: I064432b81cf55212458edbc749eb72dc15a810fb
|
1ed337dbdfd419db0365f4457b96fe129d21db90 |
|
02-Feb-2015 |
Elliott Hughes <enh@google.com> |
Clean up SEEK_SET definitions. If we lose the #ifndef, the compiler will tell us if the definitions of SEEK_SET and friends ever get out of sync. Change-Id: I357cabec7c9cd451c604342344f210bba20fb6bc
|
168667c972a1e9ede5b64ad6cee0666e9b96d4d8 |
|
14-Nov-2014 |
Elliott Hughes <enh@google.com> |
Add non-macro stdin/stdout/stderr too. Various C and C++ standards explicitly say that stdin/stdout/stderr should be macros, but glibc makes them global variables too. This means it's possible to write code that uses those names as locals, but that code (toybox being an example) won't build on bionic. If we'd done this earlier, we could have hidden __sF for LP64, but it's too late now. Change-Id: I90cf8c73f52b66e1760b8fa2e135b9f9f9651230
|
55ee845b8ec0861d09197b32fbb5f2d34320155d |
|
07-Oct-2014 |
Dan Albert <danalbert@google.com> |
Inline helpers need to be exported unmangled. __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
|
658727e111ed6dee7be5239494f0764f7b1b02f8 |
|
07-Oct-2014 |
Dan Albert <danalbert@google.com> |
Inline helpers need to be exported unmangled. __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. Bug: 17784968 Change-Id: I7391a7a8999ee204eaf6abd14a3d5373ea419d5b
|
d87d401ab134996d1f25f5b63cefb48b5b5877c8 |
|
18-Aug-2014 |
Elliott Hughes <enh@google.com> |
Improve <sys/cdefs.h>. 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
|
2ad11a96a169eedbab5ecdfac23fcfb095df2140 |
|
20-Aug-2014 |
Elliott Hughes <enh@google.com> |
Fix some 32-bit-isms in <stdio.h>. (cherry-pick of 2d80400a9e8454038a3ec29959436184be0c4c65.) Bug: 17157793 Change-Id: I8290e240b92e5617f4c12c0eacad6e622e677b6a
|
6b841db2baa24ffcf2a4e5f975d1d07f1699b918 |
|
21-Aug-2014 |
Elliott Hughes <enh@google.com> |
Add POSIX-2008 fmemopen, open_memstream, and open_wmemstream. Bug: 17164505 Change-Id: I59e28a08ff8b6ab632230b11a5807cfd5278aeb5
|
2d80400a9e8454038a3ec29959436184be0c4c65 |
|
20-Aug-2014 |
Elliott Hughes <enh@google.com> |
Fix some 32-bit-isms in <stdio.h>. Bug: 17157793 Change-Id: I8290e240b92e5617f4c12c0eacad6e622e677b6a
|
2b021e10664c3938249eb18b48eeac253cbb3e20 |
|
20-Aug-2014 |
Elliott Hughes <enh@google.com> |
Add <stdio_ext.h> for elfutils. Bug: 17139679 Change-Id: I1605ac382dbb6f23b2d874dbb9769f3cde4a6a99
|
2cfb4e8e2e217ef0e4140dcbf9b3da809781158c |
|
18-Aug-2014 |
Elliott Hughes <enh@google.com> |
Improve <sys/cdefs.h>. 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. Change-Id: I3ef645c566b16a52217bc2e68c7d54b37c7c9522
|
df85f50b82efc96e348c3d88e67b7bcdb263921f |
|
06-Aug-2014 |
Elliott Hughes <enh@google.com> |
Add an obvious comment to <stdio.h> for fixincludes. We don't want GCC's fixincludes to touch our <stdio.h> because we want to support multiple platform versions with one toolchain. Give them a nice easy unambiguous string to look for. Bug: http://code.google.com/p/android/issues/detail?id=73728 Change-Id: I15cb9a2c9eb0a44b0965dc2139f224f2b6e68ea1
|
1242f7eb67c678922b55e2077d9cf2d5cdc85b15 |
|
30-Jul-2014 |
Elliott Hughes <enh@google.com> |
Remove declarations for things that don't exist. The <grp.h> ones prevent gdb from building out of the box. (cherry picked from commit f4c1a36a4500bc7f12e3065be3da4e8669ee011d) Change-Id: I6958f2f1731de8c03df20b383decd414b78100aa
|
f4c1a36a4500bc7f12e3065be3da4e8669ee011d |
|
30-Jul-2014 |
Elliott Hughes <enh@google.com> |
Remove declarations for things that don't exist. The <grp.h> ones prevent gdb from building out of the box. Change-Id: I0efbffad2215cfcd75b4d442dfc972444b51d97c
|
9635046e53e14ff44348853a9cacdffd444b35ae |
|
18-Jun-2014 |
Dan Albert <danalbert@google.com> |
Hide declaration of gets(3) for C11 and later. gets(3) was removed from C11. This reverts commit 1291680c2a0c23b2163198d27e00261ca206298b. Bug: 14500800 Change-Id: I5e5146bdbb80f2be818a17f287b112bab37d1f6d
|
1291680c2a0c23b2163198d27e00261ca206298b |
|
18-Jun-2014 |
Dan Albert <danalbert@google.com> |
Revert "Hide declaration of gets(3) for C11 and later." Breaks stlport. checkbuild lied to me? This reverts commit c0ce5908277a9bf18628946629dba4277e9a2281. Change-Id: I72fb21aba7eaea96a7c3208236fd03411527fa5e
|
c0ce5908277a9bf18628946629dba4277e9a2281 |
|
18-Jun-2014 |
Dan Albert <danalbert@google.com> |
Hide declaration of gets(3) for C11 and later. gets(3) was removed from C11. Change-Id: I4040a8a6c6d5d2a86878e8a80ca67964fbbb82a8
|
8e613cf342b369f7985135dbe11ebdbf8c736157 |
|
11-Jun-2014 |
Dan Albert <danalbert@google.com> |
Remove declaration for putw(3)/getw(3). These were both removed from POSIX 2004, and we don't define an implementation for getw(3). Keep the definition of put(3) on LP32 for binary compatibility. Bug: 13935372 Change-Id: Iba384b45093ac6d2d7c2d81f7980cd7701dd6f56
|
cd32219c5b3c402c99d3ad7d1997d42b5f04015e |
|
11-Jun-2014 |
Dan Albert <danalbert@google.com> |
Remove declarations related to cuserid(3). cuserid(3) was removed from POSIX 2004, and we don't have an implementation anyway. Bug: 13935372 Change-Id: I7ac7cde931ba802d0d5b917c22f5116618b21d2f
|
430cf1a6c32471ada4dad028acbfcc032da01fd3 |
|
03-Jun-2014 |
Elliott Hughes <enh@google.com> |
DO NOT MERGE fdprintf backward compatibility shim. Fixes LP64 build. Change-Id: Ic76005cd1f5a55344ea8ee3d070d25631d011037
|
4832a0961dc891ef69177c9cf0c3e3ba5dd7b69d |
|
30-May-2014 |
Elliott Hughes <enh@google.com> |
DO NOT MERGE Fix lmp-preview-dev after bionic merge. Other projects in lmp-preview-dev are out of date, and it's easier to patch bionic than to fix all of them. (cherry picked from commit a856c6f543c71f6778cdb9b39f6049ae8b2c4e53) Change-Id: Id8fbdf35eb55150579f85b7bdddb5d68d3012218
|
a856c6f543c71f6778cdb9b39f6049ae8b2c4e53 |
|
30-May-2014 |
Elliott Hughes <enh@google.com> |
DO NOT MERGE Fix lmp-preview-dev after bionic merge. Other projects in lmp-preview-dev are out of date, and it's easier to patch bionic than to fix all of them. Change-Id: Id55c3da7259ba0bb5e62462d5eca721d3716c07f
|
fcac8ff97f6b6cced6546e0096cadc1039b68b5e |
|
22-May-2014 |
Elliott Hughes <enh@google.com> |
Switch to POSIX dprintf/vdprintf. Bug: 11156955 Change-Id: I734bd02db514367ab119a48304aae9767958e367
|
7eb28b59c7665654255640e3fac4ccd5a9e1cbab |
|
19-Mar-2014 |
Nick Kralevich <nnk@google.com> |
FORTIFY_SOURCE: don't define s?printf macros if already defined Clang specific: Don't #define sprintf and snprintf macros if they are already defined. Change-Id: I30fc507d898377e1b8a57a65a147926229e0f9e2
|
f2cea021ab2c6d7d7feeb40cca098aa132605876 |
|
13-Mar-2014 |
Elliott Hughes <enh@google.com> |
Clean up <stdio.h> macros. Also neuter __isthreaded. We should come back to try to hide struct FILE's internals for LP64. Bug: 3453512 Bug: 3453550 Change-Id: I7e115329fb4579246a72fea367b9fc8cb6055d18
|
cd0609f4fcec9bdcb99a2127137c5570b18c499c |
|
19-Dec-2013 |
Elliott Hughes <enh@google.com> |
Allow GCC-built fortified code to run on a clang-built bionic. Even though code built with clang won't be fully fortified and won't contain calls to our various helpers, binaries built with GCC will. Change-Id: I389b2f1e22a3e89b22aadedc46397bf704f9ca79
|
c13fb75ceabb47f8292be206db80b93889fccf66 |
|
18-Dec-2013 |
Elliott Hughes <enh@google.com> |
Move bionic over to GCC's 'warning' attribute. This is a better solution than the old __warn_references because it's a compile-time rather than link-time warning, it doesn't rely on something that doesn't appear to be supported by gold (which is why you only used to see these warnings on mips builds), and the errors refer to the exact call site(s) rather than just telling you which object file contains a reference to the bad function. This is primarily so we can build bionic for aarch64; building libc.so caused these warnings to fire (because link time is the wrong time) and warnings are errors. Change-Id: I5df9281b2a9d98b164a9b11807ea9472c6faa9e3
|
f8fcfbc85a3ce3e195626b90736d3a484331494b |
|
22-Oct-2013 |
Elliott Hughes <enh@google.com> |
Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls. Modern architectures only get the *at(2) system calls. For example, aarch64 doesn't have open(2), and expects userspace to use openat(2) instead. Change-Id: I87b4ed79790cb8a80844f5544ac1a13fda26c7b5
|
6e38072addd556e3894284b5bd040ac64fffa72e |
|
11-Oct-2013 |
Stephen Hines <srhines@google.com> |
Wrap sprintf()/snprintf() macros to prevent expansion errors. Previously, FORTIFY_SOURCE used single macros to define these standard functions for use with clang. This can cause conflicts with other macros used to call these functions, particularly when those macros expand the number of arguments to the function. This change wraps our macro definitions, so that expansion properly takes place for programmer arguments first. Change-Id: I55929b1fd2a643b9d14a17631c4bcab3b0b712cf
|
c8ae8bd9418b79f4da85dc12a61ebd82146b7e51 |
|
27-Jun-2013 |
Nick Kralevich <nnk@google.com> |
stdio.h: enable vs?printf clang FORTIFY_SOURCE Enable FORTIFY_SOURCE protections under clang for the following functions: * vsprintf * vsnprintf and add unittests. Change-Id: I90f8a27f7b202c78b5dd8ebf53050bf9e33496f7
|
621b19dddbfba1cd98c01cb95ce312baa20e0e7c |
|
25-Jun-2013 |
Nick Kralevich <nnk@google.com> |
libc: enable FORTIFY_SOURCE snprintf under clang Change-Id: I8b8059782a720104722b0841994b38f873ed02aa
|
c6eb9854542c115fd9aa87731adcb1b5da57e8ac |
|
24-Jun-2013 |
Nick Kralevich <nnk@google.com> |
libc: enable sprintf FORTIFY_SOURCE under clang clang doesn't support __builtin_va_arg_pack(), so we have to use #define instead. Change-Id: I2ee75e6267d60cdf997fee6b9b0547bf68f062a1
|
16d1af167f8e36a9aa4a07ae77034ad519b00463 |
|
17-Jun-2013 |
Nick Kralevich <nnk@google.com> |
libc: add limited FORTIFY_SOURCE support for clang In 829c089f83ddee37203b52bcb294867a9ae7bdbc, we disabled all FORTIFY_SOURCE support when compiling under clang. At the time, we didn't have proper test cases, and couldn't easily create targeted clang tests. This change re-enables FORTIFY_SOURCE support under clang for a limited set of functions, where we have explicit unittests available. The functions are: * memcpy * memmove * strcpy * strncpy * strcat * strncat * memset * strlen (with modifications) * strchr (with modifications) * strrchr (with modifications) It may be possible, in the future, to enable other functions. However, I need to write unittests first. For strlen, strchr, and strrchr, clang unconditionally calls the fortified version of the relevant function. If it doesn't know the size of the buffer it's dealing with, it passes in ((size_t) -1), which is the largest possible size_t. I added two new clang specific unittest files, primarily copied from fortify?_test.cpp. I've also rebuild the entire system with these changes, and didn't observe any obvious problems. Change-Id: If12a15089bb0ffe93824b485290d05b14355fcaa
|
b24c0637d06fe0980b9e13a8d0c3e6f4dbda9cd5 |
|
18-Jun-2013 |
Nick Kralevich <nnk@google.com> |
libc: Introduce __errordecl() Define __errordecl and replace __attribute__((__error__("foo"))) with __errordecl. Make sure __errordecl is a no-op on clang, as it generates a compile time warning. Change-Id: Ifa1a2d3afd6881de9d479fc2adac6737871a2949
|
d04c18397946f87ac4495351537c31a3d67257da |
|
15-May-2013 |
Elliott Hughes <enh@google.com> |
Add more __restricts, clean up __format__ attributes. Change-Id: I7e2d270cc722d339d221eaea92747eaff3b51403
|
9020fd503c9eb073f70dbc239a212f8ece19359d |
|
30-Apr-2013 |
Nick Kralevich <nnk@google.com> |
libc: upgrade some libc functions to _FORTIFY_SOURCE=2 Upgrade the following functions: * vsnprintf * vsprintf * snprintf * fgets * strcpy * strcat * strncat * strlcpy * strlcat * strlen * strchr Change-Id: Icc036fc7f0bb317e05f7c051617887a1601271aa
|
78d6d9888c24c50f65d694dc8283afdcb58db84c |
|
30-Apr-2013 |
Nick Kralevich <nnk@google.com> |
libc: upgrade sprintf to _FORTIFY_SOURCE=2 Upgrade sprintf to fortify_source level 2, to catch additional security bugs. Change-Id: Ibc957d65e4cb96152de84b3745a04e00fa22659e
|
890c8ed6ef773160cd6840a92e0d469fe530871f |
|
22-Mar-2013 |
Elliott Hughes <enh@google.com> |
Fix builds where _FORTIFY_SOURCE is off. Also add a more intention-revealing guard so we don't have loads of places checking whether our inlining macro is defined. Change-Id: I168860cedcfc798b07a5145bc48a125700265e47
|
41b3179c9ef03ebb447cac7f5e8405dce399cb17 |
|
28-Jan-2013 |
Elliott Hughes <enh@google.com> |
Unit tests for formatting code, fix %%. Also fix <signal.h> and <stdio.h> so they don't cause compiler warnings. Change-Id: Ib1a746bf01de22d47dbd964de0e6af80a7c96303
|
3975cec694a0c9b42e3f7e671fcd678da92836c3 |
|
30-Nov-2012 |
Elliott Hughes <enh@google.com> |
Remove (near-)duplicate definitions of size_t and ssize_t. The near duplicates upset fussier compilers that insist that typedefs be exactly the same, but the fix isn't to make all copies identical... Change-Id: Icfdace41726f36ec33c9ae919dbb5a54d3529cc9
|
ce45fea03ddfd8d6d1900d6777a002dec98ea1e1 |
|
23-Oct-2012 |
Elliott Hughes <enh@google.com> |
Add missing BEGIN_DECLS/END_DECLS for FORTIFY_SOURCE stdio prototypes. Change-Id: I35ceb09fedf873c5e98e1e26efce5e4f00a17e74
|
7d56ccbfaac2b702e4be0f71038efb7f251ef637 |
|
02-Oct-2012 |
Elliott Hughes <enh@google.com> |
Always take GCC's definition of NULL. There's a (bad) definition of NULL in <linux/stddef.h>, and this definition of NULL, and the One True definition in the <stddef.h> provided by the compiler. This change at least kills one of the bad duplicates. Killing the <linux/stddef.h> one is harder, because it's in a generated file. Change-Id: Iea4ccb12d6758199f312ea9cd753b84322d5c471
|
0cc0d250fd3097e4c26b70cdeb5c47caac634069 |
|
02-Oct-2012 |
Elliott Hughes <enh@google.com> |
Remove useless #defines and incorrect claims from header files. The various __need_* macros were write-only. Change-Id: Id3cca34188e0801fdf93a038b22f2817226ad9c2
|
422b6ef92c1cca3cfd412621dc3db3b8609fa88c |
|
28-Sep-2012 |
Elliott Hughes <enh@google.com> |
Define ssize_t if necessary. Change-Id: I63801cc1f09be5e4ca20a6da7ec3366ba6441afd
|
eac9eb462ed6f7fcfb791e7a08b4011fcca47829 |
|
08-Sep-2012 |
Irina Tirdea <irina.tirdea@intel.com> |
Add getdelim(3) and getline(3) to bionic Some userspace programs (e.g. perf) need getline. Changes: () add getdelim.c, getline.c from NetBSD (http://netbsd.org/) under the NetBSD Foundation's (TNF) license ("2 clause" Berkeley-style license). () add stub for reentrant.h header that is needed by getdelim.c () add tests for getdelim(3) and getline(3). () update NOTICE file. Change-Id: I22ed82dd5904b9d7a3695535c04f502be3c27c5d Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
|
829c089f83ddee37203b52bcb294867a9ae7bdbc |
|
29-Aug-2012 |
Nick Kralevich <nnk@google.com> |
disable _FORTIFY_SOURCE under clang Clang and _FORTIFY_SOURCE are just plain incompatible with each other. First of all, clang doesn't understand the __attribute__((gnu_inline)) header. Second of all, Clang doesn't have support for __builtin_va_arg_pack() and __builtin_va_arg_pack_len() (see http://clang.llvm.org/docs/UsersManual.html#c_unimpl_gcc) Until we can resolve these issues, don't even try using _FORTIFY_SOURCE under clang. Change-Id: I81c2b8073bb3276fa9a4a6b93c427b641038356a
|
9b6cc223a36835c4367a036d4cfeff14d25bc742 |
|
13-Jul-2012 |
Nick Kralevich <nnk@google.com> |
FORTIFY_SOURCE: introduce __BIONIC_FORTIFY_UNKNOWN_SIZE macro Replace all occurances of "(size_t) -1" with a __BIONIC_FORTIFY_UNKNOWN_SIZE macro. Change-Id: I0b188f6cf31417d2dbef0e1bd759de3f9782873a
|
965dbc6405aa2c3170270cfc53a8d4416444fddb |
|
03-Jul-2012 |
Nick Kralevich <nnk@google.com> |
FORTIFY_SOURCE: add fgets support. Change-Id: I8c3410a90c71a3336c4ac8581618fa9330edf5e3
|
9b549c39c938f54680f282c21e6885f53254bfb0 |
|
13-Jun-2012 |
Nick Kralevich <nnk@google.com> |
FORTIFY_SOURCE: add sprintf / vsprintf support sprintf FORTIFY_SOURCE protections are not available on clang. Also add various __attribute__s to stdio functions. Change-Id: I936d1f9e55fe53a68885c4524b7b59e68fed218d
|
cffdf6693ffb50d2a1258d955a162bca83038f25 |
|
12-Jun-2012 |
Nick Kralevich <nnk@google.com> |
FORTIFY_SOURCE: add snprintf, vsnprintf Add _FORTIFY_SOURCE support for snprintf, vsnprintf At this time, we opt out of these protections for clang, as clang does not implement __builtin_va_arg_pack(). http://clang.llvm.org/docs/UsersManual.html#c_unimpl_gcc Change-Id: I73ebe5ec8dad1dca8898a76d6afb693a25f75375
|
f39a3fe67d7f1faa21a39ea8e1f57a6596c8cadb |
|
09-Feb-2012 |
Glenn Kasten <gkasten@google.com> |
Allow C++ to call fdprintf Change-Id: I1adb7b165ab9f62eaee4e7a9108e8b461350b347
|
f582340a6a48588aa50da17e1620e8f91b146941 |
|
12-Feb-2011 |
Kenny Root <kroot@google.com> |
Fix the handle locking in stdio Fix the handle locking in stdio to use flockfile/funlockfile internally when and where required. Macros in <stdio.h> are updated to automatically call the underlying functions when the process is threaded to obtain the necessary locking. A private mutex is added to protect __sglue, the internal list of FILE handles, and another to protect the one-time initialization. Some routines in libc that use getc() change to use getc_unlocked() as they're either protected by their own lock or aren't thread-safe routines anyway. Based on OpenBSD change by guenther@openbsd.org http://www.mail-archive.com/source-changes@cvs.openbsd.org/msg01015.html Bug: 3446659 Change-Id: Ie82116e358c541718d6709ec45ca6796be5a007b
|
bb5581ad6eec40041dab4e961149f7a8a3a83497 |
|
09-Oct-2010 |
David 'Digit' Turner <digit@google.com> |
libc: tag missing functions in system headers. This matches recent changes in the NDK header. We enclose missing functions in #if 0 .. #endif blocks with a clear "MISSING" in comments in order to locate them later. Change-Id: I87b3a62e777897e75c9243360fb0a82bcc53d9fb
|
50ace4fec5e8cb5afcbc656a4556fa528adfd760 |
|
17-Jun-2010 |
David 'Digit' Turner <digit@google.com> |
Remove compiler warnings when building Bionic. 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
|
fc10b24accd082fb33c8f92ff8b92481c22fe3dc |
|
14-Jan-2010 |
Colin Cross <ccross@android.com> |
Add implementation of fdprintf, clearenv, and stubs for ttyname_r, *usershell Change-Id: I5fe7e8b6ee5edbb49e707c3b6737a58563781fa3
|
c1202510b67f200b668d85ac0190db2b179b0c4d |
|
25-Nov-2009 |
Andy McFadden <fadden@android.com> |
Added a comment. The structs for stdin/stdout/stderr are formed with a static initializer that needs to be updated if something in FILE is changed.
|
1dc9e472e19acfe6dc7f41e429236e7eef7ceda1 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
|
1767f908af327fa388b1c66883760ad851267013 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
|
e5cc1f386b167b9f7bfdebc7219e89aa9b71e4b2 |
|
16-Jan-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //branches/cupcake/...@126645
|
4e468ed2eb86a2406e14f1eca82072ee501d05fd |
|
18-Dec-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Code drop from //branches/cupcake/...@124589
|
a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349 |
|
21-Oct-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Initial Contribution
|