Skip to content
  1. Sep 15, 2017
    • Rafael Espindola's avatar
      Keep some relocations with undefined weak symbols. · e05e2f8b
      Rafael Espindola authored
      This fixes pr34301.
      
      As the bug points out, we want to keep some relocations with undefined
      weak symbols. This means that we cannot always claim that these
      symbols are not preemptible as we do now.
      
      Unfortunately, we cannot also just always claim that they are
      preemptible. Doing so would, for example, cause us to try to create a
      plt entry when we don't even have a dynamic symbol table.
      
      What almost works is to say that weak undefined symbols are
      preemptible if and only if we have a dynamic symbol table. Almost
      because we don't want to fail the build trying to create a copy
      relocation to a weak undefined.
      
      llvm-svn: 313372
      e05e2f8b
    • George Rimar's avatar
      [ELF] - Remove one of OutputSectionFactory::addInputSec(). · 3580ef11
      George Rimar authored
      Patch removes one of OutputSectionFactory::addInputSec methods.
      That allows to simplify reporting of discarded sections and
      should help to D37561.
      
      Differential revision: https://reviews.llvm.org/D37735
      
      llvm-svn: 313361
      3580ef11
    • Zachary Turner's avatar
      Revert "[lit] Force site configs to run before source-tree configs" · 83dcb684
      Zachary Turner authored
      This patch is still breaking several multi-stage compiler-rt bots.
      I already know what the fix is, but I want to get the bots green
      for now and then try re-applying in the morning.
      
      llvm-svn: 313335
      83dcb684
    • Rafael Espindola's avatar
      Don't make _gp absolute. · 056190c3
      Rafael Espindola authored
      _gp points to a position in the file, so it is not really absolute. It
      is also simpler to not force it to be absolute, so if there is no
      strong ABI requirement we should not do it.
      
      llvm-svn: 313333
      056190c3
    • Reid Kleckner's avatar
      [COFF] Remove unused variable NFC · 0a201647
      Reid Kleckner authored
      llvm-svn: 313330
      0a201647
  2. Sep 14, 2017
    • Rui Ueyama's avatar
      Add tests for -out-implib. · 0e69bd3c
      Rui Ueyama authored
      llvm-svn: 313289
      0e69bd3c
    • Rui Ueyama's avatar
      Accept not only --foo but also -foo. · 1f4cdcfe
      Rui Ueyama authored
      GNU ld manual says that multi-letter long option can be prefixed with
      either -- or -. Therefore, we should accept not only --subsystem but
      also -subsystem, for example.
      
      There is one exception. If an option starts with "o", it should only be
      prefixed with -- to avoid ambiguity with -o<filename> option.
      
      Differential Revision: https://reviews.llvm.org/D37825
      
      llvm-svn: 313286
      1f4cdcfe
    • Rui Ueyama's avatar
      Filenames are case-insensitive on Windows, so .DEF is the same as .def. · b3592630
      Rui Ueyama authored
      Differential Revision: https://reviews.llvm.org/D37823
      
      llvm-svn: 313285
      b3592630
    • Zachary Turner's avatar
      [lit] Force site configs to be run before source-tree configs · a0e55b64
      Zachary Turner authored
      This patch simplifies LLVM's lit infrastructure by enforcing an ordering
      that a site config is always run before a source-tree config.
      
      A significant amount of the complexity from lit config files arises from
      the fact that inside of a source-tree config file, we don't yet know if
      the site config has been run.  However it is *always* required to run
      a site config first, because it passes various variables down through
      CMake that the main config depends on.  As a result, every config
      file has to do a bunch of magic to try to reverse-engineer the location
      of the site config file if they detect (heuristically) that the site
      config file has not yet been run.
      
      This patch solves the problem by emitting a mapping from source tree
      config file to binary tree site config file in llvm-lit.py. Then, during
      discovery when we find a config file, we check to see if we have a
      target mapping for it, and if so we use that instead.
      
      This mechanism is generic enough that it does not affect external users
      of lit. They will just not have a config mapping defined, and everything
      will work as normal.
      
      On the other hand, for us it allows us to make many simplifications:
      
      * We are guaranteed that a site config will be executed first
      * Inside of a main config, we no longer have to assume that attributes
        might not be present and use getattr everywhere.
      * We no longer have to pass parameters such as --param llvm_site_config=<path>
        on the command line.
      * It is future-proof, meaning you don't have to edit llvm-lit.in to add
        support for new projects.
      * All of the duplicated logic of trying various fallback mechanisms of
        finding a site config from the main config are now gone.
      
      One potentially noteworthy thing that was required to implement this
      change is that whereas the ninja check targets previously used the first
      method to spawn lit, they now use the second. In particular, you can no
      longer run lit.py against the source tree while specifying the various
      `foo_site_config=<path>` parameters.  Instead, you need to run
      llvm-lit.py.
      
      Differential Revision: https://reviews.llvm.org/D37756
      
      llvm-svn: 313270
      a0e55b64
  3. Sep 13, 2017
  4. Sep 12, 2017
Loading