0a3637d3eb2424d8e825ad1825f843450a888406 |
|
06-Jul-2016 |
Evgenii Stepanov <eugenis@google.com> |
Runtime support for CFI Control Flow Integrity support in bionic. General design: http://clang.llvm.org/docs/ControlFlowIntegrityDesign.html#shared-library-support This CL implements subsections "CFI Shadow" and "CFI_SlowPath" in the above document. Bug: 22033465 Test: bionic device tests Change-Id: I14dfea630de468eb5620e7f55f92b1397ba06217
|
5e071a18ce88d93fcffaebb9e0f62524ae504908 |
|
12-Aug-2016 |
Elliott Hughes <enh@google.com> |
dlerror returns char*, not const char*. http://pubs.opengroup.org/onlinepubs/9699919799/functions/dlerror.html: char *dlerror(void); ... The application shall not modify the string returned. Change-Id: I5e684bfd3930c39a2a30ea6fd005a5d5d3e5b181
|
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
|
baa2a973bd776a51bb05a8590ab05d86eea7b321 |
|
14-Aug-2015 |
Dan Albert <danalbert@google.com> |
Use clang's nullability instead of nonnull. http://clang.llvm.org/docs/AttributeReference.html#nonnull _Nonnull is similar to the nonnull attribute in that it will instruct compilers to warn the user if it can prove that a null argument is being passed. Unlike the nonnull attribute, this annotation indicated that a value *should not* be null, not that it *cannot* be null, or even that the behavior is undefined. The important distinction is that the optimizer will perform surprising optimizations like the following: void foo(void*) __attribute__(nonnull, 1); int bar(int* p) { foo(p); // The following null check will be elided because nonnull // attribute means that, since we call foo with p, p can be // assumed to not be null. Thus this will crash if we are called // with a null pointer. if (src != NULL) { return *p; } return 0; } int main() { return bar(NULL); } Note that by doing this we are no longer attaching any sort of attribute for GCC (GCC doesn't support attaching nonnull directly to a parameter, only to the function and naming the arguments positionally). This means we won't be getting a warning for this case from GCC any more. People that listen to warnings tend to use clang anyway, and we're quickly moving toward that as the default, so this seems to be an acceptable tradeoff. Change-Id: Ie05fe7cec2f19a082c1defb303f82bcf9241b88d
|
14adff1cfa06a3d4d3281a9bf7848b556d84c20d |
|
29-Apr-2016 |
Josh Gao <jmgao@google.com> |
Add versioning information to symbols. Bug: http://b/28178111 Change-Id: I46bf95accd819f4521afb1173d8badcc5e9df31c
|
9cf99cbad89c8495828788ce693a99ced434f66f |
|
11-Dec-2015 |
Dimitry Ivanov <dimitry@google.com> |
linker: add dlvsym(3) This changes implements dlvsym - dlsym for versioned symbols. Bug: http://b/22865643 Change-Id: Ic90a60d512104261a1416c43f9100f0d88e3b46f
|
7ca96a075b778f1fa2ad265350879238cbcb4d09 |
|
04-Nov-2014 |
Dmitriy Ivanov <dimitry@google.com> |
Revert "Revert "Add RTLD_NODELETE flag support"" This reverts commit 69c5d108a5cb44167a04d42ffdad6a39648ed235.
|
69c5d108a5cb44167a04d42ffdad6a39648ed235 |
|
04-Nov-2014 |
Dmitriy Ivanov <dimitry@google.com> |
Revert "Add RTLD_NODELETE flag support" This reverts commit c87f65d2cd0690d81665f8b241c1d763f72b6f80. Bug: 18222321 Bug: 18211780 Change-Id: I00252e26a28a41ab9f1e2dd3b32f0f80d86297f1
|
c87f65d2cd0690d81665f8b241c1d763f72b6f80 |
|
20-May-2014 |
Dmitriy Ivanov <dimitry@google.com> |
Add RTLD_NODELETE flag support Bug: 18186310 Bug: https://code.google.com/p/android/issues/detail?id=64069 (cherry picked from commit 1b20dafdbe65e43b9f4c95057e8482380833ea91) Change-Id: Ic02eec22a7c322ece65eb40730a3404f611526b1
|
1b20dafdbe65e43b9f4c95057e8482380833ea91 |
|
20-May-2014 |
Dmitriy Ivanov <dimitry@google.com> |
Add RTLD_NODELETE flag support Bug: https://code.google.com/p/android/issues/detail?id=64069 Change-Id: Ie5f90482feae86391172be4b32d6cb7d76f446fb
|
b648a8a57ee42533a5bf127225a252f73ca2cbbc |
|
20-May-2014 |
Dmitriy Ivanov <dimitry@google.com> |
Add RTLD_NOLOAD support and some related changes. * Aligned RTLD_ values with glibc for lp64 * dlopen supports RTLD_NOLOAD flag * soinfo_unload calls find_library(.., RTLD_NOLOAD) instead of naive find_loaded_library_by_name() * dlopen changed to add child to caller soinfo instead of somain. Bug: https://code.google.com/p/android/issues/detail?id=64069 Change-Id: I1a65f2c34f3e0edc6d2c41a2e408b58195feb640
|
bda5da074eab4bdf374e1f4a19d480c62c72f5ff |
|
28-Sep-2011 |
Mathias Agopian <mathias@google.com> |
fix prototype of dladdr this breaks C++ source code in particular. Change-Id: Ie06b5d31d23b5455e6950c470adc64dd5e7784df
|
e2a8b1fd19fb3a8ead2ba28ddba27be19fa978b5 |
|
31-Dec-2009 |
Matt Fischer <matt.fischer@garmin.com> |
Added support for dladdr() dladdr() is a GNU extension function, which allows the caller to retrieve symbol information for a specified memory address. It is useful for things like generating backtrace information at runtime. Change-Id: I3a1def1a6c9c666d93e1e97b7d260dfa5b9b79a9
|
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
|
a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349 |
|
21-Oct-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Initial Contribution
|