Commit Graph

1390 Commits

Author SHA1 Message Date
JF Bastien 7ab3c4f085 Revert "Bump minimum toolchain version"
Reverting D57264 again, it looks like we're down to two bots that need fixing:

polly-amd64-linux
polly-arm-linux

They both have old versions of libstdc++ and recent clang.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352954 91177308-0d34-0410-b5e6-96231b3b80d8
2019-02-02 06:01:12 +00:00
JF Bastien d9a8f328e9 Bump minimum toolchain version
Summary:
The RFC on moving past C++11 got good traction:
  http://lists.llvm.org/pipermail/llvm-dev/2019-January/129452.html

This patch therefore bumps the toolchain versions according to our policy:
  llvm.org/docs/DeveloperPolicy.html#toolchain

Subscribers: mgorny, jkorous, dexonsmith, llvm-commits, mehdi_amini, jyknight, rsmith, chandlerc, smeenai, hans, reames, lattner, lhames, erichkeane

Differential Revision: https://reviews.llvm.org/D57264

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352951 91177308-0d34-0410-b5e6-96231b3b80d8
2019-02-02 05:15:34 +00:00
Stefan Granitz 4ce5f86edd [CMake] Add install targets for utilities to LLVM exports if LLVM_INSTALL_UTILS=ON
Summary: D56606 was only appending target names to the `LLVM_EXPORTS`/`LLVM_EXPORTS_BUILDTREE_ONLY` properties. Targets showed up correctly in the build-tree `LLVMExports.cmake`, but they were missing in the installed one (as we found in https://bugs.llvm.org/show_bug.cgi?id=40443), because install did not register them explicitly.

Reviewers: mgorny, smeenai, beanz, gottesmm, dschuff, tstellar, serge-sans-paille

Reviewed By: smeenai

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D57383

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352869 91177308-0d34-0410-b5e6-96231b3b80d8
2019-02-01 13:08:09 +00:00
JF Bastien 75542197bc Revert "Bump minimum toolchain version"
Looks like we still have a few bots that are sad. Let try to get them fixed!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352835 91177308-0d34-0410-b5e6-96231b3b80d8
2019-02-01 04:44:39 +00:00
JF Bastien 67afd3256e Bump minimum toolchain version
Summary:
The RFC on moving past C++11 got good traction:
  http://lists.llvm.org/pipermail/llvm-dev/2019-January/129452.html

This patch therefore bumps the toolchain versions according to our policy:
  llvm.org/docs/DeveloperPolicy.html#toolchain

Subscribers: mgorny, jkorous, dexonsmith, llvm-commits, mehdi_amini, jyknight, rsmith, chandlerc, smeenai, hans, reames, lattner, lhames, erichkeane

Differential Revision: https://reviews.llvm.org/D57264

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352834 91177308-0d34-0410-b5e6-96231b3b80d8
2019-02-01 04:33:21 +00:00
JF Bastien d217469872 Revert "Bump minimum toolchain version"
A handful of bots are still breaking, either because I missed them in my audit,
they were offline, or something else. I'm contacting their authors, but I'll
revert for now and re-commit later.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352814 91177308-0d34-0410-b5e6-96231b3b80d8
2019-01-31 23:29:39 +00:00
JF Bastien ba55936f14 Bump minimum toolchain version
Summary:
The RFC on moving past C++11 got good traction:
  http://lists.llvm.org/pipermail/llvm-dev/2019-January/129452.html

This patch therefore bumps the toolchain versions according to our policy:
  llvm.org/docs/DeveloperPolicy.html#toolchain

Subscribers: mgorny, jkorous, dexonsmith, llvm-commits, mehdi_amini, jyknight, rsmith, chandlerc, smeenai, hans, reames, lattner, lhames, erichkeane

Differential Revision: https://reviews.llvm.org/D57264

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352811 91177308-0d34-0410-b5e6-96231b3b80d8
2019-01-31 23:13:10 +00:00
Shoaib Meenai fafbf5786f [cmake] Note future cleanup in comment. NFC
CMake 3.6 introduced CMAKE_TRY_COMPILE_PLATFORM_VARIABLES, which solves
precisely the problem that necessitated init_user_prop, so we can switch
over whenever we bump our minimum CMake requirement.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352790 91177308-0d34-0410-b5e6-96231b3b80d8
2019-01-31 20:32:45 +00:00
Petr Hosek ef0c5f5d9a Revert "[CMake] Unify scripts for generating VCS headers"
This reverts commits r352729 and r352731: this broke Sanitizer Windows bots

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352733 91177308-0d34-0410-b5e6-96231b3b80d8
2019-01-31 07:12:43 +00:00
Petr Hosek 963f6097b6 [CMake] Unify scripts for generating VCS headers
Previously, there were two different scripts for generating VCS headers:
one used by LLVM and one used by Clang. They were both similar, but
different. They were both broken in their own ways, for example the one
used by Clang didn't properly handle monorepo resulting in an incorrect
version information reported by Clang.

This change unifies two the scripts by introducing a new script that's
used from both LLVM and Clang, ensures that the new script supports both
monorepo and standalone SVN and Git setups, and removes the old scripts.

Differential Revision: https://reviews.llvm.org/D57063

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352729 91177308-0d34-0410-b5e6-96231b3b80d8
2019-01-31 06:21:01 +00:00
Stefan Granitz a47be0e7cd [CMake] Accept ENTITLEMENTS in llvm_add_library()
Summary: We added support for code signing entitlements in add_llvm_executable() with D54443. In the future it would be useful to have this functionality available also for libraries.

Reviewers: beanz, bogner

Reviewed By: bogner

Subscribers: mgorny, llvm-commits, lldb-commits, #lldb

Differential Revision: https://reviews.llvm.org/D57334

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352628 91177308-0d34-0410-b5e6-96231b3b80d8
2019-01-30 15:10:08 +00:00
Michal Gorny 33a23da87f [cmake] Fix get_llvm_lit_path() to respect LLVM_EXTERNAL_LIT always
Refactor the get_llvm_lit_path() logic to respect LLVM_EXTERNAL_LIT,
and require the fallback to be defined explicitly
as LLVM_DEFAULT_EXTERNAL_LIT. This fixes building libcxx standalone
after r346888.

The old logic was using LLVM_EXTERNAL_LIT both as user-defined cache
variable and an optional pre-definition of default value from caller
(e.g. libcxx). It included a hack to make this work by assigning
the value back and forth but it was fragile and stopped working
in libcxx.

The new logic is simpler and more transparent. Default value is
provided in a separate variable, and used only when user-specified
variable is empty (i.e. not overriden).

Differential Revision: https://reviews.llvm.org/D57282

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352374 91177308-0d34-0410-b5e6-96231b3b80d8
2019-01-28 15:16:03 +00:00
Serge Guelton 9e64837cfe Fix llvm::is_trivially_copyable portability issues
llvm::is_trivially_copyable portability is verified at compile time using
std::is_trivially_copyable as the reference implementation.

Unfortunately, the latter is not available on all platforms, so introduce
a proper configure check to detect if it is available on the target platform.

In a similar manner, std::is_copy_assignable is not fully supported for gcc4.9.
Provide a portable (?) implementation instead.

Differential Revision: https://reviews.llvm.org/D57018


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351820 91177308-0d34-0410-b5e6-96231b3b80d8
2019-01-22 13:48:55 +00:00
JF Bastien d1086040f5 Document toolchain update policy
Summary:
Capture the current agreed-upon toolchain update policy based on the following
discussions:

  - LLVM dev meeting 2018 BoF "Migrating to C++14, and beyond!"
    llvm.org/devmtg/2018-10/talk-abstracts.html#bof3
  - A Short Policy Proposal Regarding Host Compilers
    lists.llvm.org/pipermail/llvm-dev/2018-May/123238.html
  - Using C++14 code in LLVM (2018)
    lists.llvm.org/pipermail/llvm-dev/2018-May/123182.html
  - Using C++14 code in LLVM (2017)
    lists.llvm.org/pipermail/llvm-dev/2017-October/118673.html
  - Using C++14 code in LLVM (2016)
    lists.llvm.org/pipermail/llvm-dev/2016-October/105483.html
  - Document and Enforce new Host Compiler Policy
    llvm.org/D47073
  - Require GCC 5.1 and LLVM 3.5 at a minimum
    llvm.org/D46723

Subscribers: jkorous, dexonsmith, llvm-commits

Differential Revision: https://reviews.llvm.org/D56819

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351765 91177308-0d34-0410-b5e6-96231b3b80d8
2019-01-21 23:53:52 +00:00
Dylan McKay 953bf32315 [AVR] Allow AVR to be explicitly set as the default target triple
This extends the CMake cross compilation logic so that AVR can be set as
the default target triple, and thus the generic codegen tests can be
run.

This used to be possible on AVR; the CMake configuration files have
since been changed.

With this patch, 'cmake -DLLVM_DEFAULT_TARGET_TRIPLE=avr-unknown-unknown' can
be passed on the command line, making the `-mcpu` argument redundant to
'llc' and friends.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351678 91177308-0d34-0410-b5e6-96231b3b80d8
2019-01-20 11:12:39 +00:00
JF Bastien 0a9f6969d5 [NFC] Factor out + document build requirements
Summary: This change factors out compiler checking / warning, and documents LLVM_FORCE_USE_OLD_TOOLCHAIN. It doesn't introduce any functional changes nor policy changes, these will come late.

Subscribers: mgorny, jkorous, dexonsmith, llvm-commits

Differential Revision: https://reviews.llvm.org/D56799

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351387 91177308-0d34-0410-b5e6-96231b3b80d8
2019-01-16 22:22:38 +00:00
Stefan Granitz 3436463bf7 [CMake] Export utility targets to the build/install tree depending on LLVM_BUILD/INSTALL_UTILS
Summary:
Allow external projects to import test-related targets like FileCheck, count, not etc. and query binary paths, properties, etc.
This would be useful for LLDB, because it reduces the difference between in-tree vs. standalone builds and simplifies CMake logic.

Reviewers: chapuni, gottesmm, beanz

Reviewed By: beanz

Subscribers: mgorny, lldb-commits, llvm-commits, #lldb

Differential Revision: https://reviews.llvm.org/D56606

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350959 91177308-0d34-0410-b5e6-96231b3b80d8
2019-01-11 19:34:34 +00:00
Stefan Granitz 9128e2a74d [CMake] Use XCODE_ATTRIBUTE properties for code signing and entitlements in Xcode
Summary: A post-commit comment to D55116 amended that this was the correct way for code signing in Xcode.

Reviewers: beanz

Reviewed By: beanz

Subscribers: mgorny, llvm-commits

Differential Revision: https://reviews.llvm.org/D55816

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350383 91177308-0d34-0410-b5e6-96231b3b80d8
2019-01-04 09:22:32 +00:00
Tom Stellard 0e521aca45 Fix mingw build failures caused by r349839
Reviewers: mstorsjo

Subscribers: mgorny, llvm-commits

Differential Revision: https://reviews.llvm.org/D56004

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349990 91177308-0d34-0410-b5e6-96231b3b80d8
2018-12-22 03:43:08 +00:00
Tom Stellard 61d8223a43 Fix Windows build failures caused by r349839
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349846 91177308-0d34-0410-b5e6-96231b3b80d8
2018-12-20 22:36:02 +00:00
Tom Stellard 69e8318af3 cmake: Remove add_llvm_loadable_module()
Summary:
This function is very similar to add_llvm_library(),  so this patch merges it
into add_llvm_library() and replaces all calls to add_llvm_loadable_module(lib ...)
with add_llvm_library(lib MODULE ...)

Reviewers: philip.pfaffe, beanz, chandlerc

Reviewed By: philip.pfaffe

Subscribers: chapuni, mgorny, llvm-commits

Differential Revision: https://reviews.llvm.org/D51748

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349839 91177308-0d34-0410-b5e6-96231b3b80d8
2018-12-20 22:04:08 +00:00
Alexandre Ganea 97a44c8311 Re-land "Fix MSVC dependency issue between Clang-tablegen and LLVM-tablegen"
(was reverted by mistake)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349672 91177308-0d34-0410-b5e6-96231b3b80d8
2018-12-19 19:42:21 +00:00
Alexandre Ganea a7c670436d Revert r349517 "[CMake] Default options for faster executables on MSVC"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349656 91177308-0d34-0410-b5e6-96231b3b80d8
2018-12-19 18:01:42 +00:00
Alexandre Ganea 80ebdb9141 Revert r349517 "[CMake] Default options for faster executables on MSVC"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349654 91177308-0d34-0410-b5e6-96231b3b80d8
2018-12-19 17:57:31 +00:00
Nico Weber 0bc70d331a Let TableGen write output only if it changed, instead of doing so in cmake, attempt 2
This relands r330742:
"""
Let TableGen write output only if it changed, instead of doing so in cmake.

Removes one subprocess and one temp file from the build for each tablegen
invocation.

No intended behavior change.
"""

In particular, if you see rebuilds after this change that you didn't see
before this change, that's unintended and it's fine to revert this change
again (but let me know).

r330742 got reverted because some people reported that llvm-tblgen ran on every
build after it.  This could happen if the depfile output got deleted without
deleting the main .inc output. To fix, make TableGen always write the depfile,
but keep writing the main .inc output only if it has changed. This matches what
we did in cmake before.

Differential Revision: https://reviews.llvm.org/D55842


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349624 91177308-0d34-0410-b5e6-96231b3b80d8
2018-12-19 13:35:53 +00:00
Alexandre Ganea afdba0b9d4 Re-land "Fix MSVC dependency issue between Clang-tablegen and LLVM-tablegen"
Previously, when compiling Visual Studio targets, one could see random build errors. This was caused by tablegen projects using the same build folders.
This workaround simply chains tablegen projects.

Differential Revision: https://reviews.llvm.org/D54153


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349596 91177308-0d34-0410-b5e6-96231b3b80d8
2018-12-19 01:30:29 +00:00
Alexandre Ganea 3a364fda92 Revert r349541 (Fix MSVC dependency issue between Clang-tablegen and LLVM-tablegen)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349545 91177308-0d34-0410-b5e6-96231b3b80d8
2018-12-18 21:39:40 +00:00
Alexandre Ganea 76d00595dd Fix MSVC dependency issue between Clang-tablegen and LLVM-tablegen
Previously, when compiling Visual Studio targets, one could see random build errors. This was caused by tablegen projects using the same build folders.
This workaround simply chains tablegen projects.

Differential Revision: https://reviews.llvm.org/D54153


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349541 91177308-0d34-0410-b5e6-96231b3b80d8
2018-12-18 21:03:06 +00:00
Alexandre Ganea daedb463ee [CMake] Default options for faster executables on MSVC
- Disable incremental linking by default. /INCREMENTAL adds extra thunks in the EXE, which makes execution slower.
- Set /MT (static CRT lib) by default instead of CMake's default /MD (dll CRT lib). The previous default /MD makes all DLL functions to be thunked, thus making execution slower (memcmp, memset, etc.)
- Adds LLVM_ENABLE_INCREMENTAL_LINK which is set to OFF by default.

Differential revision: https://reviews.llvm.org/D55056


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349517 91177308-0d34-0410-b5e6-96231b3b80d8
2018-12-18 18:17:00 +00:00
Stefan Granitz 1215e65a78 [CMake] llvm_codesign workaround for Xcode double-signing errors
Summary:
When using Xcode to build LLVM with code signing, the post-build rule is executed even if the actual build-step was skipped. This causes double-signing errors. We can currently only avoid it by passing the `--force` flag.

Plus some polishing for my previous patch D54443.

Reviewers: beanz, kubamracek

Reviewed By: kubamracek

Subscribers: #lldb, mgorny, llvm-commits

Differential Revision: https://reviews.llvm.org/D55116

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349070 91177308-0d34-0410-b5e6-96231b3b80d8
2018-12-13 18:51:19 +00:00
Stefan Granitz 11350ce5c4 [CMake] Add support for NO_INSTALL_RPATH argument in llvm_add_library()
Summary:
Allow clients to suppress setup of default RPATHs in designated library targets. This is used in LLDB when emitting liblldb as a framework bundle, which itself doesn't load further RPATH-dependent libraries.
This follows the approach in add_llvm_executable().

Reviewers: aprantl, JDevlieghere, davide, friss

Reviewed By: aprantl

Subscribers: mgorny, lldb-commits, llvm-commits, #lldb

Differential Revision: https://reviews.llvm.org/D55316

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@348573 91177308-0d34-0410-b5e6-96231b3b80d8
2018-12-07 09:12:54 +00:00
Shoaib Meenai 7fa8f24410 [cmake] Clean up add_llvm_subdirectory
I found the pattern of setting the project_BUILD variable to OFF after
processing the project to be pretty confusing. Using global properties
to explicitly keep track of whether a project has been processed or not
seems much more straightforward, and it also allows us to convert the
macro into a function (which is required for the early return).

Factor the project+type+name combination out into a variable while I'm
here, since it's used a whole bunch of times.

I don't believe this should result in any functional changes.

Differential Revision: https://reviews.llvm.org/D55104

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@348180 91177308-0d34-0410-b5e6-96231b3b80d8
2018-12-03 20:05:11 +00:00
Stefan Granitz 674e50443a [CMake] Add LLVM_EXTERNALIZE_DEBUGINFO_OUTPUT_DIR for custom dSYM target directory on Darwin
Summary: When using `LLVM_EXTERNALIZE_DEBUGINFO` in LLDB, the default dSYM location for the shared library in LLDB.framework is inside the framework bundle. With `LLVM_EXTERNALIZE_DEBUGINFO_OUTPUT_DIR` we can easily fix that. I consider it a useful feature to be able to set a global output directory for external debug info (rather then having a target-specific one). Only implemented for Darwin so far.

Reviewers: beanz, aprantl

Reviewed By: aprantl

Subscribers: mgorny, aprantl, #lldb, lldb-commits, llvm-commits

Differential Revision: https://reviews.llvm.org/D55114

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@348118 91177308-0d34-0410-b5e6-96231b3b80d8
2018-12-03 10:42:32 +00:00
Shoaib Meenai c574e6780f [CMake] build correctly if build path contains whitespace
The add_llvm_symbol_exports function in AddLLVM.cmake creates command
line link flags with paths containing CMAKE_CURRENT_BINARY_DIR, but that
will break if CMAKE_CURRENT_BINARY_DIR contains whitespace. This patch
adds quotes to those paths.

Fixes PR39843.

Patch by John Garvin.

Differential Revision: https://reviews.llvm.org/D55081

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@347937 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-30 00:30:53 +00:00
Argyrios Kyrtzidis 802db564f9 [Support/FileSystem] Add sub-second precision for atime/mtime of sys::fs::file_status on unix platforms
Summary:
getLastAccessedTime() and getLastModificationTime() provided times in nanoseconds but with only 1 second resolution, even when the underlying file system could provide more precise times than that.
These changes add sub-second precision for unix platforms that support improved precision.

Also add some comments to make sure people are aware that the resolution of times can vary across different file systems.

Reviewers: labath, zturner, aaron.ballman, kristina

Reviewed By: aaron.ballman, kristina

Subscribers: lebedev.ri, mgorny, kristina, llvm-commits

Differential Revision: https://reviews.llvm.org/D54826

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@347530 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-26 00:03:39 +00:00
Haojian Wu a307da2c56 Revert r343473 "Move llvm util dependencies from clang-tools-extra to add_lit_target."
Summary:
It will cause test tools `FileCheck`, `count`, `not` being built blindly, these
dependencies should move back to clang-tools-extra.

Reviewers: mgorny

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D54797

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@347448 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-22 10:14:24 +00:00
Aaron Ballman 2bb2152d87 Silence C4709 in MSVC because it is buggy.
The diagnostic will trigger on code that does not have any comma operator, but instead default-constructs an object with an explicitly defaulted constructor as the array index argument.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@347345 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-20 20:50:04 +00:00
Kamil Rytarowski 8f78249219 Swap order of discovering of -ltinfo and -lterminfo
Summary:
NetBSD ships with native curses(3) and -ltinfo is a part of ncurses.
Set -lterminfo before -ltinfo, as it allows to prioritize native curses
libraries. Mixing curses and ncurses does not work well, especially
in software built on top of llvm.

Original patch by Ryo Onodera (NetBSD) in pkgsrc.

Reviewers: labath, dim, mgorny

Reviewed By: dim, mgorny

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D54650

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@347156 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-18 12:13:51 +00:00
Stefan Granitz 8865b2626a [CMake] Accept ENTITLEMENTS in add_llvm_executable and llvm_codesign
Summary: Allow code-signing with entitlements. FORCE may be used to avoid an error when replacing existing signatures.

Reviewers: beanz, bogner

Reviewed By: beanz

Subscribers: mgorny, llvm-commits, lldb-commits

Differential Revision: https://reviews.llvm.org/D54443

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@347068 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-16 18:10:36 +00:00
Petr Hosek 012d9c2feb [CMake] Support cross-compiling with multi-stage builds
When using multi-stage builds, we would like support cross-compilation.
Example is 2-stage build when the first stage is compiled for host while
the second stage is compiled for the target.

Normally, the second stage would be also used for compiling runtimes,
but that's not possible when cross-compiling, so we use the first stage
compiler instead. However, we still want to use the second stage paths.
To do so, we set the -resource-dir of the first stage compiler to point
to the resource directory of the second stage.

We also need compiler tools that support the target architecture. These
tools are not guaranteed to be present on the host, but in case of
multi-stage build, we can build these tools in the first stage.

Differential Revision: https://reviews.llvm.org/D54461

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@347025 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-16 04:46:48 +00:00
David Carlier 7ef18df309 Fix DragonFlyBSD linkage issue.
environ global failed on LTO linkage step.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346593 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-10 18:47:00 +00:00
Francis Visoiu Mistrih 040e4d75d3 [CMake] Expose opt-remark tooling through libOptRemarks.dylib
* Create an install target for it
* Add it under tools/opt-remarks
* Add an export file for the dylib
* Install the llvm-c/OptRemarks.h header
* Add an API to query its version

rdar://45458839

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346127 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-05 11:57:44 +00:00
Reid Kleckner 3c3bf73840 Enable -Wimplicit-fallthrough for clang as well as GCC
All instances of this warning should already be fixed across all LLVM
subprojects, at least on Linux.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@345887 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-01 20:31:44 +00:00
Martin Storsjo 0fd37a0970 [MinGW] Enable large file for mingw-w64
64-bit mingw doesn't define _FILE_OFFSET_BITS=64 by default.

Differential Revision: https://reviews.llvm.org/D53569

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@345131 91177308-0d34-0410-b5e6-96231b3b80d8
2018-10-24 12:22:12 +00:00
Chris Bieneman 11b69c205d [CMake] Use LLVM_ENABLE_IDE instead of CMAKE_CONFIGURATION_TYPES
There are several places where we use CMAKE_CONFIGURATION_TYPES to determine if we are using an IDE generator and in turn decide not to generate some of the convenience targets (like all the install-* and check-llvm-* targets). This decision is made because IDEs don't always deal well with the thousands of targets LLVM can generate.

This approach does not work for Visual Studio 15's new CMake integration. Because VS15 uses a Ninja generator, it isn't a multi-configuration build, and generating all these extra targets mucks up the UI and adds little value.

With this change we still don't generate these targets by default for Visual Studio and Xcode generators, and LLVM_ENABLE_IDE becomes a switch that can be enabled on the VS15 CMake builds, to improve the IDE experience.

This is a re-land of r340435, with a few minor fix-ups. The issues causing the revert were addressed in r344218, r344219, and r344553.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@344555 91177308-0d34-0410-b5e6-96231b3b80d8
2018-10-15 21:20:02 +00:00
Chris Bieneman b34f2ee301 [CMake] Change the default value of LLVM_ENABLE_IDE
There really aren't any generator behaviors that we need to take `CMAKE_EXTRA_GENERATOR` into account for. Where we need to take different behaviors for IDEs is mostly in enabling or disabling certain build system features that are optional but trip up the IDE UIs. Like the generation of lots of utility targets.

By changing the LLVM_ENABLE_IDE default to only being on for multi-configuration generators, we allow gating where it will impact the UI presentation, while also supporting optionally disabling the generation if your tooling workflow encounters problems. Presently being able to manually disable extra target generation is useful for Visual Studio 2017's CMake integration where the IDE has trouble displaying and working with the large number of optional targets.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@344553 91177308-0d34-0410-b5e6-96231b3b80d8
2018-10-15 21:14:19 +00:00
Chris Bieneman b1493403a4 [CMake] Temporarily remove the LLVM_ENABLE_IDE option
All uses of this option have been removed, and the intent is to change the purpose and default value of this option. To prevent it from having impacts on users, this patch temporarily removes the option and purges it from CMake caches. In a few days, once this has propagated to contributors I will re-introduce the option with the new default value.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@344219 91177308-0d34-0410-b5e6-96231b3b80d8
2018-10-11 04:06:14 +00:00
Chris Bieneman 6fb010f388 [CMake] Unconditionally add .h and .td files to target sources
Previously adding header and table gen files was conditional on using an IDE. Since these files have the `HEADER_FILE_ONLY` attribute applied they are ignored as sources by all non-IDE generators, so there is really no reason not to include them.

Additionally having the CMake always include these files allows the CMake-server to include them in the sources list for targets, which is valuable to anyone using CMake-server integrated tools.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@344218 91177308-0d34-0410-b5e6-96231b3b80d8
2018-10-11 04:02:53 +00:00
Chris Bieneman 8313c3b553 [CMake] NFC. Updating documentation on options
The Ninja pool options are only supported with the Ninja generator and
should be called out as such.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@344188 91177308-0d34-0410-b5e6-96231b3b80d8
2018-10-10 21:36:12 +00:00
Shoaib Meenai 24abcf4cda [cmake] Also create lowercase extension WinSDK symlinks
Some projects rely on using libraries from the Windows SDK with their
original casing, just with a lowercase extension. E.g. the WinSock2 lib
is named WS2_32.Lib in the Windows SDK, and we would previously only
create a ws2_32.lib symlink for it (i.e. all lowercase). Also create a
WS2_32.lib symlink (i.e. original casing with lowercase extension) to
cover users of this casing. As a drive-by fix, only create these
symlinks when they differ from the original name to reduce the amount of
noise in the library symlinks directory.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@343832 91177308-0d34-0410-b5e6-96231b3b80d8
2018-10-05 00:08:27 +00:00