Commit Graph

288 Commits

Author SHA1 Message Date
Alexander Potapenko f519564d7c Make compiler-rt/trunk/lib/asan compileable with Visual Studio 2008 on Windows.
Patch by Timur Iskhodzhanov (timurrrr@google.com)

To test:
$ cl /c *.c*
in the asan directory.

The code fails to link if you omit the "/c" part but that's one of the
next steps,
as well as a few TODO's I've put into the Windows-specific code.

llvm-svn: 149130
2012-01-27 15:15:04 +00:00
Evgeniy Stepanov 84c44a8b8b EHABI-based stack trace on ARM.
The change removes the unused FLAG_fast_unwind, and forces EHABI-based unwind
on ARM, and fast (FP-based) unwind everywhere else.

llvm-svn: 148468
2012-01-19 11:34:18 +00:00
Kostya Serebryany 86d4492627 [asan] fix ReadFileToBuffer to correctly handle files from /proc/ (asan issue 27)
llvm-svn: 148311
2012-01-17 18:00:07 +00:00
Alexander Potapenko 553c208d22 This patch moves the code reading /proc/self/environ into AsanGetEnv
in asan_linux.cc, because /proc is unavailable on Mac.
Instead the Mac version of AsanGetEnv iterates over the array of
environment variables obtained from _NSGetEnviron()

llvm-svn: 148114
2012-01-13 12:59:48 +00:00
Evgeniy Stepanov 837fe5bcc9 Call asan_init from .preinit_array.
Protected by an #ifdef, disabled by default.

