Skip to content
  1. Oct 13, 2015
  2. Oct 12, 2015
  3. Sep 11, 2015
  4. Sep 10, 2015
  5. Sep 09, 2015
    • Joseph Tremoulet's avatar
      [CMake] Flag recursive cmake invocations for cross-compile · e5e75afe
      Joseph Tremoulet authored
      Summary:
      Cross-compilation uses recursive cmake invocations to build native host
      tools.  These recursive invocations only forward a fixed set of
      variables/options, since the native environment is generally the default.
      This change adds -DLLVM_TARGET_IS_CROSSCOMPILE_HOST=TRUE to the recursive
      cmake invocations, so that cmake files can distinguish these recursive
      invocations from top-level ones, which can explain why expected options
      are unset.
      
      LLILC will use this to avoid trying to generate its build rules in the
      crosscompile native host target (where it is not needed), which would fail
      if attempted because LLILC requires a cmake variable passed on the command
      line, which is not forwarded in the recursive invocation.
      
      Reviewers: rnk, beanz
      
      Subscribers: llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D12679
      
      llvm-svn: 247151
      e5e75afe
  6. Sep 05, 2015
    • Andrew Wilkins's avatar
      [cmake] rework LLVM_LINK_LLVM_DYLIB option handling · bb6d95fc
      Andrew Wilkins authored
      Summary:
      This diff attempts to address the concerns raised in
      http://reviews.llvm.org/D12488.
      
      We introduce a new USE_SHARED option to llvm_config,
      which, if set, causes the target to be linked against
      libLLVM.
      
      add_llvm_utility now uniformly disables linking against
      libLLVM. These utilities are not intended for distribution,
      and this keeps the option handling more centralised.
      
      llvm-shlib is now processes before any other "tools"
      subdirectories, ensuring the libLLVM target is defined
      before its dependents.
      
      One main difference from what was requested: llvm_config
      does not prune LLVM_DYLIB_COMPONENTS from the components
      passed into explicit_llvm_config. This is because the "all"
      component does something special, adding additional
      libraries (namely libLTO). Adding the component libraries
      after libLLVM should not be a problem, as symbols will be
      resolved in libLLVM first.
      
      Finally, I'm not really happy with the
      DISABLE_LLVM_LINK_LLVM option, but I'm not sure of a
      better way to get the following:
       - link all tools and shared libraries to libLLVM if
         LLVM_LINK_LLVM_DYLIB is set
       - some way of explicitly *not* doing so for utilities
         and libLLVM itself
      Suggestions for improvement here are particularly welcome.
      
      Reviewers: beanz
      
      Subscribers: llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D12590
      
      llvm-svn: 246918
      bb6d95fc
  7. Sep 01, 2015
    • Andrew Wilkins's avatar
      Enable linking tools, shared libraries against libLLVM · 9211396d
      Andrew Wilkins authored
      Summary:
      Three closely related changes, to have a mode in which we link all
      executables and shared libraries against libLLVM. 
      
      1. Add a new LLVM_LINK_LLVM_DYLIB cmake option, which, when ON, will link
         executables and shared libraries against libLLVM. For this to work, it
         is necessary to also set LLVM_BUILD_LLVM_DYLIB and LLVM_DYLIB_EXPORT_ALL.
      
         It is not strictly necessary to set LLVM_DISABLE_LLVM_DYLIB_ATEXIT, but
         we also default to OFF in this mode, or tools tend to misbehave (e.g.
         stdout may not flush on exit when output is buffered.)
      
         llvm-config and Tablegen do not use libLLVM, as they are dependencies of
         libLLVM.
      
      2. Modify llvm-go to take a new flag, "linkmode=component-libs|dylib".
         Depending on which one is passed (default is component-libs), we link
         with the individual libraries or libLLVM respectively. We pass in dylib
         when LLVM_LINK_LLVM_DYLIB is ON.
      
      3. Fix LLVM_DYLIB_EXPORT_ALL on Linux, and expand the symbols exported to
         actually export all. Don't strip leading underscore from symbols on Linux,
         and make sure we get all exported symbols and weak-with-default symbols
         ("W" in nm output). Without these changes, passes won't load because
         the "Annotate..." symbols defined in lib/Support/Valigrind.cpp are not
         found.
      
      Testing:
       - Ran default build ("ninja") with LLVM, clang, compiler-rt, llgo, lldb.
       - Ran "check", "check-clang", "check-tsan", "check-libgo" targets. I've
         never had much success with LLDB tests, and llgoi is currently broken
         so check-llgo fails for an unrelated reason.
       - Ran "lldb" to ensure it loads.
      
      Reviewers: chandlerc, beanz, pcc, rnk
      
      Subscribers: rnk, chapuni, sylvestre.ledru, llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D12488
      
      llvm-svn: 246527
      9211396d
  8. Aug 11, 2015
  9. Aug 10, 2015
  10. Aug 08, 2015
    • Justin Bogner's avatar
      cmake: Error on invalid CMAKE_BUILD_TYPE · 55f097fa
      Justin Bogner authored
      Apparently if you make a typo in the argument to CMAKE_BUILD_TYPE,
      cmake silently accepts this but doesn't apply any particular build
      type to your build. This means you get a build that doesn't really
      make any sense - it's sort of a debug build with asserts disabled.
      
      Error out instead.
      
      llvm-svn: 244406
      55f097fa
  11. Aug 06, 2015
  12. Jul 28, 2015
  13. Jul 15, 2015
  14. Jun 22, 2015
  15. Jun 13, 2015
  16. Jun 09, 2015
  17. Jun 05, 2015
  18. Jun 04, 2015
    • Chris Bieneman's avatar
      [CMake] Fixing the check for Ninja · 35b7f81f
      Chris Bieneman authored
      Enabling Ninja Job Pools needs to be dependent on the CMAKE_MAKE_PROGRAM not the CMAKE_GENERATOR. There are generators (like "Sublime Text 2 - Ninja") that also generate ninja build files. Basing of the CMAKE_MAKE_PROGRAM is the best future-proof way to handle this.
      
      llvm-svn: 239076
      35b7f81f
    • Evgeniy Stepanov's avatar
      Fix the check for Ninja in the CMake build. · 999b8345
      Evgeniy Stepanov authored
      The current check never passes, because CMAKE_MAKE_PROGRAM, at least on Linux,
      includes the full path to the "ninja" binary; this effectively disables
      compile/link jobs pools.
      
      Use CMAKE_GENERATOR STREQUAL "Ninja" as a more reliable check.
      
      llvm-svn: 239069
      999b8345
    • Chris Bieneman's avatar
      [CMake] Add warning for using compile and link pools on unsupported versions... · 762cbe70
      Chris Bieneman authored
      [CMake] Add warning for using compile and link pools on unsupported versions of CMake or non-ninja generators.
      
      Summary: I've gotten feedback from users on CMake 2.8 that the compile and link pool options were not working. This is expected so I'm adding a warning so we can report invalid configurations to users.
      
      Reviewers: eugenis
      
      Reviewed By: eugenis
      
      Subscribers: llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D10193
      
      llvm-svn: 239044
      762cbe70
    • Daniel Sanders's avatar
      Include BPF target in CMake builds. · 51867c63
      Daniel Sanders authored
      llvm-svn: 239035
      51867c63
  19. May 14, 2015
  20. Apr 13, 2015
  21. Apr 07, 2015
  22. Mar 27, 2015
    • Derek Schuff's avatar
      CMake: enable installing utils · ef9928e3
      Derek Schuff authored
      Added a new boolean CMake flag, LLVM_INSTALL_UTILS. When set,
      the 'install' target will include in the bin directory the
      utils binaries - e.g. FileCheck. This mirrors the autoconfig
      behavior.
      
      Test Plan:
      Locally verified that utils binaries are copied when flag is set,
      and not copied when flag is not set.
      
      Reviewers: jfb, dschuff, beanz
      
      Reviewed By: beanz
      
      Subscribers: llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D8587
      
      Patch by Mircea Trofin
      
      llvm-svn: 233385
      ef9928e3
  23. Mar 26, 2015
    • Sanjoy Das's avatar
      [ADT][CMake][AutoConf] Fail-fast iterators for DenseMap · 8ce6499b
      Sanjoy Das authored
      Summary:
      This patch is an attempt at making `DenseMapIterator`s "fail-fast".
      Fail-fast iterators that have been invalidated due to insertion into
      the host `DenseMap` deterministically trip an assert (in debug mode)
      on access, instead of non-deterministically hitting memory corruption
      issues.
      
      Enabling fail-fast iterators breaks the LLVM C++ ABI, so they are
      predicated on `LLVM_ENABLE_ABI_BREAKING_CHECKS`.
      `LLVM_ENABLE_ABI_BREAKING_CHECKS` by default flips with
      `LLVM_ENABLE_ASSERTS`, but can be clamped to ON or OFF using the CMake /
      autoconf build system.
      
      Reviewers: chandlerc, dexonsmith, rnk, zturner
      
      Subscribers: llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D8351
      
      llvm-svn: 233310
      8ce6499b
  24. Mar 25, 2015
    • Justin Bogner's avatar
      test: Fix the dependencies for the check-llvm-* targets · 35b4b1a4
      Justin Bogner authored
      In r233009 we gained specific check-llvm-* build targets for invoking
      specific parts of the test suite, but they were copying the
      dependencies for check-all, rather than just listing the dependencies
      for check-llvm.
      
      This moves the creation of these targets next to the check-llvm
      target, and uses that target's configuration rather than the check-all
      config.
      
      llvm-svn: 233174
      35b4b1a4
  25. Mar 23, 2015
  26. Mar 18, 2015
    • Chris Bieneman's avatar
      Revert "Generate targets for each lit suite." · 244bbf8b
      Chris Bieneman authored
      This change broke Polly. I'll track down the failure when I have a chance and re-apply the change.
      
      llvm-svn: 232676
      244bbf8b
    • Chris Bieneman's avatar
      Generate targets for each lit suite. · 86ee1515
      Chris Bieneman authored
      Summary:
      This change makes CMake scan for lit suites and generate a target for each lit test suite. The targets follow the format check-<project>-<suite path>.
      
      For example:
      check-llvm-unit - Runs the LLVM unit tests
      check-llvm-codegen-arm - Runs the ARM codeine tests
      
      Note: These targets are not generated during multi-configuration generators (i.e. Xcode and Visual Studio) because target clutter impacts UI usability.
      
      Reviewers: chandlerc
      
      Subscribers: aemerson, llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D8380
      
      llvm-svn: 232671
      86ee1515
    • Reid Kleckner's avatar
      CMake: Disable ENABLE_EXPORTS for executables with MSVC · 3e8c445c
      Reid Kleckner authored
      The MSVC linker won't produce a .lib file for an executable that doesn't
      export anything, and LLVM doesn't maintain dllexport annotations or .def
      files listing all C++ symbols. It also doesn't support exporting all
      symbols, like binutils ld.
      
      CMake 3.2 changed the Ninja generator to list both the .exe and .lib
      files as outputs of executable build targets. Ninja would always re-link
      executables with ENABLE_EXPORTS because the .lib output file was not
      present, and therefore the target was out of date.
      
      llvm-svn: 232662
      3e8c445c
  27. Mar 10, 2015
  28. Mar 07, 2015
  29. Feb 27, 2015
  30. Feb 25, 2015
    • Zachary Turner's avatar
      [CMake] Set policy CMP0051 to OLD globally. · b7e41581
      Zachary Turner authored
      When you use generator expressions in a library sources list,
      and then later access the SOURCES property, the OLD behavior
      (CMake 3.0 and earlier) would not include these expressions in
      the SOURCES property.  The NEW behavior (starting in CMake 3.1)
      is that they do include the generator expressions in the SOURCES
      property.
      
      Differential Revision: http://reviews.llvm.org/D7870
      Reviewed By: Chris Bieneman
      
      llvm-svn: 230396
      b7e41581
Loading