Kostya Serebryany
5767f0f113
[asan] workaround for bug http://llvm.org/bugs/show_bug.cgi?id=11763 . Do not bark on memcpy(a, a, size).
...
llvm-svn: 148318
2012-01-17 18:43:52 +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
Alexey Samsonov
67d508d083
Revert commit 148304
...
llvm-svn: 148305
2012-01-17 14:01:15 +00:00
Alexey Samsonov
1e310295d0
AddressSanitizer: from this patch, ASan allocator returns false for __asan_get_ownership(NULL) and produce error reports for malloc_usable_size(NULL) and __asan_get_allocated_size(NULL)
...
llvm-svn: 148304
2012-01-17 13:31:54 +00:00
Alexander Potapenko
2b2e0721d7
Define the bounds of the branch allocator memory space for 32-bit apps.
...
llvm-svn: 148303
2012-01-17 09:38:54 +00:00
Alexey Samsonov
209c514a1d
AddressSanitizer: add support for malloc_usable_size() function
...
llvm-svn: 148287
2012-01-17 06:39:10 +00:00
Alexey Samsonov
2d3a67b73b
AddressSanitizer: create AsanThreadSummary together with AsanThread (in parent thread)
...
llvm-svn: 148286
2012-01-17 06:35:31 +00:00
Evgeniy Stepanov
1b65b17bf5
[asan] Implement GetObjectNameAndOffset on ARM.
...
llvm-svn: 148236
2012-01-16 12:45:07 +00:00
Alexey Samsonov
50bf956f29
AddressSanitizer: fix recently introduced lint errors and broken test on Mac.
...
llvm-svn: 148235
2012-01-16 12:38:09 +00:00
Evgeniy Stepanov
2227207c83
Disable posix_memalign test on Android.
...
llvm-svn: 148234
2012-01-16 12:19:51 +00:00
Alexander Potapenko
bd53f597de
This patch adds two methods, __asan_allocate_island and __asan_deallocate_island
...
and switches our interceptors to using them instead of the default
vm_allocate-based approach used by mach_override_ptr.
To simplify the code, a fixed memory mapping is used for the allocation pool --
note that we can't mmap an arbitrary chunk of memory, because the shadow memory hasn't been mapped yet
(for the reasons discussed in http://code.google.com/p/address-sanitizer/issues/detail?id=24 , we cannot map the shadow earlier)
The patch drops the program startup time from several second to half a second,
which speeds up the execution of ASan tests noticeably.
Because of the virtual memory size occupied by the programs it's hard
to speed up the shutdown time, which would've also helped the tests.
llvm-svn: 148116
2012-01-13 16:13:58 +00:00
Alexander Potapenko
9301db4baa
Add __asan_mach_override_ptr_custom, which allows to inject a custom memory allocator into mach_override_ptr().
...
llvm-svn: 148115
2012-01-13 15:31:37 +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
Anton Korobeynikov
48cfd55c5d
Add some basic mingw support.
...
Patch by Ruben Van Boxem!
llvm-svn: 148048
2012-01-12 21:13: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
Alexey Samsonov
5d5fa5115a
Test commit. Minor cleanup in AsanThread
...
llvm-svn: 147930
2012-01-11 08:07:51 +00:00
Kostya Serebryany
41cdb8614c
[asan] remove OS-dependent headers from asan_internal.h
...
llvm-svn: 147919
2012-01-11 02:39:16 +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
1dd51b53b2
[asan] move TSD code into asan_posix.cc
...
llvm-svn: 147913
2012-01-11 02:21:06 +00:00
Kostya Serebryany
332923be32
[asan] get rid of the scary TSD destructor code. Now, we store the leaky AsanThreadSummary in TSD and never remove it from there.
...
llvm-svn: 147910
2012-01-11 02:03:16 +00:00
Kostya Serebryany
258d7b4182
[asan] hopefully fix the build on MacOS 10.6 (the code did work on 10.7, where I tested it)
...
llvm-svn: 147896
2012-01-10 23:36:59 +00:00
Kostya Serebryany
a82f0d4950
[asan] move OS-dependent code away from asan_lock.h
...
llvm-svn: 147878
2012-01-10 21:24: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
3a55cfacf1
[asan] temporary reinstate string.h/strings.h. Removal of those caused a Mac build failulre which I failed to observe before the commit
...
llvm-svn: 147810
2012-01-09 22:45:05 +00:00
Kostya Serebryany
d9cb2f13b3
[asan] don't include string.h and strings.h
...
llvm-svn: 147809
2012-01-09 22:36:51 +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
3ab81d1f26
[asan] fix mac build once more
...
llvm-svn: 147796
2012-01-09 19:50:06 +00:00
Kostya Serebryany
3e559e87a4
[asan]: fix typo from previous commit
...
llvm-svn: 147793
2012-01-09 19:41:15 +00:00
Kostya Serebryany
ba41e8d2c5
[asan]: fix mac build
...
llvm-svn: 147792
2012-01-09 19:35:11 +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
Rafael Espindola
a0fbaeebe6
Fix build on minix. Patch by Ben Gras!
...
llvm-svn: 147632
2012-01-05 23:59:42 +00:00
Kostya Serebryany
3b7fb102c4
[asan] use dl_iterate_phdr for pre-symbolization on linux instead of parsing /proc/self/maps
...
llvm-svn: 147628
2012-01-05 23:50:34 +00:00
Kostya Serebryany
78d87d3b4b
[asan] move {linux,mac}-specific code from asan_thread.cc to asan_{linux,mac}.cc; also add asan_procmaps.h which I forgot to add on previous commit.
...
llvm-svn: 147586
2012-01-05 01:07:27 +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
cc1d7893d6
[asan] remove objdump-based tests in favour of much simpler LLVM-ish tests
...
llvm-svn: 147514
2012-01-04 02:08:46 +00:00
Bob Wilson
bf9a62dcad
Fix missing include of int_lib.h and ppc ifdef for FreeBSD.
...
Patch provided by Ed Schouten!
llvm-svn: 147458
2012-01-03 18:59:25 +00:00
NAKAMURA Takumi
e9d3d21988
Happy new year 2012!
...
llvm-svn: 147395
2012-01-01 08:16:56 +00:00
Kostya Serebryany
10a6b304e1
[asan] build asan-rt with -funwind-tables
...
llvm-svn: 147341
2011-12-29 17:29:20 +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
5bdf7dcb2d
[asan] missing PTHREAD_DESTRUCTOR_ITERATIONS on Android. patch by eugeni.stepanov@gmail.com
...
llvm-svn: 147322
2011-12-28 20:47:21 +00:00
Kostya Serebryany
bab78de8a3
[asan] discover main thread stack limits without pthread. patch by eugeni.stepanov@gmail.com
...
llvm-svn: 147321
2011-12-28 20:34:30 +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
e4a84c4f1f
[asan] better message for parameter overlap bugs
...
llvm-svn: 147317
2011-12-28 19:24:31 +00:00
Kostya Serebryany
50bc2a71b2
[asan] interceptor for strcat. Patch by samsonov@google.com
...
llvm-svn: 147316
2011-12-28 19:08:49 +00:00
Kostya Serebryany
6579e355c0
[asan] interceptor for memcmp. Patch by samsonov@google.com
...
llvm-svn: 147315
2011-12-28 18:56:42 +00:00
Kostya Serebryany
809632e28e
[asan] interceptors for strcasecmp and strncasecmp. patch by samsonov@google.com
...
llvm-svn: 147304
2011-12-28 02:24:50 +00:00
Kostya Serebryany
8b981c2564
The code instrumented with ASan may have its own instance of the
...
mach_override library.
In this case chances are that functions from it will be called from
mach_override_ptr() during ASan initialization.
This may lead to crashes (if those functions are instrumented) or
incorrect behavior (if the implementations differ).
The attached patch renames mach_override_ptr() into
__asan_mach_override_ptr() and makes the rest of the mach_override
internals hidden.
The corresponding AddressSanitizer bug is
http://code.google.com/p/address-sanitizer/issues/detail?id=22
Patch by glider@google.com
llvm-svn: 147303
2011-12-28 01:08:14 +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
5469986da0
[asan] remove the test for cfree. 'man cfree' says: 'This function should never be used.' and this function is not found on many OSes we support.
...
llvm-svn: 147301
2011-12-27 23:42:55 +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
db32f967b9
[asan] rely on __has_feature(address_sanitizer) instead of the ADDRESS_SANITIZER macro
...
llvm-svn: 147297
2011-12-27 21:57:12 +00:00
Kostya Serebryany
1b82c281f3
[asan] make sure frame pointers are not omitted when running asan output tests
...
llvm-svn: 147293
2011-12-27 19:52:54 +00:00
Kostya Serebryany
6bb2f1d5b5
Recently the GCD tests started failing because of the invalid size of
...
FakeStack on the worker threads.
This patch moves the AsanThread initialization into a separate
procedure that's called when AsanThread objects are called for worker
threads.
Patch by glider@google.com
llvm-svn: 146752
2011-12-16 19:13:35 +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
7ce9686921
[asan] added a test to check that a global-buffer-overflow mentioned the module name; revert incorrect change in the test runner
...
llvm-svn: 146701
2011-12-15 22:57:32 +00:00
Kostya Serebryany
9366d42e91
[asan] fix a bug (issue 19) where dlclose and the following mmap caused a false positive. run-time part.
...
llvm-svn: 146687
2011-12-15 21:55:34 +00:00
Kostya Serebryany
e8a7d2aef8
[asan] regression test for asan issue 19, currently fails.
...
llvm-svn: 146681
2011-12-15 20:38:14 +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
e85da73553
[asan] fix the test runner to detect build breakages; add a test for -pie
...
llvm-svn: 146528
2011-12-14 00:05:22 +00:00
Kostya Serebryany
1d337a5e06
[asan] fix some more format warnings in sysinfo/sysinfo.cc
...
llvm-svn: 146526
2011-12-13 23:34:59 +00:00
Kostya Serebryany
d47a91ad2a
[asan] canonicalise the output for double-free and wrong-free. fixes asan issue 18
...
llvm-svn: 146501
2011-12-13 19:16:36 +00:00
Kostya Serebryany
0e5704607b
build compiler-rt with -fPIC, otherwise the run-time libs will not link with -pie, at least on linux
...
llvm-svn: 146499
2011-12-13 18:58:47 +00:00
Kostya Serebryany
0698b852ed
[asan] fix asan-rt interceptors on Snow Leopard. Patch by glider@google.com
...
llvm-svn: 146263
2011-12-09 18:18:54 +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
7487a0ae1f
[asan] fix output test to not require debug symbols in asan run-time
...
llvm-svn: 146212
2011-12-09 00:18:21 +00:00
Kostya Serebryany
7c01c1af19
[asan] better test for use-after-return mode
...
llvm-svn: 146203
2011-12-08 23:30:48 +00:00
Daniel Dunbar
6e09995159
SDK/linux: Fix braindead pasto, caught by Matt Beaumont-Gay.
...
llvm-svn: 146188
2011-12-08 21:50:03 +00:00
Kostya Serebryany
9b5673cf5a
[asan] fresh version of mach_override; added mach_override/README.txt. Patch by glider@google.com
...
llvm-svn: 146166
2011-12-08 19:14:07 +00:00
Kostya Serebryany
9752158954
[asan] update the soon-to-be-depricated asan makefile to use the new path for asan-rt (affects only linux)
...
llvm-svn: 146162
2011-12-08 18:46:33 +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
Daniel Dunbar
a8ad183a4c
platform/clang_linux: Switch builtin and profile libraries to build using the
...
stub SDK.
- This allows us to build both the m32 and m64 variants without worrying about
whether or not the user has the headers for the alternate arch installed.
llvm-svn: 146132
2011-12-08 02:39:54 +00:00
Daniel Dunbar
8142a9f02b
SDKs: Sketch an initial stub SDK for Linux, I believe this suffices for building
...
the main compiler-rt and profile modules, at least on x86.
llvm-svn: 146131
2011-12-08 02:39:23 +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
Daniel Dunbar
6d4db897a9
www: Add some more notes to compiler-rt web page.
...
llvm-svn: 146047
2011-12-07 18:43:12 +00:00
Kostya Serebryany
4236c97ccd
build all C++ files in compiler-rt with -fno-exceptions
...
llvm-svn: 145967
2011-12-06 21:11:50 +00:00
Kostya Serebryany
ca207f0473
[asan] minor cleanup
...
llvm-svn: 145966
2011-12-06 21:10:15 +00:00
Kostya Serebryany
8b815e1a08
[asan] GCD tests on Mac: prevent optimization and enable. Patch by glider@google.com
...
llvm-svn: 145953
2011-12-06 19:10:48 +00:00
Daniel Dunbar
1ad92487ff
platform/clang_linux: Add profile and asan libs on x86.
...
llvm-svn: 145950
2011-12-06 18:25:42 +00:00
Kostya Serebryany
8b277533b6
[asan] remove format warnings in sysinfo/sysinfo.cc
...
llvm-svn: 145886
2011-12-06 01:08:31 +00:00
Kostya Serebryany
ab7940f6e1
[asan]: test a pure C file with -faddress-sanitizer; lint fixes
...
llvm-svn: 145848
2011-12-05 20:44:30 +00:00
Kostya Serebryany
0e069e2aa9
[asan] add the test for bug 11468
...
llvm-svn: 145839
2011-12-05 19:20:57 +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
92ebcadfe4
[asan] cleanup memset/memmove/memcpy interceptors and enable them on Mac. Patch by samsonov@google.com
...
llvm-svn: 145826
2011-12-05 18:56:29 +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
551a1739b8
[asan] get rid of some more dependency on libstdc++
...
llvm-svn: 145743
2011-12-03 02:23:25 +00:00
Kostya Serebryany
26c5df4733
[asan] micro-benchmark for use-after-return fake stack
...
llvm-svn: 145739
2011-12-03 01:44:48 +00:00
Kostya Serebryany
b89f2a6e78
[asan] put back -O2 which was lost quite some time ago and caused noticeable perf drop in malloc-intensive apps. doh.
...
llvm-svn: 145723
2011-12-02 23:04:12 +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
c5be44aaa2
[asan] quick fix for mac build, second attempt. Sorry for spam.
...
llvm-svn: 145694
2011-12-02 18:52:35 +00:00
Kostya Serebryany
196cd6af90
[asan] quick fix for mac build
...
llvm-svn: 145692
2011-12-02 18:48: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
2003d39f7c
build: Add ModuleName per-subdir variable as a way to organize the different
...
sets of functions/objects into high level groups. Currently we have "builtins"
(the main compiler-rt code), "profile", and "asan".
- Use this to define CommonFunctions and ArchFunctions to only reference the
builtins functions.
llvm-svn: 145674
2011-12-02 02:42:07 +00:00
Daniel Dunbar
4e3a11ba57
lib/asan: Fix possible type mismatches.
...
llvm-svn: 145664
2011-12-02 01:36:38 +00:00
Daniel Dunbar
9c665e36d4
lib/asan: Attempt to ensure __WORDSIZE gets defined, it is not always set by
...
Darwin's stdint.h for example.
llvm-svn: 145663
2011-12-02 01:32:27 +00:00
Kostya Serebryany
70e163b507
add/update LICENSE.TXT files for the third_party code used by asan
...
llvm-svn: 145659
2011-12-02 01:12:36 +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
Daniel Dunbar
5cd49adb2d
platform/clang_darwin: Add asan runtime library configuration.
...
llvm-svn: 145649
2011-12-01 23:35:59 +00:00
Daniel Dunbar
12024d00a7
asan: Fill in integration with compiler-rt/make build.
...
llvm-svn: 145648
2011-12-01 23:35:56 +00:00
Daniel Dunbar
5dc7770bf7
asan: Suppress a -Wbitwise-op-parentheses.
...
llvm-svn: 145647
2011-12-01 23:35:51 +00:00
Daniel Dunbar
6da8946202
build/make: Add rule for .cc files.
...
llvm-svn: 145646
2011-12-01 23:35:49 +00:00
Daniel Dunbar
fc4a4a3cbc
asan: #if 0 out some unused functions (we build with -Werror).
...
llvm-svn: 145645
2011-12-01 23:35:47 +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
f318e29102
test asan at -O0
...
llvm-svn: 145532
2011-11-30 22:27:30 +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
9d1eee9e2a
fix asan-rt build on Mac. Patch by glider@google.com
...
llvm-svn: 145496
2011-11-30 17:33:13 +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
Daniel Dunbar
e2ed5fb636
lib/int_util: My refactoring to allow shared utility code had a fatal flaw when
...
multiple .a files would end up with duplicate strong definitions. This could
cause link failures in certain scenarios when both definitions got loaded.
- The best solution I see for this (aside from not factoring out the utility
code) is to mark the definitions weak. Better solutions appreciated!
llvm-svn: 145427
2011-11-29 19:44:14 +00:00
Daniel Dunbar
2aa900834e
build: Sketch a Clang/Linux platform config.
...
- Currently just tries to build a full library for i386/x86_64.
- This is made substantially more complicated by the lack of a generalized way
to check for/invoke cross compilers. For now, we just try and make it work
for the matched arch, and rely on the host CC being Clang.
llvm-svn: 145322
2011-11-28 23:50:13 +00:00
Daniel Dunbar
f5e4b33f8e
platform/clang_darwin: Fix a refacto and commento.
...
llvm-svn: 144913
2011-11-17 17:47:22 +00:00
Daniel Dunbar
6a76c5eec4
platform/clang_darwin: Add configs for profiling support.
...
llvm-svn: 144866
2011-11-17 00:12:12 +00:00
Daniel Dunbar
fb16114782
lib: Import GCDA profiling support from LLVM.
...
- I'm in the process of moving this here but it will live in both places until
the ancilliary support is ready.
- Currently unused.
llvm-svn: 144865
2011-11-17 00:12:10 +00:00
Daniel Dunbar
35923d7864
platform/clang_darwin: Switch over to use stub Darwin SDK.
...
llvm-svn: 144845
2011-11-16 22:41:03 +00:00
Daniel Dunbar
56f42279c6
platform/clang_darwin: Tweak deployment arg variable names.
...
llvm-svn: 144844
2011-11-16 22:41:00 +00:00
Daniel Dunbar
e9da222f2f
build/SDKs: Sketch a minimal stub SDK for Darwin.
...
- Motivation is explained in the README, but basically it is convenient to be
able to build compiler-rt free standing. Since our external dependencies are
so small, we can achieve this relatively easily by just stubbing out the
declarations of the external dependencies.
- This is in no way, shape, or form intended to be complete, it is just the
minimal stubs necessary to support the stuff we use.
llvm-svn: 144843
2011-11-16 22:40:57 +00:00
Daniel Dunbar
82f9c199e8
lib/int_math: Some versions of GCC don't provide __builtin_isfinite. Support
...
them.
llvm-svn: 144810
2011-11-16 18:56:55 +00:00
Daniel Dunbar
960d55e9ff
lib/ppc: Fix a refacto.
...
llvm-svn: 144809
2011-11-16 18:56:53 +00:00
Daniel Dunbar
2139c52d33
lib: Finish int_math.h definitions using compiler builtins and eliminate
...
implementation use of <math.h>.
llvm-svn: 144786
2011-11-16 07:33:06 +00:00
Daniel Dunbar
ddf1890a5e
lib: Starting thinning out the dependency on math.h by using compiler builtins
...
where available.
llvm-svn: 144785
2011-11-16 07:33:00 +00:00
Daniel Dunbar
b151274d3d
lib: Remove uses of complex.h which does not appear to be required.
...
llvm-svn: 144754
2011-11-16 01:19:32 +00:00
Daniel Dunbar
490a270f18
lib/gcc_personality_v0: Remove an unnecessary include.
...
llvm-svn: 144753
2011-11-16 01:19:29 +00:00
Daniel Dunbar
5ed39314ce
lib: Eliminate direct include of stdlib.h from files that used to (potentially)
...
need it for compilerrt_abort().
llvm-svn: 144752
2011-11-16 01:19:26 +00:00
Daniel Dunbar
2b88e03404
lib: Add support for library wide utility functions, and make compilerrt_abort()
...
a real boy.
- The utility module needs to be included into every produced library, because
we don't have enough dependency tracking to know exactly which other modules
might require the utilities.
llvm-svn: 144751
2011-11-16 01:19:19 +00:00
Daniel Dunbar
2f9c1404dd
lib/{ppc,x86_64}: Fixup a number of files to include int_lib.h instead of
...
directly including system headers.
llvm-svn: 144750
2011-11-16 01:19:16 +00:00
Daniel Dunbar
7557f0248a
lib: Remove math.h from int_lib.h, which doesn't appear to be required.
...
llvm-svn: 144749
2011-11-16 01:19:12 +00:00
Daniel Dunbar
2c523a6ff0
build/darwin_bni: Remove consistency check I added, I forgot we always load
...
every platform (even if it isn't being built).
llvm-svn: 144740
2011-11-16 00:20:40 +00:00
Daniel Dunbar
7205b23e79
lib: Include float.h in int_lib.h, and eliminate duplicate includes from a number of source files.
...
llvm-svn: 144739
2011-11-16 00:20:36 +00:00
Daniel Dunbar
6328e7b1b3
build/darwin_bni: Add a consistency check.
...
llvm-svn: 144738
2011-11-16 00:20:29 +00:00
Daniel Dunbar
fd1fb8515f
lib: Include stdbool.h in int_lib.h, and eliminate duplicate includes from a number of source files.
...
llvm-svn: 144671
2011-11-15 19:02:22 +00:00
Daniel Dunbar
cc675f410e
lib: Rename endianness.h to int_endianness.h (for consistency) and tidy up a bit.
...
llvm-svn: 144669
2011-11-15 18:56:21 +00:00
Daniel Dunbar
ad4f982879
lib: Split out int_types.h, for readability.
...
llvm-svn: 144668
2011-11-15 18:56:13 +00:00
Daniel Dunbar
5a29e55a12
git: Tweak .gitignore to ignore defined platform build directories.
...
- We should probably sink the platform build dirs into a common top-level dir.
llvm-svn: 144662
2011-11-15 18:34:57 +00:00
Daniel Dunbar
2f629c8992
build/clang_darwin: Set CC before trying to run CheckArches.
...
llvm-svn: 144661
2011-11-15 18:34:53 +00:00
Daniel Dunbar
b6f75f73fd
lib: Integrate abi.h into int_lib.h, there aren't good enough reasons for this extra complexity.
...
llvm-svn: 144660
2011-11-15 18:34:44 +00:00
Daniel Dunbar
3306157ab3
build/darwin_fat: Drop ppc from default arch list, ppc targets are no longer supported by modern toolchains.
...
llvm-svn: 144659
2011-11-15 18:34:22 +00:00
Daniel Dunbar
fdb75e40ae
build: Change default CC to be clang instead of gcc.
...
llvm-svn: 144658
2011-11-15 18:34:17 +00:00
Daniel Dunbar
638095fa8f
platform/clang_darwin: Improve the "can we build for this arch test" by checking
...
that the standard includes we use in compiler-rt also work.
llvm-svn: 144305
2011-11-10 19:32:03 +00:00
Nick Kledzik
b69f3694df
<rdar://problem/10172492> No armv4t slice of libcompiler_rt-static.a
...
llvm-svn: 140630
2011-09-27 20:05:27 +00:00
Daniel Dunbar
2682897e11
platform/clang_darwin: Allow use of an RC_SUPPORTED_ARCHS variable to limit the
...
architectures we try to build for.
llvm-svn: 139738
2011-09-14 21:19:45 +00:00
Bob Wilson
7184d9fc33
Change ARM vfp assembly functions to use unified syntax.
...
llvm-svn: 138332
2011-08-23 16:40:18 +00:00
Bob Wilson
66cdd22ff4
Refactor DEFINE_COMPILERRT_FUNCTION.
...
llvm-svn: 138277
2011-08-22 21:49:47 +00:00
Bob Wilson
fd5148b45d
Remove redundant flag: -mthumb is the default for armv7.
...
llvm-svn: 138275
2011-08-22 21:39:01 +00:00
Bob Wilson
b13cb3ba06
Add the ARM VFP variants to the cc_kext libraries for armv6 and armv7.
...
Radar 9959402.
llvm-svn: 137835
2011-08-17 18:09:59 +00:00
Joerg Sonnenberger
8b068943a4
Don't redeclare sr.
...
llvm-svn: 136424
2011-07-28 23:15:41 +00:00
Joerg Sonnenberger
cf2996dc22
Don't redeclare sr.
...
llvm-svn: 136377
2011-07-28 19:47:33 +00:00
Nick Kledzik
1f9470589b
<rdar://problem/9624306> clean up darwin platform to use xcrun. Set up variables in darwin_bni.mk. Use GetCNAVar in AppleBI.mk
...
llvm-svn: 133487
2011-06-21 00:07:55 +00:00
Nick Kledzik
3729225576
add STRIP and LIPO as AvailableOptions
...
llvm-svn: 133481
2011-06-20 23:47:02 +00:00
Eric Christopher
00758b08ae
Missed a rename here 4 args instead of 3.
...
llvm-svn: 133311
2011-06-17 23:19:18 +00:00
Eric Christopher
1d1809437e
Implement mulo<mode>4 for use in signed overflow checking.
...
Fixes rdar://9219742 and rdar://9218244
llvm-svn: 133284
2011-06-17 20:17:05 +00:00
Daniel Dunbar
7487bbb72a
build/clang_darwin: Fix previous change to CheckArches to not cause problem when
...
command produces error output on stdout instead of stderr (and suppress the
stderr output while at it).
llvm-svn: 133019
2011-06-14 22:21:49 +00:00
Daniel Dunbar
47e71a3711
build/clang_darwin: Improve archs check to verify we can not just recognize
...
arch, but actually compile a file with that arch.
llvm-svn: 132928
2011-06-13 19:18:23 +00:00
Joerg Sonnenberger
d9bcddd6b9
If a test case is not compiled on a specific platform, print "skipped"
...
to stdout. This helps identifying missing coverage on a given platform.
llvm-svn: 132300
2011-05-29 21:43:29 +00:00
Daniel Dunbar
5c5d361236
clang/darwin: Tweak CheckArches function to use CC and to not spew output.
...
llvm-svn: 131656
2011-05-19 18:02:55 +00:00
Eric Christopher
539ec3ae90
Check architectures to make sure that we can build for all of them
...
before we try to.
Patch by Patrick Walton!
llvm-svn: 131098
2011-05-09 20:24:43 +00:00
Daniel Dunbar
eac62c5388
clang/Darwin: Include divsi3 functions on x86, they are used by the divmod
...
implementation.
llvm-svn: 131034
2011-05-06 23:06:07 +00:00
Daniel Dunbar
5aea1725ac
clang/Darwin: Update ios static lib to build for all archs, in case the
...
simulator wants to use it.
llvm-svn: 130566
2011-04-30 01:20:56 +00:00
Eric Christopher
fca8b75b71
Make sure we include __sync_synchronize on arm platforms if we need it.
...
llvm-svn: 129944
2011-04-21 22:05:05 +00:00
Daniel Dunbar
0ce75e834f
clang_darwin: Add divmod functions to cc_kext library.
...
llvm-svn: 129874
2011-04-20 21:40:40 +00:00
Daniel Dunbar
74457a715d
clang_darwin: Always set deployment targets when building compiler-rt bits, so
...
that we don't have a hidden dependency on possible deployment target environment
overrides.
- Also, add support for an ARM_SDK build variable which points to the isysroot
to use for ARM bits.
llvm-svn: 129873
2011-04-20 21:40:37 +00:00
Anton Korobeynikov
3c5199042a
Add some macro magic: user __USER_LABEL_PREFIX__ instead of hardcoding it for each platform
...
llvm-svn: 129818
2011-04-19 21:22:14 +00:00
Anton Korobeynikov
4322a7d2c6
More fixes for missed includes
...
llvm-svn: 129807
2011-04-19 20:50:32 +00:00
Anton Korobeynikov
147ecfad82
Add missed include
...
llvm-svn: 129804
2011-04-19 20:45:29 +00:00
Anton Korobeynikov
0529d4da93
Add missed files from my last commit.
...
llvm-svn: 129777
2011-04-19 18:14:19 +00:00
Anton Korobeynikov
e63da933eb
Move abi bits to separate header. Force AAPCS for EABI in accordance with ARM RTABI.
...
llvm-svn: 129769
2011-04-19 17:52:09 +00:00
Anton Korobeynikov
75e3c1993c
Add ARM EABI function aliases to routines
...
llvm-svn: 129768
2011-04-19 17:51:24 +00:00
Anton Korobeynikov
bdadd87c4d
Make use of LOCAL_LABEL macro
...
llvm-svn: 129767
2011-04-19 17:50:42 +00:00
Anton Korobeynikov
1653610449
Get rid of darwin'isms. Provide convenient macro for assembler local lables.
...
llvm-svn: 129766
2011-04-19 17:50:09 +00:00
Daniel Dunbar
ddd3a2ec1d
clang_darwin: Tweak runtime library definitions to include divmod functions.
...
llvm-svn: 129757
2011-04-19 15:14:46 +00:00
Nick Kledzik
19b826011e
<rdar://problem/9282305> install an archive for dyld and fix missing -static
...
llvm-svn: 129492
2011-04-14 00:45:01 +00:00
Nick Kledzik
e7e288c805
don't add version info for static library
...
llvm-svn: 129489
2011-04-14 00:40:20 +00:00
Nick Kledzik
012323dee9
<rdar://problem/9173756> enable CC.Release to be used always
...
llvm-svn: 129487
2011-04-14 00:39:01 +00:00
Nick Kledzik
aa60d6ac01
fix typo
...
llvm-svn: 129389
2011-04-12 21:22:48 +00:00
Nick Kledzik
191c2804e7
<rdar://problem/9185449> update version info for arm
...
llvm-svn: 129386
2011-04-12 21:11:47 +00:00
Daniel Dunbar
1d84f37577
clang/Darwin: Add all the comparison functions, the desire to cherry pick just
...
the ones we want isn't worth the effort.
llvm-svn: 128298
2011-03-25 19:19:10 +00:00
Daniel Dunbar
4c70f3e6ac
Revert "Split single & double comparison routines into separate implementation
...
files," for now, I missed some necesary updates.
llvm-svn: 128296
2011-03-25 18:45:39 +00:00
Daniel Dunbar
1102c9ae58
Split single & double comparison routines into separate implementation files,
...
for consistency.
llvm-svn: 128282
2011-03-25 15:52:51 +00:00
Daniel Dunbar
1730ab0b94
compiler-rt/clang/cc_kext: Update for functions which we have sinced acquired
...
implementations for.
llvm-svn: 128039
2011-03-21 23:31:09 +00:00
Daniel Dunbar
f3798a397d
compiler-rt: Split subdf3 and subsf3 out of add implementations, for
...
consistency.
llvm-svn: 128038
2011-03-21 23:30:19 +00:00
Stephen Canon
32acbef33f
slight re-arrangement to maybe pick up one cycle on dual-issue ARM cores
...
llvm-svn: 128003
2011-03-21 17:35:26 +00:00
Stephen Canon
5abb5c14c4
Carefully written implementations of the 32-bit integer divide and modulus functions for ARM. These are still using a naive digit-by-digit algorithm, but the core loop has been carefully written.
...
llvm-svn: 127882
2011-03-18 16:35:02 +00:00
Nick Kledzik
47a823b281
<rdar://problem/8914924> implement udivmodsi4 and divmodsi4 for ARM
...
llvm-svn: 127778
2011-03-17 00:09:13 +00:00
Nick Kledzik
371d881758
<rdar://problem/9145073> use -Os for release builds
...
llvm-svn: 127767
2011-03-16 22:23:24 +00:00
Chris Lattner
15bc34c7c2
don't compile modsi3 into an infinite loop, patch by Matt Johnson!
...
llvm-svn: 127429
2011-03-10 22:11:46 +00:00
Nick Kledzik
b611885ae6
<rdar://problem/9099747> fix use of SDKROOT
...
llvm-svn: 127270
2011-03-08 20:25:22 +00:00
Nick Kledzik
fc1586cf9f
<rdar://problem/9091300> update Apple packaging of compiler-rt
...
llvm-svn: 127057
2011-03-05 02:15:16 +00:00
Daniel Dunbar
fee882c203
clang_darwin: We don't need clear_cache for use with Clang on ARM/Darwin.
...
llvm-svn: 123989
2011-01-21 18:23:47 +00:00
Daniel Dunbar
e1e6acecb3
clang_darwin: Build with -fno-builtin, primarily to avoid issues with defining possible builtin functions.
...
llvm-svn: 123988
2011-01-21 18:23:42 +00:00
Daniel Dunbar
384a842085
clang_darwin: Start building an armv7 slice for cc_kext.
...
llvm-svn: 123987
2011-01-21 18:23:37 +00:00
Daniel Dunbar
77b059e32b
clang_darwin: Build cckext bits with -mthumb.
...
llvm-svn: 123986
2011-01-21 18:23:32 +00:00
Daniel Dunbar
d8baa2b4b0
Fix typo.
...
llvm-svn: 123985
2011-01-21 18:23:27 +00:00
Nick Kledzik
9f1bd06ae9
Add missing <stdint.h> to build properly on Solaris. Patch by Joakim Johansson
...
llvm-svn: 123006
2011-01-07 19:09:06 +00:00