Skip to content
  1. Nov 22, 2019
  2. Nov 21, 2019
    • Tom Stellard's avatar
      [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" · ab411801
      Tom Stellard authored
      Summary:
      Most libraries are defined in the lib/ directory but there are also a
      few libraries defined in tools/ e.g. libLLVM, libLTO.  I'm defining
      "Component Libraries" as libraries defined in lib/ that may be included in
      libLLVM.so.  Explicitly marking the libraries in lib/ as component
      libraries allows us to remove some fragile checks that attempt to
      differentiate between lib/ libraries and tools/ libraires:
      
      1. In tools/llvm-shlib, because
      llvm_map_components_to_libnames(LIB_NAMES "all") returned a list of
      all libraries defined in the whole project, there was custom code
      needed to filter out libraries defined in tools/, none of which should
      be included in libLLVM.so.  This code assumed that any library
      defined as static was from lib/ and everything else should be
      excluded.
      
      With this change, llvm_map_components_to_libnames(LIB_NAMES, "all")
      only returns libraries that have been added to the LLVM_COMPONENT_LIBS
      global cmake property, so this custom filtering logic can be removed.
      Doing this also fixes the build with BUILD_SHARED_LIBS=ON
      and LLVM_BUILD_LLVM_DYLIB=ON.
      
      2. There was some code in llvm_add_library that assumed that
      libraries defined in lib/ would not have LLVM_LINK_COMPONENTS or
      ARG_LINK_COMPONENTS set.  This is only true because libraries
      defined lib lib/ use LLVMBuild.txt and don't set these values.
      This code has been fixed now to check if the library has been
      explicitly marked as a component library, which should now make it
      easier to remove LLVMBuild at some point in the future.
      
      I have tested this patch on Windows, MacOS and Linux with release builds
      and the following combinations of CMake options:
      
      - "" (No options)
      - -DLLVM_BUILD_LLVM_DYLIB=ON
      - -DLLVM_LINK_LLVM_DYLIB=ON
      - -DBUILD_SHARED_LIBS=ON
      - -DBUILD_SHARED_LIBS=ON -DLLVM_BUILD_LLVM_DYLIB=ON
      - -DBUILD_SHARED_LIBS=ON -DLLVM_LINK_LLVM_DYLIB=ON
      
      Reviewers: beanz, smeenai, compnerd, phosek
      
      Reviewed By: beanz
      
      Subscribers: wuzish, jholewinski, arsenm, dschuff, jyknight, dylanmckay, sdardis, nemanjai, jvesely, nhaehnle, mgorny, mehdi_amini, sbc100, jgravelle-google, hiraditya, aheejin, fedor.sergeev, asb, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, jrtc27, MaskRay, zzheng, edward-jones, atanasyan, steven_wu, rogfer01, MartinMosbeck, brucehoult, the_o, dexonsmith, PkmX, jocewei, jsji, dang, Jim, lenary, s.egerton, pzheng, sameer.abuasal, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D70179
      ab411801
  3. Nov 20, 2019
  4. Nov 14, 2019
  5. Nov 13, 2019
    • David Tenty's avatar
      Don't set LLVM_NO_DEAD_STRIP on AIX · 8b2b2c08
      David Tenty authored
      Summary:
      when building plugins, as AIX has symbols in it's standard library that
      must be garbage collected or we will see link errors. Export lists will
      handle this instead on AIX.
      
      Reviewers: stevewan, sfertile, jasonliu, xingxue, DiggerLin
      
      Reviewed By: DiggerLin
      
      Subscribers: mgorny, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D70130
      8b2b2c08
  6. Nov 08, 2019
  7. Nov 06, 2019
    • David Tenty's avatar
      [NFC] Add SUPPORT_PLUGINS to add_llvm_executable() · 6740a88d
      David Tenty authored
      Summary:
      this allows us to move logic about when it is appropriate set
      LLVM_NO_DEAD_STRIP out of each tool and into add_llvm_executable,
      which will enable future platform specific handling.
      
      This is a follow on to the reverted D69356
      
      Reviewers: hubert.reinterpretcast, beanz, lhames
      
      Reviewed By: beanz
      
      Subscribers: mgorny, cfe-commits, llvm-commits
      
      Tags: #clang, #llvm
      
      Differential Revision: https://reviews.llvm.org/D69638
      6740a88d
  8. Nov 04, 2019
  9. Oct 30, 2019
  10. Oct 25, 2019
    • Saleem Abdulrasool's avatar
      build: remove `LLVM_CXX_STD` extension point · 2724d9e1
      Saleem Abdulrasool authored
      This extension point is not needed. Provide the equivalent option
      through `CMAKE_CXX_STANDARD` which mirrors the previous extension point. Rely on
      CMake to provide the check for the compiler instead.
      2724d9e1
    • David Tenty's avatar
      [NFC] Rename LLVM_NO_DEAD_STRIP · 11c2a85d
      David Tenty authored
      Summary:
      The variable LLVM_NO_DEAD_STRIP is set in LLVM cmake files when building executables that might make use of plugins .The name of the variable does not convey the actual intended usage (i.e. for use with tools that have plugins), just what the eventual effect of setting in on some (i.e. not garbage collecting unused symbols).
      
      This patch renames it to LLVM_SUPPORT_PLUGINS to convey the intended usage, which will allow subsequent patches to add behavior to support that in different ways without confusion about whether it will do on, for example, non-gnu platforms.
      
      Reviewers: hubert.reinterpretcast, stevewan
      
      Reviewed By: stevewan
      
      Subscribers: cfe-commits, mgorny, llvm-commits
      
      Tags: #llvm, #clang
      
      Differential Revision: https://reviews.llvm.org/D69356
      11c2a85d
  11. Oct 22, 2019
  12. Oct 17, 2019
  13. Oct 11, 2019
  14. Oct 03, 2019
  15. Oct 02, 2019
  16. Oct 01, 2019
  17. Sep 30, 2019
    • Saleem Abdulrasool's avatar
      build: serialise `LLVM_ENABLE_UNWIND_TABLES` into LLVMConfig · 95679409
      Saleem Abdulrasool authored
      Serialize the value of the configuration option into the configuration so that
      builds which integrate LLVM can identify the value of the flag that was used to
      build the libraries.  This is intended to be used by Swift to control tests
      which rely on the unwind information.
      
      llvm-svn: 373253
      95679409
  18. Sep 25, 2019
  19. Sep 23, 2019
  20. Sep 18, 2019
  21. Sep 10, 2019
  22. Sep 06, 2019
  23. Sep 04, 2019
  24. Sep 03, 2019
  25. Aug 31, 2019
  26. Aug 20, 2019
  27. Aug 19, 2019
  28. Aug 16, 2019
    • Hubert Tong's avatar
      [AIX] For XL, pick GCC-compatible std & default warning options · 67af3fa7
      Hubert Tong authored
      Summary:
      LLVM now requires C++14. For IBM XL compilers with C++14 support, this
      can be done with the GCC-style options. The relevant block in the CMake
      file is split up into smaller parts as part of this patch to allow the
      common cases to be shared.
      
      Reviewers: jfb, jasonliu, daltenty, xingxue
      
      Reviewed By: jfb, xingxue
      
      Subscribers: mstorsjo, mgorny, dexonsmith, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D66256
      
      llvm-svn: 369058
      67af3fa7
  29. Aug 15, 2019
  30. Aug 14, 2019
Loading