Skip to content
  1. 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
  2. Jun 04, 2019
  3. Jun 03, 2019
  4. 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
  5. 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
  6. May 27, 2019
  7. 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
  8. 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
  9. 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
  10. Apr 08, 2019
  11. Mar 25, 2019
  12. Mar 19, 2019
  13. Mar 08, 2019
  14. Mar 06, 2019
  15. 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
  16. Feb 14, 2019
  17. Feb 09, 2019
  18. Feb 07, 2019
  19. 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
  20. 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
  21. Feb 02, 2019
  22. Feb 01, 2019
  23. Jan 31, 2019
    • Petr Hosek's avatar
      Revert "[CMake] Unify scripts for generating VCS headers" · 12062e06
      Petr Hosek authored
      This reverts commits r352729 and r352731: this broke Sanitizer Windows bots
      
      llvm-svn: 352733
      12062e06
    • Petr Hosek's avatar
      [CMake] Unify scripts for generating VCS headers · 0e712a76
      Petr Hosek authored
      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
      
      llvm-svn: 352729
      0e712a76
  24. Jan 29, 2019
    • Hans Wennborg's avatar
      Revert r351833 and r352250. · 81675c8f
      Hans Wennborg authored
      They were breaking the Windows build when using MSBuild, see the
      discussion on D56781.
      
      r351833: "Use response file when generating LLVM-C.dll"
      
      > Use response file when generating LLVM-C.dll
      >
      > As discovered in D56774 the command line gets to long, so use a response file to give the script the libs. This change has been tested and is confirmed working for me.
      >
      > Commited on behalf of Jakob Bornecrantz
      >
      > Differential Revision: https://reviews.llvm.org/D56781
      
      r352250: "Build LLVM-C.dll by default on windows and enable in release package"
      
      >  Build LLVM-C.dll by default on windows and enable in release package
      >
      >  With the fixes to the building of LLVM-C.dll in D56781 this should now
      >  be safe to land. This will greatly simplify dealing with LLVM for people
      >  that just want to use the C API on windows. This is a follow up from
      >  D35077.
      >
      >  Patch by Jakob Bornecrantz!
      >
      >  Differential revision: https://reviews.llvm.org/D56774
      
      llvm-svn: 352492
      81675c8f
  25. Jan 25, 2019
  26. Jan 16, 2019
Loading