Граф коммитов

40 Коммитов

Автор SHA1 Сообщение Дата
Richard Smith 61a574f6a3 Split ubsan runtime into three pieces (clang part):
* libclang_rt-san-* is sanitizer_common, and is linked in only if no other
   sanitizer runtime is present.
 * libclang_rt-ubsan-* is the piece of the runtime which doesn't depend on
   a C++ ABI library, and is always linked in.
 * libclang_rt-ubsan_cxx-* is the piece of the runtime which depends on a
   C++ ABI library, and is only linked in when linking a C++ binary.

This change also switches us to using -whole-archive for the ubsan runtime
(which is made possible by the above split), and switches us to only linking
the sanitizer runtime into the main binary and not into DSOs (which is made
possible by using -whole-archive).

The motivation for this is to only link a single copy of sanitizer_common
into any binary. This is becoming important now because we want to share
more state between multiple sanitizers in the same process (for instance,
we want a single shared output mutex).

The Darwin ubsan runtime is unchanged; because we use a DSO there, we don't
need this complexity.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177605 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20 23:49:07 +00:00
Evgeniy Stepanov 3aada3c305 Add MSan to the list of targets in Makefile-based builds.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175738 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-21 13:59:14 +00:00
Alexey Samsonov 75fcb193ae UBSan: enable proper linking with UBsan runtime on Darwin. Turn on building ubsan on OS X in 'make' build system. Patch by Jean-Daniel Dupas.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168168 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16 12:53:14 +00:00
Alexey Samsonov e0d80f1852 [UBSan] Add support for building ubsan runtime library on Linux with 'make'. Clang part.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168039 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-15 12:40:37 +00:00
Evgeniy Stepanov 19baf068e8 Pass LLVM_ANDROID_TOOLCHAIN_DIR if set.
This lets one build ASan runtime for ARM/Android by running
make -C tools/clang/runtime/ \
  LLVM_ANDROID_TOOLCHAIN_DIR=/path/to/ndk/toolchain
in an existing build tree.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166560 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24 14:05:29 +00:00
Daniel Dunbar 7a0c064770 Un-revert r164907 and r164902 (+ follow-ups), 10.6 build fix to follow.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165988 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-15 22:23:53 +00:00
Nico Weber dc0d4e251b Revert r164907 and r164902 (+ follow-ups). They broke building on 10.6.
See PR14013.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165962 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-15 20:37:01 +00:00
Alexey Samsonov f288d223a4 Fixup for r165097: build 32-bit ASan compiler-rt library on 64-bit Linux only if just-built clang can build simple 32-bit executables
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165503 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 16:03:52 +00:00
Alexey Samsonov 2985cbc3c0 Make sure 32-bit ASan runtime is available on 64-bit Linux platforms
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165097 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-03 07:23:03 +00:00
Bob Wilson f2f3ce54fc Add Clang support for iOS6.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164907 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29 23:52:58 +00:00
Alexander Potapenko b626280eb1 Run install_name_tool to fix the dynamic library ID after it has been copied.
Fixes http://code.google.com/p/address-sanitizer/issues/detail?id=113


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164031 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 14:18:41 +00:00
Daniel Dunbar 12f5fe5f4e compiler-rt/darwin: Install asan_osx_dynamic with the other runtime libraries.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163941 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-14 21:30:17 +00:00
Daniel Dunbar 66a5bf923c build/compiler-rt: Companion commit to r159172.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159174 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-25 23:02:25 +00:00
Kostya Serebryany f7efb0e747 [tsan] add ThreadSanitizer linker flags on Linux and also copy the tsan-rt into the appropriate place at build time
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156906 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-16 06:36:00 +00:00
Daniel Dunbar 3518058dac build/compiler-rt: Stop forcing off -integrated-as for compiler-rt builds.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152054 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-05 20:19:03 +00:00
Rafael Espindola a0889a8c32 Use -no-integrated-as only on ARM. The X86 and X86-64 integrated as have been
the default for clang for some time now and can handle compiler-rt.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151367 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24 16:22:39 +00:00
Bob Wilson b3381f6096 Use the new installheaders makefile target in libcxx.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148630 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-21 06:25:34 +00:00
Daniel Dunbar 7df67e6892 runtime/Linux: Include the profile and ASAN libs on x86.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146051 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-07 19:35:10 +00:00
Daniel Dunbar ff9865220c runtime/Linux: Initial support for tying compiler-rt build into Clang build on
Linux.
 - Currently just builds a full library, and only on x86, and only for the
   target arch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145672 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02 02:31:32 +00:00