llvm-svn: 147932
2012-01-11 08:17:19 +00:00
Kostya Serebryany 0c8fa7b8ed [asan] remove OS-dependent includes from asan_interceptors.h
llvm-svn: 147916
2012-01-11 02:32:40 +00:00
Kostya Serebryany edb4a8a128 [asan] don't include unistd.h in the headers
llvm-svn: 147811
2012-01-09 23:11:26 +00:00
Kostya Serebryany 65518014e2 [asan] don't use strstr/strncat from libc, use our own versions instead
llvm-svn: 147807
2012-01-09 22:20:49 +00:00
Kostya Serebryany 5be458ccfd [asan] refactoring: move some common linux/mac code to asan_posix.cc
llvm-svn: 147788
2012-01-09 19:18:27 +00:00
Kostya Serebryany 9fd01e5ea5 [asan] refactoring: move all interceptors to a single file
llvm-svn: 147784
2012-01-09 18:53:15 +00:00
Kostya Serebryany 3f4b9bb4a0 [asan] do not use new/delete for the internal thread structure
llvm-svn: 147674
2012-01-06 19:44:11 +00:00
Kostya Serebryany 25d6c1b3c3 [asan] move more code into OS-specific files
llvm-svn: 147671
2012-01-06 19:11:09 +00:00
Kostya Serebryany adebf0caf5 [asan] cleanup: remove the SIGILL-related code (rt part)
llvm-svn: 147665
2012-01-06 18:02:04 +00:00
Kostya Serebryany 2b08718bba [asan] move more stuff to OS-specific files
llvm-svn: 147647
2012-01-06 02:12:25 +00:00
Kostya Serebryany cd271f5440 [asan] implement our own /proc/self/maps reader and use it on linux instead of sysinfo.h
llvm-svn: 147581
2012-01-05 00:44:33 +00:00
Kostya Serebryany d2d043be45 [asan] force the __asan_unregister_globals to reside in the runtime library
llvm-svn: 147329
2011-12-28 23:35:46 +00:00
Kostya Serebryany a772096156 [asan] refactoring: don't #include <sys/mman.h> in non-os-specific files
llvm-svn: 147328
2011-12-28 23:28:54 +00:00
Kostya Serebryany 6c4bd806fa [asan] use custom libc-free getenv; a bit of refactoring around mmap calls
llvm-svn: 147326
2011-12-28 22:58:01 +00:00
Kostya Serebryany 2b87e403c4 [asan] no ucontext on Android. patch by eugeni.stepanov@gmail.com
llvm-svn: 147320
2011-12-28 20:22:21 +00:00
Kostya Serebryany 76eca5e53a [asan] enable memset/memcpy/memmove interceptors in asan-rt (in addition to those in the compiler module)
llvm-svn: 147319
2011-12-28 19:55:30 +00:00
Kostya Serebryany 46c70d33d7 [asan] make sure __asan_report_* functions are not inlined (so that they are not optimized away and are kept in the resulting library). Patch by glider@google.com
llvm-svn: 147302
2011-12-28 00:59:39 +00:00
Kostya Serebryany dd1386f882 new() has slightly different signature on Android. This patch adds the
llvm-svn: 147300
2011-12-27 23:11:09 +00:00
Kostya Serebryany 6d37656c1a [asan] revert r146529: we do need to build asan-rt as a shared library. Will need to find a different way to modify preinit_array
llvm-svn: 146703
2011-12-15 23:08:00 +00:00
Kostya Serebryany 7fb33a3d40 [asan] poison the internal asan heap memory, just in case. Change Printf to Report when debugging globals.
llvm-svn: 146663
2011-12-15 17:41:30 +00:00
Kostya Serebryany 9bd5208965 [asan] insert __asan_init into ".preinit_array" section. Linux-only.
llvm-svn: 146529
2011-12-14 00:19:03 +00:00
Kostya Serebryany 72fde3727e [asan] make use-after-return mode more robust: allow to call instrumented functions while reporting an error
llvm-svn: 146231
2011-12-09 01:49:31 +00:00
Kostya Serebryany b50a539eba [asan] move build-time config options from makefile to source (otherwise we need config options in all makefiles)
llvm-svn: 146161
2011-12-08 18:30:42 +00:00
Kostya Serebryany f0d799a6bc [asan] fix the error message for 16-byte accesses (it previously printed 'unknown-crash')
llvm-svn: 146075
2011-12-07 21:30:20 +00:00
Kostya Serebryany ca207f0473 [asan] minor cleanup
llvm-svn: 145966
2011-12-06 21:10:15 +00:00
Kostya Serebryany 49a182fa12 [asan] always collect malloc statstics (removed FLAG_stats)
llvm-svn: 145838
2011-12-05 19:17:53 +00:00
Kostya Serebryany 93927f9e01 [asan] don't require __cxa_throw to be present in the process. This is the last dependency on libstdc++
llvm-svn: 145821
2011-12-05 17:56:32 +00:00
Kostya Serebryany e4bada2c94 [asan] get rid of std::map. No STL and almost no libstdc++ left.
llvm-svn: 145706
2011-12-02 21:02:20 +00:00
Kostya Serebryany 2d27cdf621 [asan] minimize the use of STL. One bit is still left.
llvm-svn: 145691
2011-12-02 18:42:04 +00:00
Daniel Dunbar cf7fb02388 build/asan: Better fix for ASAN i386 build on Darwin, this causes us to see the
non-standard struct names.

llvm-svn: 145658
2011-12-02 00:52:55 +00:00
Daniel Dunbar 8a5fd211ab build/asan: Fix ASAN build for i386, for reasons I don't really understand we
get the DARWIN_UNIX03 definition on x86_64 but not on i386.

llvm-svn: 145657
2011-12-02 00:45:48 +00:00
Kostya Serebryany 5dfa4da0b9 [asan] flatten the asan-rt build slightly
llvm-svn: 145631
2011-12-01 21:40:52 +00:00
Kostya Serebryany 15dd3f2500 Refactor shadow poisoning done by asan-rt, no funtionality changes; patch by samsonov@google.com
llvm-svn: 145505
2011-11-30 18:50:23 +00:00
Kostya Serebryany 019b76f5fd AddressSanitizer run-time library. Not yet integrated with the compiler-rt build system, but can be built using the old makefile. See details in README.txt
llvm-svn: 145463
2011-11-30 01:07:02 +00:00