summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
AgeCommit message (Collapse)Author
2018-11-02Bump version to 7.0.1Tom Stellard
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@346007 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-09Merging r339319:Hans Wennborg
------------------------------------------------------------------------ r339319 | hans | 2018-08-09 10:41:03 +0200 (Thu, 09 Aug 2018) | 1 line cmake: don't pack system libs unless CMAKE_INSTALL_UCRT_LIBRARIES is set (PR38476) ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@339323 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-03Merging r338751:Hans Wennborg
------------------------------------------------------------------------ r338751 | tstellar | 2018-08-02 20:16:10 +0200 (Thu, 02 Aug 2018) | 13 lines CMake: Remove LLVM_DYLIB_SYMBOL_VERSIONING Summary: This option is no longer needed since r300496 added symbol versioning by default Reviewers: sylvestre.ledru, beanz, mgorny Reviewed By: mgorny Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D49835 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@338842 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-01Drop 'svn' suffix from the version number.Hans Wennborg
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@338573 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-24Add PerfJITEventListener for perf profiling support.Andres Freund
This new JIT event listener supports generating profiling data for the linux 'perf' profiling tool, allowing it to generate function and instruction level profiles. Currently this functionality is not enabled by default, but must be enabled with LLVM_USE_PERF=yes. Given that the listener has no dependencies, it might be sensible to enable by default once the initial issues have been shaken out. I followed existing precedent in registering the listener by default in lli. Should there be a decision to enable this by default on linux, that should probably be changed. Please note that until https://reviews.llvm.org/D47343 is resolved, using this functionality with mcjit rather than orcjit will not reliably work. Disregarding the previous comment, here's an example: $ cat /tmp/expensive_loop.c bool stupid_isprime(uint64_t num) { if (num == 2) return true; if (num < 1 || num % 2 == 0) return false; for(uint64_t i = 3; i < num / 2; i+= 2) { if (num % i == 0) return false; } return true; } int main(int argc, char **argv) { int numprimes = 0; for (uint64_t num = argc; num < 100000; num++) { if (stupid_isprime(num)) numprimes++; } return numprimes; } $ clang -ggdb -S -c -emit-llvm /tmp/expensive_loop.c -o /tmp/expensive_loop.ll $ perf record -o perf.data -g -k 1 ./bin/lli -jit-kind=mcjit /tmp/expensive_loop.ll 1 $ perf inject --jit -i perf.data -o perf.jit.data $ perf report -i perf.jit.data - 92.59% lli jitted-5881-2.so [.] stupid_isprime stupid_isprime main llvm::MCJIT::runFunction llvm::ExecutionEngine::runFunctionAsMain main __libc_start_main 0x4bf6258d4c544155 + 0.85% lli ld-2.27.so [.] do_lookup_x And line-level annotations also work: │ for(uint64_t i = 3; i < num / 2; i+= 2) { │1 30: movq $0x3,-0x18(%rbp) 0.03 │1 38: mov -0x18(%rbp),%rax 0.03 │ mov -0x10(%rbp),%rcx │ shr $0x1,%rcx 3.63 │ ┌──cmp %rcx,%rax │ ├──jae 6f │ │ if (num % i == 0) 0.03 │ │ mov -0x10(%rbp),%rax │ │ xor %edx,%edx 89.00 │ │ divq -0x18(%rbp) │ │ cmp $0x0,%rdx 0.22 │ │↓ jne 5f │ │ return false; │ │ movb $0x0,-0x1(%rbp) │ │↓ jmp 73 │ │ } 3.22 │1 5f:│↓ jmp 61 │ │ for(uint64_t i = 3; i < num / 2; i+= 2) { Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D44892 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@337789 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-20Rewrite the VS integration scripts.Zachary Turner
This is a new modernized VS integration installer. It adds a Visual Studio .sln file which, when built, outputs a VSIX that can be used to install ourselves as a "real" Visual Studio Extension. We can even upload this extension to the visual studio marketplace. This fixes a longstanding problem where we didn't support installing into VS 2017 and higher. In addition to supporting VS 2017, due to the way this is written we now longer need to do anything special to support future versions of VS as well. Everything should "just work". This also fixes several bugs with our old integration, such as MSBuild triggering full rebuilds when /Zi was used. Finally, we add a new UI page called "LLVM" which becomes visible when the LLVM toolchain is selected. For now this only contains one option which is the path to clang-cl.exe, but in the future we can add more things here. Differential Revision: https://reviews.llvm.org/D42762 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@337572 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-10[CMake] Teach the build system to codesign built productsJustin Bogner
Automatically codesign all executables and dynamic libraries if a codesigning identity is given (via LLVM_CODESIGNING_IDENTITY). This option is darwin only for now. Also update platforms/iOS.cmake to pick up the right versions of codesign and codesign_allocate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@336708 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-28Support for multiarch runtimes layoutPetr Hosek
This change adds a support for multiarch style runtimes layout, so in addition to the existing layout where runtimes get installed to: lib/clang/$version/lib/$os Clang now allows runtimes to be installed to: lib/clang/$version/$target/lib This also includes libc++, libc++abi and libunwind; today those are assumed to be in Clang library directory built for host, with the new layout it is possible to install libc++, libc++abi and libunwind into the runtime directory built for different targets. The use of new layout is enabled by setting the LLVM_ENABLE_RUNTIME_TARGET_DIR CMake variable and is supported by both projects and runtimes layouts. The runtimes CMake build has been further modified to use the new layout when building runtimes for multiple targets. Differential Revision: https://reviews.llvm.org/D45604 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@335809 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-13[CMake] Handle 'libtool' being at a path with spaces in it.Jordan Rose
This can happen on macOS if the user's Xcode is at a path with spaces in it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334632 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-13Revert "Fix how LLVMOPTIONALCOMPONENTS is passed to llvm-build"Ahmed Bougacha
This reverts commit r334543. My understanding is, that commit is intended to make the llvm-build invocation have a correct "--enable-optional-components" value, but: - it already has a value: it's quoted in the command line a few lines below, and, if I hack llvm-build to print sys.argv, it does look correct: -- llvm-build output: ['.../utils/llvm-build/llvm-build', '--native-target', 'X86', '--enable-targets', 'X86;ARM;AArch64', '--enable-optional-components', '', '--write-library-table', '.../build/tools/llvm-config/LibraryDependencies.inc', '--write-cmake-fragment', '.../build/LLVMBuild.cmake'] - the " " string seems to evaluate to TRUE in CMake (*sigh*), so this basically force-enables LLVM_USE_INTEL_JITEVENTS, regardless of the value of the option. On Darwin, JITEvents is not supported, so this bypasses that OS check but is guaranteed to fail later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334566 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-12Fix how LLVMOPTIONALCOMPONENTS is passed to llvm-buildReid Kleckner
Patch by Force.Charlie-I If LLVM_USE_INTEL_JITEVENTS and LLVM_USE_OPROFILE not set, "${LLVMOPTIONALCOMPONENTS}" is empty, but **--enable-optional-components** need arg, Cause **--write-library-table** to be skipped parsed. Differential Revision: https://reviews.llvm.org/D47982 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334543 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-11[CMake] Fix dropped dependency in install-llvm-headersJustin Bogner
This dependency was accidentally dropped in r319480, causing install-distribution and install-llvm-headers to install an incomplete set of headers (the generated Intrinsics and Attributes would be missing). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334452 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-20[cmake] Add a switch to enable/disable bindings.Vassil Vassilev
Differential Revision: https://reviews.llvm.org/D42026 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@332816 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-17[CMake] Support runtimes in distributionsChris Bieneman
Summary: This patch adds a new internal variable LLVM_RUNTIME_DISTRIBUTION_COMPONENTS which specifies distribution components that are part of runtime projects, and thus should be exposed from runtime configuraitons up into the top-level CMake configurations. This is required for allowing runtime components to be included in LLVM_DISTRIBUTION_COMPONENTS because we verify that the build and install targets exist for every component specified for the distribution. Without this patch runtimes and builtins can only be included in distributions in whole, not by component. Reviewers: phosek Reviewed By: phosek Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D46705 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@332631 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-17[CMake] Make optimizing sanitizer builds optionalChris Bieneman
This behavior has been the default for a long time, so the default value is On, however this can make it difficult to debug sanitizer failures, so we should have an option to turn it off. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@332628 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24Remove LLVM_INSTALL_CCTOOLS_SYMLINKSNico Weber
It used to symlink dsymutil to llvm-dsymutil, but after r327790 llvm's dsymutil binary is now called dsymutil without prefix. r327792 then reversed the direction of the symlink if LLVM_INSTALL_CCTOOLS_SYMLINKS was set, but that looks like a buildfix and not like something anyone should need. https://reviews.llvm.org/D45966 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330727 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-11[llvm-exegesis] Add a flag to disable libpfm even if present.Clement Courbet
Summary: Fixes PR37053. Reviewers: uabelho, gchatelet Subscribers: mgorny, tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D45436 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@329781 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-02Assume existence of inttypes.h and stdint.h in DataTypes.h.Nico Weber
These should exist in all toolchains LLVM supports nowadays. Enables making DataTypes.h a regular header instead of a .h.cmake file and allows deleting a bunch of cmake goop (which should also speed up cmake configure time a bit). All the code this removes is 9+ years old. https://reviews.llvm.org/D45155 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328970 91177308-0d34-0410-b5e6-96231b3b80d8
2018-03-21Ensure that DataTypes.h is installed now that it's moved to llvm-cDavid Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328130 91177308-0d34-0410-b5e6-96231b3b80d8
2018-03-21Reapply Support layering fixes.David Blaikie
Compiler.h is used by Demangle (which Support depends on) - so sink it into Demangle to avoid a circular dependency DataTypes.h is used by llvm-c (which Support depends on) - so sink it into llvm-c. DataTypes.h could probably be fixed the other way - making llvm-c depend on Support instead of Support depending on llvm-c - if anyone feels that's the better option, happy to work with them on that. I /think/ this'll address the layering issues that previous attempts to commit this have triggered in the Modules buildbot, but I haven't been able to reproduce that build so can't say for sure. If anyone's having trouble with this - it might be worth taking a look to see if there's a quick fix/something small I missed rather than revert, but no worries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328123 91177308-0d34-0410-b5e6-96231b3b80d8
2018-03-21Revert "Move DataTypes.h from Support to llvm-c to fix layering."Jonas Devlieghere
This reverts r328065. I missed this one in r328085 and the bots were still failing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328095 91177308-0d34-0410-b5e6-96231b3b80d8
2018-03-21Move DataTypes.h from Support to llvm-c to fix layering.David Blaikie
Support depends on llvm-c (a few typedefs, macros, etc - Types.h, Disassembler.h, and TargetMachine.h. This could be done the other way - those macros/typedefs/etc could be moved into Support and used from llvm-c instead. If someone feels that's a better direction to go, happy to discuss it/try it out/etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328065 91177308-0d34-0410-b5e6-96231b3b80d8
2018-02-28build: add the ability to create a symlink for dsymutilSaleem Abdulrasool
Add a `LLVM_INSTALL_CCTOOLS_SYMLINKS` to mirror `LLVM_INSTALL_BINUTILS_SYMLINKS`. For now, this allows us to create symlinks for `dsymutil` to `llvm-dsymutil`. This option is off by default, but the user can enable it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326381 91177308-0d34-0410-b5e6-96231b3b80d8
2018-02-09CMake: Allow specifying arbitrary CCACHE parametersJustin Bogner
Introduces the LLVM_CCACHE_PARAMS cmake variable, which can be used to pass arbitrary parameters to ccache invocations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@324779 91177308-0d34-0410-b5e6-96231b3b80d8
2018-02-08CMAKE: apply -O3 for mingw clangMartell Malone
Differential Revision: https://reviews.llvm.org/D41596 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@324570 91177308-0d34-0410-b5e6-96231b3b80d8
2018-01-25[CMake] Fix Bug Report URLShoaib Meenai
It looks like this hasn't been updated since bugzilla moved. Patch by Colden Cullen. Differential Revision: https://reviews.llvm.org/D42496 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@323457 91177308-0d34-0410-b5e6-96231b3b80d8
2018-01-25[cmake] Set cmake policy CMP0068 to suppress warnings on OSXDon Hinton
Set cmake policy CMP0068=NEW, if available, and set "CMAKE_BUILD_WITH_INSTALL_NAME_DIR=On" globally to maintain current behavior. This is needed to suppress warnings on OSX starting with cmake version 3.9.6. Differential Revision: https://reviews.llvm.org/D42463 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@323404 91177308-0d34-0410-b5e6-96231b3b80d8
2018-01-24Fix up and document controlling ccache via CMake options.Paul Robinson
Patch by Matthew Davis! Differential Revision: https://reviews.llvm.org/D41757 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@323357 91177308-0d34-0410-b5e6-96231b3b80d8
2018-01-19[cmake] Fix typo in LLVM_UTILS_INSTALL_DIR definition.Don Hinton
Differential Revision: https://reviews.llvm.org/D41804 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@322959 91177308-0d34-0410-b5e6-96231b3b80d8
2018-01-03The trunk version is now 7.0.0svnHans Wennborg
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321712 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-18[cmake] Update experimental target error messageDon Hinton
Summary: Update this error message indicate this test only ensures experimental targets were passed via LLVM_EXPERIMENTAL_TARGETS_TO_BUILD. Originally, this test validated all targets, but in r184923, it was moved after the LLVMBUILDTOOL test, which also validates all targets, making that part of the test redundant. Differential Revision: https://reviews.llvm.org/D41273 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321012 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-14[cmake] Only attempt to install MSVC system libraries on WindowsShoaib Meenai
Newer versions of CMake (I'm on 3.10, but I believe 3.9 behaves the same way) attempt to query the system for information about the VS 2017 install. Unfortunately, this query fails on non-Windows systems: cmake_host_system_information does not recognize <key> VS_15_DIR CMake isn't going to find these system libraries on non-Windows anyway (and we were previously silencing the resultant warnings in our cross-compilation toolchain), so it makes sense to just omit the attempted installation entirely on non-Windows. Differential Revision: https://reviews.llvm.org/D41220 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320724 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-12[cmake] Support moving debuginfo-tests to llvm/projectsDon Hinton
Differential Revision: https://reviews.llvm.org/D40972 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320497 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-08[llvm] Add install-distribution-strippedShoaib Meenai
This is identical to the install-distribution target, except that it strips the installed binaries. Differential Revision: https://reviews.llvm.org/D40689 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320184 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07[dump] Make LLVM_ENABLE_DUMP independent, and move to llvm-config.hDon Hinton
Summary: Make LLVM_ENABLE_DUMP independent LLVM_ENABLE_ASSERTIONS, move it to llvm-config.h, and update description. Differential Revision: https://reviews.llvm.org/D38406 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320111 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-30[llvm] Add stripped installation targetsShoaib Meenai
CMake's generated installation scripts support `CMAKE_INSTALL_DO_STRIP` to enable stripping the installed binaries. LLVM's build system doesn't expose this option to the `install-` targets, but it's useful in conjunction with `install-distribution`. Add a new function to create the install targets, which creates both the regular install target and a second install target that strips during installation. Change the creation of all installation targets to use this new function. Stripping doesn't make a whole lot of sense for some installation targets (e.g. the LLVM headers), but consistency doesn't hurt. I'll make other repositories (e.g. clang, compiler-rt) use this in a follow-up, and then add an `install-distribution-stripped` target to actually accomplish the end goal of creating a stripped distribution. I don't want to do that step yet because the creation of that target would depend on the presence of the `install-*-stripped` target for each distribution component, and the distribution components from other repositories will be missing that target right now. Differential Revision: https://reviews.llvm.org/D40620 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@319480 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-21Re-revert "Refactor debuginfo-tests."Zachary Turner
This is still breaking greendragon. At this point I give up until someone can fix the greendragon bots, and I will probably abandon this effort in favor of using a private github repository. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@318722 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-20Resubmit "Refactor debuginfo-tests" again.Zachary Turner
This was reverted due to the tests being run twice on some build bots. Each run had a slightly different configuration due to the way in which it was being invoked. This fixes the problem (albeit in a somewhat hacky way). Hopefully in the future we can get rid of the workflow of running debuginfo-tests as part of clang, and then this hack can go away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@318697 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-17Re-revert "Refactor debuginfo-tests"Zachary Turner
This is still broken because it causes certain tests to be run twice with slightly different configurations, which is wrong in some cases. You can observe this by running: ninja -nv check-all | grep debuginfo-tests And seeing that it passes clang/test and clang/test/debuginfo-tests to lit, which causes it to run debuginfo-tests twice. The fix is going to involve either: a) figuring out that we're running in this "deprecated" configuration, and then deleting the clang/test/debuginfo-tests path, which should cause it to behave identically to before, or: b) make lit smart enough that it doesn't descend into a sub-suite if that sub-suite already has a lit.cfg file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@318486 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-16Resubmit "Refactor debuginfo-tests"Zachary Turner
This was reverted due to some failures on specific darwin buildbots, the issue being that the new lit configuration was not setting the SDKROOT environment variable. We've tested a fix locally and confirmed that it works, so this patch resubmits everything with the fix applied. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@318435 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-16[globalisel][tablegen] Generate rule coverage and use it to identify ↵Daniel Sanders
untested rules Summary: This patch adds a LLVM_ENABLE_GISEL_COV which, like LLVM_ENABLE_DAGISEL_COV, causes TableGen to instrument the generated table to collect rule coverage information. However, LLVM_ENABLE_GISEL_COV goes a bit further than LLVM_ENABLE_DAGISEL_COV. The information is written to files (${CMAKE_BINARY_DIR}/gisel-coverage-* by default). These files can then be concatenated into ${LLVM_GISEL_COV_PREFIX}-all after which TableGen will read this information and use it to emit warnings about untested rules. This technique could also be used by SelectionDAG and can be further extended to detect hot rules and give them priority over colder rules. Usage: * Enable LLVM_ENABLE_GISEL_COV in CMake * Build the compiler and run some tests * cat gisel-coverage-[0-9]* > gisel-coverage-all * Delete lib/Target/*/*GenGlobalISel.inc* * Build the compiler Known issues: * ${LLVM_GISEL_COV_PREFIX}-all must be generated as a manual step due to a lack of a portable 'cat' command. It should be the concatenation of all ${LLVM_GISEL_COV_PREFIX}-[0-9]* files. * There's no mechanism to discard coverage information when the ruleset changes Depends on D39742 Reviewers: ab, qcolombet, t.p.northover, aditya_nandakumar, rovka Reviewed By: rovka Subscribers: vsk, arsenm, nhaehnle, mgorny, kristof.beyls, javed.absar, igorb, llvm-commits Differential Revision: https://reviews.llvm.org/D39747 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@318356 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-14CMake: Turn LLVM_ENABLE_LIBXML2 into a tri-state optionHans Wennborg
In addition to the current ON and OFF options, this adds the FORCE_ON option, which causes a configuration error if libxml2 cannot be used. Differential revision: https://reviews.llvm.org/D40050 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@318209 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-13Revert "Update test_debuginfo.pl script to point to new tree location."Zachary Turner
This reverts the aforementioned patch and 2 subsequent follow-ups, as some buildbots are still failing 2 tests because of it. Investigation is ongoing into the cause of the failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@318112 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-10[debuginfo-tests] Make debuginfo-tests work in a standard configuration.Zachary Turner
Previously, debuginfo-tests was expected to be checked out into clang/test and then the tests would automatically run as part of check-clang. This is not a standard workflow for handling external projects, and it brings with it some serious drawbacks such as the inability to depend on things other than clang, which we will need going forward. The goal of this patch is to migrate towards a more standard workflow. To ease the transition for build bot maintainers, this patch tries not to break the existing workflow, but instead simply deprecate it to give maintainers a chance to update the build infrastructure. Differential Revision: https://reviews.llvm.org/D39605 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317925 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-04Move the srpm, ocaml_make_directory, llvm_vcsrevision_h, and llvm-headers ↵Aaron Ballman
projects into the Misc folder on IDEs like Visual Studio rather than leave them in the root directory. NFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317416 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-02[tools] Add option to install binutils symlinksShoaib Meenai
The LLVM tools can be used as a replacement for binutils, in which case it's convenient to create symlinks with the binutils names. Add support for these symlinks in the build system. As with any other llvm tool symlinks, the user can limit the installed symlinks by only adding the desired ones to `LLVM_TOOLCHAIN_TOOLS`. Differential Revision: https://reviews.llvm.org/D39530 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317272 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-02[cmake] Remove policy conditionalsShoaib Meenai
LLVM now requires a minimum of cmake 3.4.3, and all the policies currently being set are present in that cmake version, so the conditionals will always be true and are therefore unnecessary. The movation is that the conditionals can give the false impression that the policy settings are optional, whereas for example it's necessary to set CMP0056 in order for `check_linker_flags` to operate correctly after r316972. Inline the project version and language setting in the process. Differential Revision: https://reviews.llvm.org/D39442 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317264 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-02[cmake] Switch FATAL_ERROR to SEND_ERRORShoaib Meenai
It's possible for multiple distribution components to have missing targets, and it's a lot more convenient to get all those errors in one shot rather than having to fix them individually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317148 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-31[cmake] Make check_linker_flags operate via linker flagsShoaib Meenai
`check_linker_flags` currently sets the *compiler* flags (via `CMAKE_REQUIRED_FLAGS`), and thus implicitly relies on cmake's default behavior of passing the compiler flags to the linker. This breaks when cmake's build rules have been altered to not pollute the link line with compiler flags (which can be desirable for build cleanliness). Instead, set `CMAKE_EXE_LINKER_FLAGS` explicitly and use `CMP0056` to ensure the linker flags are passed along. Additionally, since we're inside a function, we can just alter the variable directly (as the alteration will be limited to the scope of the function) rather than saving and restoring the old value. Differential Revision: https://reviews.llvm.org/D39431 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316972 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-19[CMake] Allow parent projects to use in-source buildsChris Bieneman
LLVM checks if it is performing an in-source build and then stop the build. However, this check is also triggered if LLVM is being build as part of a parent project, which prevents the parent project itself from using in-source builds. For example, CMake allows a parent project to specify the output of its subproject: add_subdirectory(llvm llvm_build) This tells CMake to conduct an out-tree build of LLVM, which without this patch will still fails because what is being tested is the parent project, not LLVM. This is fixed by using the "CURRENT" variable, which is only concerned by the CMakeLists that is actually bein processed at the moment. Tests: Ran `make check-llvm`. Patch by Henrique Jung <henriquenj_AT_gmail_DOT_com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316142 91177308-0d34-0410-b5e6-96231b3b80d8