Skip to content
  1. Aug 29, 2017
    • Reid Kleckner's avatar
      [cmake] Stop putting the revision info in LLVM_VERSION_STRING · b8ae2b13
      Reid Kleckner authored
      Summary:
      This reduces the number of build actions after a no-op commit from
      thousands to about six, which should be acceptable. If six actions is
      still too many, developers can disable the LLVM_APPEND_VC_REV cmake
      option.
      
      llvm-config.h is a widely included header that should rarely change.
      Before this patch, it would change after every re-configure. Very few
      users of llvm-config.h need to know the precise version, and those that
      do can migrate to incorporating LLVM_REVISION as provided by
      llvm/Support/VCSRevision.h.
      
      This should bring LLVM back to the behavior that it had before r306858
      from June 30 2017. Most LLVM tools will now print a version string like
      "6.0.0svn" instead of "6.0.0-git-c40c2a23de4".
      
      Fixes PR34308
      
      Reviewers: pcc, rafael, hans
      
      Subscribers: mgorny, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D37272
      
      llvm-svn: 312043
      b8ae2b13
  2. Aug 13, 2017
  3. Aug 03, 2017
  4. Aug 02, 2017
  5. Jul 31, 2017
    • Reid Kleckner's avatar
      [lit] Avoid copying llvm/utils/lit/tests/Inputs with lit site configs · 1b4e9ae3
      Reid Kleckner authored
      Summary:
      This is an alternative solution to running the lit test suite on bots
      without polluting the source directory. Each input test suite gets an
      auto-generated site config in the build directory that points back to
      the test input source directory.
      
      This adds some cmake comlexity, but now we don't need to remove and
      re-copy the test input directory before every test.
      
      Reviewers: delcypher, modocache
      
      Subscribers: mgorny, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D36026
      
      llvm-svn: 309602
      1b4e9ae3
  6. Jul 27, 2017
  7. Jul 23, 2017
  8. Jul 20, 2017
  9. Jul 19, 2017
  10. Jul 05, 2017
    • Tom Stellard's avatar
      CMake: Add LLVM_UTILS_INSTALL_DIR option · edd69bc7
      Tom Stellard authored
      Summary:
      This is like the LLVM_TOOLS_INSTALL_DIR option, but for the utils
      that are installed when the LLVM_INSTALL_UTILS.  This option
      defaults to 'bin' to remain consistent with the current behavior, but
      distros may want to install these to libexec/llvm.
      
      Reviewers: beanz
      
      Reviewed By: beanz
      
      Subscribers: llvm-commits, mgorny
      
      Differential Revision: https://reviews.llvm.org/D30655
      
      llvm-svn: 307150
      edd69bc7
  11. Jun 30, 2017
  12. Jun 22, 2017
  13. Jun 17, 2017
    • NAKAMURA Takumi's avatar
      [CMake] Introduce LLVM_TARGET_TRIPLE_ENV as an option to override... · fc7f3b75
      NAKAMURA Takumi authored
      [CMake] Introduce LLVM_TARGET_TRIPLE_ENV as an option to override LLVM_DEFAULT_TARGET_TRIPLE at runtime.
      
      No behavior is changed if LLVM_TARGET_TRIPLE_ENV is blank or undefined.
      
      If LLVM_TARGET_TRIPLE_ENV is "TEST_TARGET_TRIPLE" and $TEST_TARGET_TRIPLE is not blank,
      llvm::sys::getDefaultTargetTriple() returns $TEST_TARGET_TRIPLE.
      Lit resets config.target_triple and config.environment[LLVM_TARGET_TRIPLE_ENV] to change the default target.
      
      Without changing LLVM_DEFAULT_TARGET_TRIPLE nor rebuilding, lit can be run;
      
        TEST_TARGET_TRIPLE=i686-pc-win32 bin/llvm-lit -sv path/to/test/
        TEST_TARGET_TRIPLE=i686-pc-win32 ninja check-clang-tools
      
      Differential Revision: https://reviews.llvm.org/D33662
      
      llvm-svn: 305632
      fc7f3b75
  14. Jun 10, 2017
  15. Jun 09, 2017
  16. May 25, 2017
    • Aaron Ballman's avatar
      Update the documentation and CMake file for Visual Studio generators. · 472278a5
      Aaron Ballman authored
      By default, CMake uses a 32-bit toolchain, even when on a 64-bit platform targeting a 64-bit build. However, due to the size of the binaries involved, this can cause linker instabilities (such as the linker running out of memory). Guide people to the correct solution to get CMake to use the native toolchain.
      
      llvm-svn: 303912
      472278a5
  17. May 03, 2017
    • Tom Stellard's avatar
      CMake: Add LLVM_DYLIB_SYMBOL_VERSIONING option · d6f39ddc
      Tom Stellard authored
      Summary:
      When apps or other libraries link against a library with symbol
      versions, the version string is recorded in the import table, and used
      at runtime to resolve the symbol back to a library that provides that
      version (vaguely like how two-level namespaces work in Mach-O).  ld's
      --default-symver flag tags every exported symbol with a symbol version
      string equal to the library's soname.  Using --default-symver means
      multiple versions of libLLVM can coexist within the same process, at
      least to the extent that they don't try to pass data between each
      other's llvms.
      
      As an example, imagine a language like Rust using llvm for CPU codegen,
      binding to OpenGL, with Mesa as the OpenGL implementation using llvm for
      R600 codegen.  With --default-symver Rust and Mesa will resolve their
      llvm usage to the version each was linked against, which need not match.
      
      (Other ELF platforms like BSD and Solaris might have similar semantics,
      I've not checked.)
      
      This is based on an autoconf version of this patch by Adam Jackson.
      
      This new option can be used to add --default-symver to the linker flags
      for libLLVM.so.
      
      Reviewers: beanz
      
      Reviewed By: beanz
      
      Subscribers: mgorny, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D30997
      
      llvm-svn: 302026
      d6f39ddc
  18. Apr 19, 2017
    • Xin Tong's avatar
      Allow suppressing host and target info in VersionPrinter · 59cb7782
      Xin Tong authored
      Summary:
      VersionPrinter by default outputs information about the Host CPU
      and Default target. Printing this information requires linking in
      a large amount of data, such as supported target triples as C
      strings, which in turn bloats the binary size.
      
      Enable a new CMake option LLVM_VERSION_PRINTER_SHOW_HOST_TARGET_INFO
      which controls printing of the host and target info. This allows
      the target triple names to be dead-code stripped. This is a nice
      win for LLVM clients that wish to minimize their binary size, such
      as graphics drivers.
      
      By default this is ON, so there is no change in the default behavior.
      Clients who wish to suppress this printing can do so by setting this
      option to off via CMake.
      
      A test app on Linux that uses ParseCommandLineOptions() shows a binary
      size reduction of 23KB (from 149K to 126K) for a Release build, and 24KB
      (from 135K to 111K) in a MinSizeRel build.
      
      Reviewers: klimek, beanz, bogner, chandlerc, compnerd
      
      Reviewed By: compnerd
      
      Patch by pammon (Peter Ammon) !
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D30904
      
      llvm-svn: 300630
      59cb7782
  19. Mar 23, 2017
  20. Mar 21, 2017
    • Serge Pavlov's avatar
      Fix evaluation of LLVM_DEFINITIONS · 23be9459
      Serge Pavlov authored
      CMake variable LLVM_DEFINITIONS collects preprocessor definitions provided
      for host compiler that builds llvm components. A function
      add_llvm_definitions was introduced in AddLLVMDefinitions.cmake to keep
      track of these definitions and was intended to be a replacement for CMake
      command add_definitions. Actually in many cases add_definitions is still
      used and the content of LLVM_DEFINITIONS is not actual now. On the other
      hand the current version of CMake allows getting set of definitions in a
      more convenient way. This fix implements evaluation of the variable by
      reading corresponding cmake property.
      
      Differential Revision: https://reviews.llvm.org/D31125
      
      llvm-svn: 298336
      23be9459
  21. Mar 07, 2017
  22. Mar 06, 2017
    • Tom Stellard's avatar
      CMake: Add a build target for generating a source RPM · b208f71f
      Tom Stellard authored
      Summary:
      'make srpm' or 'ninja srpm' will tar up the current source code and then
      build a source RPM package.
      
      By default it will use the llvm.spec file to generate the source RPM,
      but you can specify your own custom spec file with the
      LLVM_SRPM_USER_BINARY_SPECFILE option.  CMake will perform variable
      substitution on your custom specfile, so you can reference CMake
      variables in it.  For example:
      
      Version:        @LLVM_RPM_SPEC_VERSION@
      
      Note that everything in the source directory will be included in the
      tarball so if you have a clang check out in tools/clang, then all
      the clang source will end up in the tarball to.  It is recommended
      to only use this build target with a clean source tree.
      
      Reviewers: beanz
      
      Reviewed By: beanz
      
      Subscribers: mgorny, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D30093
      
      llvm-svn: 297007
      b208f71f
  23. Feb 14, 2017
    • Aditya Nandakumar's avatar
      [Tablegen] Instrumenting table gen DAGGenISelDAG · bb0483bc
      Aditya Nandakumar authored
      To help assist in debugging ISEL or to prioritize GlobalISel backend
      work, this patch adds two more tables to <Target>GenISelDAGISel.inc -
      one which contains the patterns that are used during selection and the
      other containing include source location of the patterns
      Enabled through CMake varialbe LLVM_ENABLE_DAGISEL_COV
      
      llvm-svn: 295081
      bb0483bc
  24. Feb 08, 2017
  25. Feb 07, 2017
  26. Jan 28, 2017
  27. Jan 27, 2017
  28. Jan 12, 2017
  29. Dec 22, 2016
  30. Dec 06, 2016
    • Chris Bieneman's avatar
      [CMake] Fixing clang standalone build · ec758fad
      Chris Bieneman authored
      I broke this in r288770.
      
      llvm-svn: 288829
      ec758fad
    • Chris Bieneman's avatar
      [CMake] Cleanup TableGen include flags · 1b5f563a
      Chris Bieneman authored
      It is kinda crazy to have llvm/include and llvm/lib/Target in the include path for every tablegen invocation for every tablegen-like tool.
      
      This patch removes those flags from the tablgen function that is called everywhere by instead creating a variable LLVM_TABLEGEN_FLAGS which is setup in the LLVM source directories.
      
      This removes TableGen.cmake's dependency on LLVM_MAIN_SRC_DIR, and LLVM_MAIN_INCLUDE_DIR.
      
      llvm-svn: 288770
      1b5f563a
    • Mehdi Amini's avatar
      Introduces cmake option `LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING` · ebcb8a70
      Mehdi Amini authored
      Summary:
      We recently introduced a feature that enforce at link-time that the
      LLVM headers used by a clients are matching the ABI setting of the
      LLVM library linked to.
      
      However for clients that are using only headers from ADT and promise
      they won't call into LLVM, this is forcing to link libSupport. This
      new flag is intended to provide a way to configure LLVM with this
      promise for such client.
      
      Reviewers: bob.wilson, compnerd
      
      Subscribers: mgorny, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D27432
      
      llvm-svn: 288754
      ebcb8a70
  31. Dec 05, 2016
    • Kuba Mracek's avatar
      Use Darwin libtool's -no_warning_for_no_symbols if available to silence the... · fde4a454
      Kuba Mracek authored
      Use Darwin libtool's -no_warning_for_no_symbols if available to silence the "has no symbols" link warning
      
      Building compiler-rt on Darwin produces dozens of meaningless warnings about object files having no symbols during static archive creation. This is very intentional as compiler-rt uses #ifdefs to conditionally compile platform-specific code, and we even have a .cpp source file that only contains static asserts to make sure the environment is configured right. On Linux, this situation is fine and no warning is produced. This patch adds a libtool version detection and if it's new enough, we'll use the -no_warning_for_no_symbols flag that suppresses this warning. Build logs should be much cleaner now!
      
      Differential Revision: https://reviews.llvm.org/D27119
      
      llvm-svn: 288640
      fde4a454
  32. Nov 28, 2016
    • Mehdi Amini's avatar
      Add link-time detection of LLVM_ABI_BREAKING_CHECKS mismatch · 28dd54c3
      Mehdi Amini authored
      The macro LLVM_ENABLE_ABI_BREAKING_CHECKS is moved to a new header
      abi-breaking.h, from llvm-config.h. Only headers that are using the
      macro are including this new header.
      
      LLVM will define a symbol, either EnableABIBreakingChecks or
      DisableABIBreakingChecks depending on the configuration setting for
      LLVM_ABI_BREAKING_CHECKS.
      
      The abi-breaking.h header will add weak references to these symbols in
      every clients that includes this header. This should ensure that
      a mismatch triggers a link failure (or a load time failure for DSO).
      
      On MSVC, the pragma "detect_mismatch" is used instead.
      
      Differential Revision: https://reviews.llvm.org/D26876
      
      llvm-svn: 288082
      28dd54c3
    • Daniil Fukalov's avatar
      [CMAKE] fix LLVM_OPTIMIZED_TABLEGEN for Visual Studio · fb501330
      Daniil Fukalov authored
      At the moment optimized tablegen is generated by LLVM_USE_HOST_TOOLS variable that is not set for Visual Sudio since LLVM_ENABLE_ASSERTIONS depends on CMAKE_BUILD_TYPE value that is not equal to "DEBUG" in case of Visual Studio soltion generation.
      
      Modified to do not depend on LLVM_ENABLE_ASSERTIONS value in VS and Xcode cases
      
      Reviewers: beanz
      
      Subscribers: RKSimon, llvm-commits, mgorny
      
      Differential Revision: https://reviews.llvm.org/D27135
      
      llvm-svn: 288042
      fb501330
  33. Nov 18, 2016
    • Yichao Yu's avatar
      Add an option to disable libedit · 4497a28b
      Yichao Yu authored
      Summary: This should provide the function similar to `--disable-libedit` with the autotools build system, which seems to be missing from the commit (r200595) that adds this.
      
      Reviewers: pcc, beanz
      
      Subscribers: mgorny, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D26550
      
      llvm-svn: 287293
      4497a28b
Loading