Skip to content
  1. Jul 29, 2011
    • Chandler Carruth's avatar
      Rewrite the CMake build to use explicit dependencies between libraries, · 9d7feab3
      Chandler Carruth authored
      specified in the same file that the library itself is created. This is
      more idiomatic for CMake builds, and also allows us to correctly specify
      dependencies that are missed due to bugs in the GenLibDeps perl script,
      or change from compiler to compiler. On Linux, this returns CMake to
      a place where it can relably rebuild several targets of LLVM.
      
      I have tried not to change the dependencies from the ones in the current
      auto-generated file. The only places I've really diverged are in places
      where I was seeing link failures, and added a dependency. The goal of
      this patch is not to start changing the dependencies, merely to move
      them into the correct location, and an explicit form that we can control
      and change when necessary.
      
      This also removes a serialization point in the build because we don't
      have to scan all the libraries before we begin building various tools.
      We no longer have a step of the build that regenerates a file inside the
      source tree. A few other associated cleanups fall out of this.
      
      This isn't really finished yet though. After talking to dgregor he urged
      switching to a single CMake macro to construct libraries with both
      sources and dependencies in the arguments. Migrating from the two macros
      to that style will be a follow-up patch.
      
      Also, llvm-config is still generated with GenLibDeps.pl, which means it
      still has slightly buggy dependencies. The internal CMake
      'llvm-config-like' macro uses the correct explicitly specified
      dependencies however. A future patch will switch llvm-config generation
      (when using CMake) to be based on these deps as well.
      
      This may well break Windows. I'm getting a machine set up now to dig
      into any failures there. If anyone can chime in with problems they see
      or ideas of how to solve them for Windows, much appreciated.
      
      llvm-svn: 136433
      9d7feab3
  2. Jul 28, 2011
  3. Jul 26, 2011
    • Chandler Carruth's avatar
      Still more library dependency updates. This reflects the ever decreasing · 35c383ec
      Chandler Carruth authored
      dependence on CodeGen layers and backends from the MC layers.
      
      llvm-svn: 136024
      35c383ec
    • Chandler Carruth's avatar
      Clean up a pile of hacks in our CMake build relating to TableGen. · 97c069c1
      Chandler Carruth authored
      The first problem to fix is to stop creating synthetic *Table_gen
      targets next to all of the LLVM libraries. These had no real effect as
      CMake specifies that add_custom_command(OUTPUT ...) directives (what the
      'tablegen(...)' stuff expands to) are implicitly added as dependencies
      to all the rules in that CMakeLists.txt.
      
      These synthetic rules started to cause problems as we started more and
      more heavily using tablegen files from *subdirectories* of the one where
      they were generated. Within those directories, the set of tablegen
      outputs was still available and so these synthetic rules added them as
      dependencies of those subdirectories. However, they were no longer
      properly associated with the custom command to generate them. Most of
      the time this "just worked" because something would get to the parent
      directory first, and run tablegen there. Once run, the files existed and
      the build proceeded happily. However, as more and more subdirectories
      have started using this, the probability of this failing to happen has
      increased. Recently with the MC refactorings, it became quite common for
      me when touching a large enough number of targets.
      
      To add insult to injury, several of the backends *tried* to fix this by
      adding explicit dependencies back to the parent directory's tablegen
      rules, but those dependencies didn't work as expected -- they weren't
      forming a linear chain, they were adding another thread in the race.
      
      This patch removes these synthetic rules completely, and adds a much
      simpler function to declare explicitly that a collection of tablegen'ed
      files are referenced by other libraries. From that, we can add explicit
      dependencies from the smaller libraries (such as every architectures
      Desc library) on this and correctly form a linear sequence. All of the
      backends are updated to use it, sometimes replacing the existing attempt
      at adding a dependency, sometimes adding a previously missing dependency
      edge.
      
      Please let me know if this causes any problems, but it fixes a rather
      persistent and problematic source of build flakiness on our end.
      
      llvm-svn: 136023
      97c069c1
  4. Jul 25, 2011
  5. Jul 22, 2011
    • Chandler Carruth's avatar
      Move TargetRegistry.cpp from lib/Support to lib/Target where it belongs. · 43025a08
      Chandler Carruth authored
      The header file was already properly located. The previous need for it
      in Support had to do with the version string printing which was fixed in
      r135757.
      
      Also update build dependencies where libraries that needed the
      functionality of the Target library (in the form of the TargetRegistry)
      were picking it up via Support. This is pretty pervasive, essentially
      every TargetInfo library (ARMInfo, etc) uses TargetRegistry, making it
      depend on Target. All of these were previously just sneaking by.
      
      llvm-svn: 135760
      43025a08
    • Chandler Carruth's avatar
      Update the CMake library dependencies. These shifts are the result of · 1108b167
      Chandler Carruth authored
      Evan's recent refactorings (I believe). Specifically, MCDisassembler no
      longer depends on Target, and ARMDisassembler no longer depends on
      CodeGen. The added dependencies from ARMAsmParser to ARMDesc looks
      correct based on header file inclusion.
      
      llvm-svn: 135759
      1108b167
  6. Jul 15, 2011
  7. Jul 08, 2011
  8. Jul 07, 2011
  9. Jun 25, 2011
  10. Jun 23, 2011
    • Andrew Trick's avatar
      lit support for REQUIRES: asserts. · 67ff0718
      Andrew Trick authored
      Take #2. Don't piggyback on the existing config.build_mode. Instead,
      define a new lit feature for each build feature we need (currently
      just "asserts"). Teach both autoconf'd and cmake'd Makefiles to define
      this feature within test/lit.site.cfg. This doesn't require any lit
      harness changes and should be more robust across build systems.
      
      llvm-svn: 133664
      67ff0718
  11. Jun 17, 2011
  12. May 24, 2011
  13. May 19, 2011
  14. May 11, 2011
  15. Apr 29, 2011
    • Nick Lewycky's avatar
      Rename profile_rt.so to libprofile_rt.so under configure+make (it already was · 61aed87a
      Nick Lewycky authored
      under cmake).
      
      Add libprofile_rt.a so that we can tell clang to link against it in --coverage
      mode. Also turn it on by default in cmake builds.
      
      Oscar, this touches a change you made for EXCLUDE_FROM_ALL support -- I think
      I've done the right thing, but please let me know (or fix and commit) if not!
      
      llvm-svn: 130470
      61aed87a
  16. Apr 26, 2011
  17. Apr 19, 2011
  18. Apr 15, 2011
  19. Apr 13, 2011
  20. Apr 11, 2011
  21. Apr 10, 2011
  22. Apr 05, 2011
  23. Apr 03, 2011
  24. Apr 01, 2011
  25. Mar 30, 2011
  26. Mar 29, 2011
    • Oscar Fuentes's avatar
      Fixed the build of Clang's unit tests on MinGW. Also removed some · 978e5284
      Oscar Fuentes authored
      unnecesary conditionals and introduced a new convenience function.
      
      The problem was that the list of libraries for Clang's unit tests was
      <clang libraries> <system libraries> <llvm libraries>. As the llvm
      libraries references symbols defined on the system libraries, those
      were reported as undefined.
      
      llvm-svn: 128484
      978e5284
  27. Mar 23, 2011
  28. Mar 22, 2011
Loading