Daniel Dunbar 94b54ea787 Driver/Darwin: Add ASAN runtime library link support.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145651 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01 23:40:18 +00:00
Bob Wilson a10678d292 Use libcxx makefile's do-installhdrs target. <rdar://problem/10397739>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145168 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-27 06:13:25 +00:00
Daniel Dunbar f471487ff1 clang/Darwin: Use the compiler-rt provided profile library.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144869 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-17 00:36:57 +00:00
Daniel Dunbar e33218a3ce build/make/compiler-rt: Don't attempt to build compiler-rt runtime libraries
when cross compiling under the current organization.
 - See verbose comment for explanation, justification, and how to fix.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144860 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-16 23:22:07 +00:00
Bob Wilson da79da2a87 Install a copy of the libc++ headers with clang. <rdar://problem/10096516>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140876 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-30 20:24:28 +00:00
Eric Christopher 3404fe7105 Build and use libcompiler_rt whenever possible.
Patch by Jean-Daniel Dupas!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133624 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-22 17:41:40 +00:00
Daniel Dunbar 3cceec5e05 Driver/Darwin: Change to use generic iOS runtime library, which we now always need.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129734 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-18 23:48:36 +00:00
Nick Lewycky d0ae47069e Restore accidentally deleted file (I blame svn).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129588 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-15 18:57:00 +00:00
Nick Lewycky 484fc57c8d Reapply r129561, moving the runtime/Makefile that builds compiler-rt into
runtime/compiler-rt/Makefile paving the way to put multiple different libraries
into runtime/ and build all of them.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129585 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-15 18:33:24 +00:00
Nick Lewycky a8e8d5f55b Doug Gregor tells me that runtime/libcxx/ is a placeholder for stuff we never
did. Delete it.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129584 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-15 18:02:26 +00:00
Owen Anderson 562627d782 Revert r129561, which broke one of the clang buildbots.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129581 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-15 17:35:58 +00:00
Nick Lewycky 1f05587937 Create a compiler-rt directory and move the Makefile to it. Add a makefile that
builds the subdirs from this directory. This makes the behaviour with make match
what already happens with cmake.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129561 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-15 06:57:32 +00:00
Daniel Dunbar db0ab63998 build/compiler-rt: Fake Clang into using the right assembler to build the ARM
bits for the runtime libraries.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125328 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-11 01:29:49 +00:00
Daniel Dunbar 880efcbf16 build: Use CLANG_NO_RUNTIME=1 specifically, not just any definition.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122449 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22 22:23:39 +00:00
Michael J. Spencer 48263bae23 CMake: Add runtime dir.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121957 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-16 03:28:42 +00:00
Shantonu Sen 2ab0303492 Fix build of in-tree libcxx. libcxx doesn't actually
need any of the LLVM support libraries. Reviewed
by Daniel Dunbar.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120602 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01 20:38:11 +00:00
Michael J. Spencer 03013fa9a0 Merge System into Support.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120297 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-29 18:12:39 +00:00
Daniel Dunbar 885b1dbc6e Driver/Darwin: Add a runtime library just for ___eprintf -- when targeting i386
some projects still depend on ___eprintf being available.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114509 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-22 00:03:52 +00:00
Daniel Dunbar 53a4d7e4f3 build: Start sketching code to allow grafting libc++ build into LLVM/Clang build if
libc++ is checked out into llvm/projects.
 - WIP, not on by default yet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113924 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-15 03:53:45 +00:00
Daniel Dunbar a3d84991a8 Runtime: Always build compiler-rt using the Clang we just built, instead of the
system CC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107328 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30 22:10:41 +00:00
Daniel Dunbar ac141e61ff Move lib/Runtime to runtime/, and build after everything else.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107327 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30 22:10:38 +00:00