summaryrefslogtreecommitdiffstats
path: root/clang/runtime
Commit message (Collapse)AuthorAgeFilesLines
* Re-apply r267784, r267824 and r267830.Peter Collingbourne2016-04-282-21/+0
| | | | | | I have updated the compiler-rt tests. llvm-svn: 267903
* Revert r267784, r267824 and r267830.Benjamin Kramer2016-04-282-0/+21
| | | | | | | | | | It makes compiler-rt tests fail if the gold plugin is enabled. Revert "Rework interface for bitset-using features to use a notion of LTO visibility." Revert "Driver: only produce CFI -fvisibility= error when compiling." Revert "clang/test/CodeGenCXX/cfi-blacklist.cpp: Exclude ms targets. They would be non-cfi." llvm-svn: 267871
* Rework interface for bitset-using features to use a notion of LTO visibility.Peter Collingbourne2016-04-272-21/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Bitsets, and the compiler features they rely on (vtable opt, CFI), only have visibility within the LTO'd part of the linkage unit. Therefore, only enable these features for classes with hidden LTO visibility. This notion is based on object file visibility or (on Windows) dllimport/dllexport attributes. We provide the [[clang::lto_visibility_public]] attribute to override the compiler's LTO visibility inference in cases where the class is defined in the non-LTO'd part of the linkage unit, or where the ABI supports calling classes derived from abstract base classes with hidden visibility in other linkage units (e.g. COM on Windows). If the cross-DSO CFI mode is enabled, bitset checks are emitted even for classes with public LTO visibility, as that mode uses a separate mechanism to cause bitsets to be exported. This mechanism replaces the whole-program-vtables blacklist, so remove the -fwhole-program-vtables-blacklist flag. Because __declspec(uuid()) now implies [[clang::lto_visibility_public]], the support for the special attr:uuid blacklist entry is removed. Differential Revision: http://reviews.llvm.org/D18635 llvm-svn: 267784
* Moving clang-test-depends into the Clang tests folder and moving ↵Aaron Ballman2016-04-121-0/+1
| | | | | | vtables_blacklist into the Misc folder; NFC, this simply cleans up the generated solution so that these targets don't live in the root folder of the IDE. llvm-svn: 266079
* [cmake] Add a few more compiler-rt check-* targets for EXTERNAL_COMPILER_RTFilipe Cabecinhas2016-03-011-1/+2
| | | | llvm-svn: 262341
* [cmake] Try to appease the buildbots.Filipe Cabecinhas2016-03-011-1/+4
| | | | llvm-svn: 262340
* [cmake] Pass through the cmake_3_2_USES_TERMINAL variable so we get progress ↵Filipe Cabecinhas2016-03-011-0/+1
| | | | | | bars on an external compiler-rt build llvm-svn: 262336
* [cmake] Use CMake's USES_TERMINAL for the test targets.Filipe Cabecinhas2016-03-011-1/+3
| | | | llvm-svn: 262335
* [cmake] Fallback to LLVM_EXTERNAL_COMPILER_RT_SOURCE_DIR if ↵Filipe Cabecinhas2016-03-011-0/+7
| | | | | | COMPILER_RT_SRC_ROOT doesn't exist. llvm-svn: 262334
* Make vtables_blacklist dependency conditional on existence of clang target.Peter Collingbourne2016-02-261-1/+3
| | | | llvm-svn: 261960
* Add whole-program vtable optimization feature to Clang.Peter Collingbourne2016-02-242-0/+18
| | | | | | | | | This patch introduces the -fwhole-program-vtables flag, which enables the whole-program vtable optimization feature (D16795) in Clang. Differential Revision: http://reviews.llvm.org/D16821 llvm-svn: 261767
* Remove autoconf supportChris Bieneman2016-01-263-312/+0
| | | | | | | | | | | | | | | | | Summary: This patch is provided in preparation for removing autoconf on 1/26. The proposal to remove autoconf on 1/26 was discussed on the llvm-dev thread here: http://lists.llvm.org/pipermail/llvm-dev/2016-January/093875.html "This is the way [autoconf] ends Not with a bang but a whimper." -T.S. Eliot Reviewers: chandlerc, grosbach, bob.wilson, echristo Subscribers: klimek, cfe-commits Differential Revision: http://reviews.llvm.org/D16472 llvm-svn: 258862
* [CMake] ExternalProject for compiler-rt needs to depend on llvm-config and clangChris Bieneman2015-12-161-2/+1
| | | | | | The add_dependencies call on compiler-rt-configure adds llvm-config and clang to the phony target, but not to the actual configure custom command. We need the dependency bound to the custom command so that it can't be re-ordered by Ninja. llvm-svn: 255798
* [CMake] Pass CMAKE_MAKE_PROGRAM through to compiler-rt build.Chris Bieneman2015-12-091-0/+1
| | | | | | This is needed if your make tool is overridden. llvm-svn: 255172
* Add llvm-objdump to compiler-rt test deps.Alexey Samsonov2015-12-071-1/+1
| | | | llvm-svn: 254961
* [CMake] Removing an unnecessary layer of variable indirectionChris Bieneman2015-12-031-1/+1
| | | | | | This prevents passthrough variables from having values. llvm-svn: 254642
* NFC. Fixing my consistently incorrect spelling.Chris Bieneman2015-11-231-4/+4
| | | | llvm-svn: 253937
* [CMake] Fix handling of passing through semi-colon separated lists.Chris Bieneman2015-11-201-1/+2
| | | | | | When passing around CMake arguments as lists of arguments any arguments containing lists need to have their semi-colons escaped otherwise CMake will split the arguments in the middle. llvm-svn: 253720
* [CMake] Fixing passthrough for variables starting with COMPILER_RTChris Bieneman2015-11-111-1/+1
| | | | | | This allows COMPILER_RT_* variables to be passed from the top-level CMake into the external project when LLVM_BUILD_EXTERNAL_COMPILER_RT=On. llvm-svn: 252809
* Revert "Support watchOS and tvOS in compiler-rt builds"Tim Northover2015-11-031-36/+3
| | | | | | | | | | The required compiler-rt changes aren't present yet so attempting to build with compiler-rt breaks. And since we're trying to deprecate autotools we actually want to fix this in CMake primarily anyway. This reverts r251712. llvm-svn: 251953
* Support watchOS and tvOS in compiler-rt buildsTim Northover2015-10-301-3/+36
| | | | | | | Hopefully autotools will be deprecated soon and this entire file can go away, but until then... llvm-svn: 251712
* [CMake] Make external compiler-rt install scripts relative to ↵Chris Bieneman2015-10-201-2/+2
| | | | | | | | | | | | | | CMAKE_INSTALL_PREFIX. This change makes LLVM_BUILD_EXTERNAL_COMPILER_RT work correctly when overriding CMAKE_INSTALL_PREFIX on the install action (which is how LLVM_CREATE_XCODE_TOOLCHAIN works). This fix is two parts: (1) Pass CMAKE_INSTALL_PREFIX in as a variable from the parent install to the child install (2) When passing COMPILER_RT_INSTALL_PATH into the external project make sure it is passed as a string not a path. Not specifying the full path for COMPILER_RT_INSTALL_PATH isn't enough to fix the issue because relative paths specified on the CMake command line are expanded relative to the working directory before the cache is populated. Forcing this to a string allows it to remain a relative path through to the install() calls. Relative paths specified in install() calls are expanded relative to CMAKE_INSTALL_PREFIX at install time. llvm-svn: 250834
* [CMake] When building clang as an external project we should pass through ↵Chris Bieneman2015-10-131-0/+11
| | | | | | all variables that start with COMPILER_RT llvm-svn: 250196
* [CMake] Bug 14109 - CMake build for compiler-rt should use just-built clangChris Bieneman2015-10-121-50/+66
| | | | | | | | | | | | | | | | Summary: Many small improvements to LLVM_BUILD_EXTERNAL_COMPILER_RT. * Works correctly with Ninja by working around CMake Bug 14771 (https://cmake.org/Bug/view.php?id=14771) * Has install-compiler-rt target, and installs as part of the default install target * Sets the install paths properly so that it matches the non-standalone build * Only generate the test targets if(LLVM_INCLUDE_TESTS) Reviewers: samsonov, Bigcheese Differential Revision: http://reviews.llvm.org/D13399 llvm-svn: 250064
* Fix makefile build on OSX when ARM targets are not enabledKeno Fischer2015-10-041-0/+2
| | | | | | | | | | | | | | | Summary: When LLVM/Clang is built without ARM support, the ios_kext runtime library is not built, but without this patch, the Makefile still tries to copy it. This is a recent regression, because the ios_kext library used to also be built on x86_64. Reviewers: beanz Subscribers: aemerson, cfe-commits, rengolin Differential Revision: http://reviews.llvm.org/D13421 llvm-svn: 249281
* [darwin] [builtins] Stop generating cc_kext_ios5 and move iOS architectures ↵Chris Bieneman2015-09-231-1/+1
| | | | | | | | | | | | | | | | | out of cc_kext into cc_kext_ios Summary: This corresponds to a patch to compiler-rt (D13112). Xcode 7 doesn't support targeting iOS5 and earlier. Instead of just dropping cc_kext_ios5, I've repurposed it to cc_kext_ios, and I'm pulling the iOS architectures out of cc_kext. Putting OS X and iOS slices inside the same archive was just odd. Reviewers: bogner, bob.wilson Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D13113 llvm-svn: 248442
* [UBSan] Use shared library for UBSan on OS X (Clang part).Alexey Samsonov2015-03-231-2/+3
| | | | | | | | | | | | | | | | | | Summary: UBSan is now used in the same way as ASan, and is supported on OSX and on iOS simulator. At the moment ASan and UBSan can't be used together due to PR21112, but I hope to resolve it soon by embedding UBSan into ASan. Test Plan: regression test suite. Reviewers: zaks.anna, kubabrecka Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D8471 llvm-svn: 233035
* Remove support for building sanitizers from Makefile/autoconf build on Linux.Alexey Samsonov2015-02-181-12/+4
| | | | | | | This is a re-application of r229554 restricted to Linux build only. Apple still uses Makefile/autoconf to build Clang and sanitizers. llvm-svn: 229755
* Revert "Remove support for building sanitizers from Makefile/autoconf build."Matthias Braun2015-02-171-7/+43
| | | | | | | | | This reverts commit r229554. Reverting this commit for now as several apple internal builds still rely on this functionality. llvm-svn: 229582
* Remove support for building sanitizers from Makefile/autoconf build.Alexey Samsonov2015-02-171-43/+7
| | | | | | | | They autotools build has a number of missing features, supports less OS, architectures, build configurations, doesn't have any tests and is hard to support in sync with CMake build. llvm-svn: 229554
* [CMake] Add check-asan-dynamic command to external compiler-rt setup.Alexey Samsonov2014-12-181-2/+2
| | | | llvm-svn: 224545
* Remove change to set SDKROOT when building compiler-rt on Darwin.Bob Wilson2014-11-101-17/+0
| | | | | | | | This reverts the runtime library portion of r194168. As of r221621, the libclang_rt libraries for Darwin build with explicit SDK options so there is no need to set SDKROOT here. llvm-svn: 221625
* Only build iOS runtime libraries when the iOS SDKs are available.Bob Wilson2014-11-101-6/+17
| | | | | | | | | This was already set up for the iOS simulator ASan dylib simulator, and this change extends that to the other iOS runtime libraries. This is in preparation for building all those iOS libraries against the real SDKs instead of the fake SDKs in compiler-rt. llvm-svn: 221614
* Use @rpath for ASan dylib in MakefilesKuba Brecka2014-11-071-2/+0
| | | | | | Reviewed at http://reviews.llvm.org/D6176 llvm-svn: 221557
* Unify the name of compiler-rt builtins library on Linux.Alexey Samsonov2014-05-221-2/+2
| | | | | | | | | | Call it "libclang_rt.builtins-<arch>.a" to be consistent with sanitizers/profile libraries naming. Modify Makefile and CMake build systems and Clang driver accordingly. Fixes PR19822. llvm-svn: 209474
* Make verbose clang builds also build compiler_rt verboselyJonathan Roelofs2014-05-141-0/+2
| | | | llvm-svn: 208821
* [ASan] Split static ASan runtime in two parts: asan and asan_cxx.Alexey Samsonov2014-05-121-4/+4
| | | | | | | | | | | asan_cxx containts replacements for new/delete operators, and should only be linked in C++ mode. We plan to start building this part with exception support to make new more standard-compliant. See https://code.google.com/p/address-sanitizer/issues/detail?id=295 for more details. llvm-svn: 208610
* [CMake] Propagate top-level targets for compiler-rt runtimes and test-suitesAlexey Samsonov2014-03-211-14/+46
| | | | | | | | | | | | | | | | | | | from (external) compiler-rt build tree into LLVM/Clang build tree in LLVM_BUILD_EXTERNAL_COMPILER_RT mode. For instance, running make asan -j12 in LLVM/Clang build tree will now build Clang, use it to configure compiler-rt build tree, and invoke "make asan -j12" there. ASan runtime will be built in the proper location, where Clang driver expects to find it. Running make check-asan will build Clang, use it to configure compiler-rt build tree, build everything there, and then run "make check-asan" in compiler-rt build tree using just-built Clang and ASan runtime. llvm-svn: 204463
* [CMake] Teach build system to build/test compiler-rt with a just-built ClangAlexey Samsonov2014-02-271-1/+65
| | | | | | | | | | | | | | | | | | | With this change, one may set LLVM_BUILD_EXTERNAL_COMPILER_RT option to build compiler-rt libraries with just-built Clang. make compiler-rt in the build tree will build all compiler-rt libraries with just-built Clang and copy them to the proper location in the Clang resource directory. make check-compiler-rt will run the compiler-rt test suite using just-built Clang and runtime libraries. The goal is to make LLVM_BUILD_EXTERNAL_COMPILER_RT the default, so that we can always build compiler-rt libraries with Clang, not the host compiler, and for all the platforms Clang can target. llvm-svn: 202367
* Macho-embedded: rename compiler-rt support from Darwin-embeddedTim Northover2014-01-211-3/+3
| | | | | | | There's nothing Darwin-based in the files or target now, so the previous name is now misleading. llvm-svn: 199733
* Only build ARM-specific runtimes if ARM is enabledTim Northover2013-12-111-1/+6
| | | | | | | | The soft-float variants of (embedded) libclang_rt only make sense for ARM, so there's no point in trying to build them if the compiler is only capable of targeting x86. llvm-svn: 197033
* Fix a tranche of comment, test and doc typosAlp Toker2013-12-051-1/+1
| | | | llvm-svn: 196510
* Darwin(ish): enable embedded compiler-rt builds on Darwin.Tim Northover2013-11-151-1/+3
| | | | | | | | This builds extra versions of compiler-rt targeting various unhosted targets. Only built on Darwin since even though they're not iOS or OSX, they share some quirks. llvm-svn: 194878
* libc++: Install headers in include/, rather than lib/Justin Bogner2013-11-151-1/+1
| | | | | | | | | When using the configure build system, the libc++ headers were being installed in lib/, whereas cmake installs them in include/. Since include/ makes more sense for headers, we'll make both systems install headers there. llvm-svn: 194833
* [ASan] If the iOS Simulator SDK is available, build the ASan iossim runtime ↵Alexander Potapenko2013-11-151-0/+4
| | | | | | using configure+make. llvm-svn: 194816
* [build] Update runtime library and tests to work with relocatable SDKs on OS ↵Daniel Dunbar2013-11-061-0/+17
| | | | | | X 10.9. llvm-svn: 194168
* [libsanitizer] configure+make: install include/sanitizer into ClangAlexander Potapenko2013-10-281-2/+24
| | | | | | When building Clang with compiler-rt, copy the contents of compiler-rt/include/sanitizer into lib/clang/3.4/include/sanitizer llvm-svn: 193515
* [LSan] Add support for building standalone LSan runtime to Make build (clang ↵Alexey Samsonov2013-08-201-1/+1
| | | | | | part) llvm-svn: 188805
* DataFlowSanitizer; Clang changes.Peter Collingbourne2013-08-071-1/+2
| | | | | | | | | | | | | DataFlowSanitizer is a generalised dynamic data flow analysis. Unlike other Sanitizer tools, this tool is not designed to detect a specific class of bugs on its own. Instead, it provides a generic dynamic data flow analysis framework to be used by clients to help detect application-specific issues within their own code. Differential Revision: http://llvm-reviews.chandlerc.com/D966 llvm-svn: 187925
* The makefile build system had two lists of the 32-bit runtime librariesChandler Carruth2013-06-231-5/+7
| | | | | | | | | | | to build and one had grown out of sync. Put this list in a variable so this doesn't happen again. The whole thing here is somewhat suspicious as we don't support 32-bit environments with a 64-bit bi-arch capable compiler, but none have complained yet about this so I'm just leaving it alone. llvm-svn: 184665
OpenPOWER on IntegriCloud