Skip to content
  1. Jul 19, 2019
    • Nathan Lanza's avatar
      [cmake] Convert the NATIVE llvm build process to be project agnostic · c9477949
      Nathan Lanza authored
      lldb recently added a tablegen tool. In order to properly cross compile
      lldb standalone there needs to be a mechanism to generate the native
      lldb build, analgous to what's done for the NATIVE llvm build. Thus,
      we can simply modify this setup to allow for any project to be used.
      
      llvm-svn: 366514
      c9477949
  2. Jul 18, 2019
    • Jonas Devlieghere's avatar
      [CMake] Don't set Python_ADDITIONAL_VERSIONS · a5359b1b
      Jonas Devlieghere authored
      Until recently, Python_ADDITIONAL_VERSIONS was used to limit LLVM's
      Python support to 2.7. Now that both LLVM and LLDB both support Python
      3, there's no longer a need to put an arbitrary limit on this.
      
      However, instead of removing the variable, r365692 expanded the list,
      which has the (presumably unintentional) side-effect of expression
      preference for Python 3.
      
      Instead, as Michal proposed in the original code review, we should just
      not set the list at all, and let CMake pick whatever Python interpreter
      you have in your path.
      
      This patch removes the Python_ADDITIONAL_VERSIONS variable in llvm,
      clang and lld. I've also updated the docs with the default behavior and
      how to force a different Python version to be used.
      
      Differential revision: https://reviews.llvm.org/D64894
      
      llvm-svn: 366447
      a5359b1b
    • Hans Wennborg's avatar
      Bump the trunk version to 10.0.0svn · 8f5b44ae
      Hans Wennborg authored
      and clear the release notes.
      
      llvm-svn: 366427
      8f5b44ae
    • Alex Bradbury's avatar
      [RISCV] Re-land r366331 d RISCV to LLVM_ALL_TARGETS · 4e8d07fd
      Alex Bradbury authored
      *San flagged issues should be now be addressed.
      
      llvm-svn: 366399
      4e8d07fd
  3. Jul 17, 2019
  4. Jul 10, 2019
  5. Jul 08, 2019
    • Chris Bieneman's avatar
      Fix issues building libraries as more than one type with Xcode · 7023bdc4
      Chris Bieneman authored
      Summary:
      CMake+Xcode doesn't seem to handle targets that only have object
      sources. This patch works around that limitation by adding a dummy
      soruce file to any library target that is generated by llvm_add_library
      when object libraries are generated.
      
      Object libraries are generated whenever llvm_add_library is passed more
      than one library type, which is now the default case for clang static
      libraries (which generate STATIC and OBJECT libraries).
      
      Reviewers: zturner, compnerd, joanlluch
      
      Reviewed By: joanlluch
      
      Subscribers: joanlluch, xbolva00, mgorny, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D64300
      
      llvm-svn: 365365
      7023bdc4
  6. Jun 14, 2019
    • Saleem Abdulrasool's avatar
      build: extract LLVM distribution target handling · 2b9f6caa
      Saleem Abdulrasool authored
      This extracts the LLVM distribution target handling into a support module.
      Extraction will enable us to restructure the builds to support multiple
      distribution configurations (e.g. developer and user) to permit us to build the
      development package and the user package at once.
      
      llvm-svn: 363440
      2b9f6caa
  7. Jun 07, 2019
    • David Tenty's avatar
      Build with _XOPEN_SOURCE defined on AIX · a8d13df4
      David Tenty authored
      Summary:
      It is useful to build with _XOPEN_SOURCE defined on AIX, enabling X/Open
      and POSIX compatibility mode, to work around stray macros and other
      bugs in the headers provided by the system and build compiler.
      
      This patch adds the config to cmake to build with _XOPEN_SOURCE defined
      on AIX with a few exceptions. Google Test internals require access to
      platform specific thread info constructs on AIX so in that case we build
      with _ALL_SOURCE defined instead. Libclang also uses header which needs
      _ALL_SOURCE on AIX so we leave that as is as well.
      
      We also add building on AIX with the large file API and doing CMake
      header checks with X/OPEN definitions so the results are consistent with
      the environment that will be present in the build.
      
      Reviewers: hubert.reinterpretcast, xingxue, andusy
      
      Reviewed By: hubert.reinterpretcast
      
      Subscribers: mgorny, jsji, cfe-commits, llvm-commits
      
      Tags: #llvm, #clang
      
      Differential Revision: https://reviews.llvm.org/D62533
      
      llvm-svn: 362808
      a8d13df4
  8. Jun 04, 2019
  9. Jun 03, 2019
  10. Jun 02, 2019
    • Don Hinton's avatar
      [test] Fix plugin tests · ccbda6b0
      Don Hinton authored
      Recommit of r361790 that was temporarily reverted in r361793 due to bot breakage.
      
      Summary:
      The following changes were required to fix these tests:
      
      1) Change LLVM_ENABLE_PLUGINS to an option and move it to
         llvm/CMakeLists.txt with an appropriate default -- which matches
         the original default behavior.
      
      2) Move the plugins directory from clang/test/Analysis
         clang/lib/Analysis.  It's not enough to add an exclude to the
         lit.local.cfg file because add_lit_testsuites recurses the tree and
         automatically adds the appropriate `check-` targets, which don't
         make sense for the plugins because they aren't tests and don't
         have `RUN` statements.
      
         Here's a list of the `clang-check-anlysis*` targets with this
         change:
      
      ```
        $ ninja -t targets all| sed -n "s/.*\/\(check[^:]*\):.*/\1/p" | sort -u | grep clang-analysis
        check-clang-analysis
        check-clang-analysis-checkers
        check-clang-analysis-copypaste
        check-clang-analysis-diagnostics
        check-clang-analysis-engine
        check-clang-analysis-exploration_order
        check-clang-analysis-html_diagnostics
        check-clang-analysis-html_diagnostics-relevant_lines
        check-clang-analysis-inlining
        check-clang-analysis-objc
        check-clang-analysis-unified-sources
        check-clang-analysis-z3
      ```
      
      3) Simplify the logic and only include the subdirectories under
         clang/lib/Analysis/plugins if LLVM_ENABLE_PLUGINS is set.
      
      Reviewed By: NoQ
      
      Tags: #clang, #llvm
      
      Differential Revision: https://reviews.llvm.org/D62445
      
      llvm-svn: 362328
      ccbda6b0
    • Petr Hosek's avatar
      [CMake] Use libtool for runtimes when building for Apple platform · 84254dd8
      Petr Hosek authored
      LLVM CMake build already uses libtool instead of ar when building
      for Apple platform and we should be using the same when building
      runtimes. To do so, this change extracts the logic for finding
      libtool into a separate file and then uses it from both the LLVM
      build as well as the LLVM runtimes build.
      
      Differential Revision: https://reviews.llvm.org/D62769
      
      llvm-svn: 362313
      84254dd8
  11. May 28, 2019
    • Alexandre Ganea's avatar
      Revert r361826, as it still breaks LLDB. · 9bf766c5
      Alexandre Ganea authored
      llvm-svn: 361837
      9bf766c5
    • Alexandre Ganea's avatar
      [CMake] Default options for faster executables on MSVC · c4eee405
      Alexandre Ganea authored
      Differential Revision: https://reviews.llvm.org/D55056
      
      llvm-svn: 361826
      c4eee405
    • Don Hinton's avatar
      Revert [test] Fix plugin tests · 102b4b24
      Don Hinton authored
      This reverts r361790 (git commit fe5eaab2)
      
      It's causing buildbot breakage, so reverting while I investigate.
      
      llvm-svn: 361793
      102b4b24
    • Don Hinton's avatar
      [test] Fix plugin tests · fe5eaab2
      Don Hinton authored
      Summary:
      The following changes were required to fix these tests:
      
      1) Change LLVM_ENABLE_PLUGINS to an option and move it to
         llvm/CMakeLists.txt with an appropriate default -- which matches
         the original default behavior.
      
      2) Move the plugins directory from clang/test/Analysis
         clang/lib/Analysis.  It's not enough to add an exclude to the
         lit.local.cfg file because add_lit_testsuites recurses the tree and
         automatically adds the appropriate `check-` targets, which don't
         make sense for the plugins because they aren't tests and don't
         have `RUN` statements.
      
         Here's a list of the `clang-check-anlysis*` targets with this
         change:
      
      ```
        $ ninja -t targets all| sed -n "s/.*\/\(check[^:]*\):.*/\1/p" | sort -u | grep clang-analysis
        check-clang-analysis
        check-clang-analysis-checkers
        check-clang-analysis-copypaste
        check-clang-analysis-diagnostics
        check-clang-analysis-engine
        check-clang-analysis-exploration_order
        check-clang-analysis-html_diagnostics
        check-clang-analysis-html_diagnostics-relevant_lines
        check-clang-analysis-inlining
        check-clang-analysis-objc
        check-clang-analysis-unified-sources
        check-clang-analysis-z3
      ```
      
      3) Simplify the logic and only include the subdirectories under
         clang/lib/Analysis/plugins if LLVM_ENABLE_PLUGINS is set.
      
      Reviewed By: NoQ
      
      Tags: #clang, #llvm
      
      Differential Revision: https://reviews.llvm.org/D62445
      
      llvm-svn: 361790
      fe5eaab2
  12. May 27, 2019
  13. May 21, 2019
    • Saleem Abdulrasool's avatar
      build: enable CMake policy 0077 · ca5ed496
      Saleem Abdulrasool authored
      Enable CMake policy 77. This alters the behavior of option. The old behavior
      would remove the value of the option from the cache and create a new one. The
      new behavior does not create the variable if it is defined already. This ensures
      that subsequent reconfigures will behave identically. This seems better than the
      setting of OLD - the desire is to ensure that it is set to OLD or NEW.
      
      llvm-svn: 361307
      ca5ed496
  14. May 02, 2019
    • Saleem Abdulrasool's avatar
      build: add option to disable unwind tables · a7c766b5
      Saleem Abdulrasool authored
      The unwind tables (`.eh_frame`, `.arm.extab`) add a significant chunk of data to
      the final binaries.  These should not be needed normally, particularly when
      exceptions are disabled.  This enables shrinking `lldb-server` by ~18% (3 MiB)
      when built with gold.
      
      llvm-svn: 359819
      a7c766b5
  15. Apr 09, 2019
    • Justin Bogner's avatar
      [CMake] Move configuration of LLVM_CXX_STD to HandleLLVMOptions.cmake · c60d0959
      Justin Bogner authored
      Standalone builds of projects other than llvm itself (lldb, libcxx,
      etc) include HandleLLVMOptions but not the top level llvm CMakeLists,
      so we need to set this variable here to ensure that it always has a
      value.
      
      This should fix the build issues some folks have been seeing.
      
      llvm-svn: 357976
      c60d0959
  16. Apr 08, 2019
  17. Mar 25, 2019
  18. Mar 19, 2019
  19. Mar 08, 2019
  20. Mar 06, 2019
  21. Feb 22, 2019
    • David Greene's avatar
      [CMake] Honor LLVM_EXTERNAL_<proj>_SOURCE_DIR · 3b9141df
      David Greene authored
      When LLVM_ENABLE_PROJECTS is set, CMake assumes the project
      directories are all side-by-side. This is not always the case and
      there's no reason to expect it if LLVM_EXTERNAL_<proj>_SOURCE_DIR is
      set. Honor that setting if it exists and allow the build configuration
      to continue.
      
      Differential Revision: https://reviews.llvm.org/D49672
      
      llvm-svn: 354693
      3b9141df
  22. Feb 14, 2019
  23. Feb 09, 2019
  24. Feb 07, 2019
  25. Feb 06, 2019
    • Shoaib Meenai's avatar
      [cmake] Add all subprojects to LLVM_ALL_PROJECTS · 351314a1
      Shoaib Meenai authored
      Make LLVM_ALL_PROJECTS reflect all top-level directories in the monorepo
      rather than an arbitrary subset. clang-tools-extra is technically
      unnecessary since it gets enabled by clang, but having it there for
      consistency shouldn't hurt either.
      
      Differential Revision: https://reviews.llvm.org/D57843
      
      llvm-svn: 353346
      351314a1
    • Shoaib Meenai's avatar
      [cmake] Add openmp to LLVM_ALL_PROJECTS · af8eadd9
      Shoaib Meenai authored
      It'll get ignored in LLVM_ENABLE_PROJECTS after r353148 otherwise.
      
      llvm-svn: 353343
      af8eadd9
    • Petr Hosek's avatar
      [CMake] Unify scripts for generating VCS headers · 23fdd5a3
      Petr Hosek authored
      Previously, there were two different scripts for generating VCS headers:
      one used by LLVM and one used by Clang and lldb. 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, Clang and lldb, 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
      
      llvm-svn: 353268
      23fdd5a3
  26. Feb 05, 2019
    • Dan Liew's avatar
      Previously if the user configured their build but then changed · de5220ed
      Dan Liew authored
      LLVM_ENABLED_PROJECT and reconfigured it had no effect on what
      projects were actually built. This was very confusing behaviour. The
      reason for this is that the value of the `LLVM_TOOL_<PROJECT>_BUILD`
      variables are already set.
      
      The problem here is that we have two sources of truth:
      
      * The projects listed in LLVM_ENABLE_PROJECTS.
      * The projects enabled/disabled with LLVM_TOOL_<PROJECT>_BUILD.
      
      At configure time we have no real way of knowing which source of truth
      the user wants so we apply the following heuristic:
      
      If the user ever sets `LLVM_ENABLE_PROJECTS` in the CMakeCache then that
      is used as the single source of truth and we force the
      `LLVM_TOOL_<PROJECT>_BUILD` CMake cache variables to have the
      appropriate values that match the contents of the
      `LLVM_ENABLE_PROJECTS`. If the user never sets `LLVM_ENABLE_PROJECTS`
      then they can continue to use and set the `LLVM_TOOL_<PROJECT>_BUILD`
      variables as the "source of truth".
      
      The problem with this approach is that if the user ever tries to use
      both `LLVM_ENABLE_PROJECTS` and `LLVM_TOOL_<PROJECT>_BUILD` for the same
      build directory then any user set value for `LLVM_TOOL_<PROJECT>_BUILD`
      variables will get overwriten, likely without the user noticing.
      
      Hopefully the above shouldn't matter in practice because the
      LLVM_TOOL_<PROJECT>_BUILD variables are not documented, but
      LLVM_ENABLE_PROJECTS is.
      
      We should probably deprecate the `LLVM_TOOL_<PROJECT>_BUILD`
      variables at some point by turning them into to regular CMake
      variables that don't live in the CMake cache.
      
      Differential Revision: https://reviews.llvm.org/D57535
      
      llvm-svn: 353148
      de5220ed
  27. Feb 02, 2019
Loading