1. 10 Jan, 2017 1 commit
  2. 20 Oct, 2016 1 commit
  3. 19 Oct, 2016 11 commits
  4. 07 Oct, 2016 2 commits
  5. 03 Oct, 2016 1 commit
  6. 11 Sep, 2016 1 commit
  7. 14 Jul, 2016 2 commits
  8. 23 Jun, 2016 2 commits
    • Peter Collingbourne's avatar
      Fix autotools build. · 8e98eb2a
      Peter Collingbourne authored
      It looks like commit 3c49b932 modified the auto-generated file src/config.h.in
      to add a definition of macro GOOGLE_GLOG_DLL_DECL. One of the autotools
      reverts this change upon running "make", causing the build to fail when a
      source file includes demangle.h.
      
      To fix the problem, revert the change to src/config.h.in and include
      glog/logging.h from demangle.h which provides a definition of that macro.
      8e98eb2a
    • Peter Collingbourne's avatar
      symbolize: Calculate a module's zero VA using program headers. · a93a4511
      Peter Collingbourne authored
      Previously we were using a module's "start address", i.e. the
      address at which the module's executable region was mapped, as the
      zero virtual address, i.e. the address from which the DSO's virtual
      addresses are calculated. This works fine for DSOs created by the
      bfd and gold linkers, which will emit a PT_LOAD directive into the
      program header which loads the executable region at virtual address
      (p_vaddr) and file offset (p_offset) 0.
      
      However, the lld linker may place a read-only region before the
      executable region, meaning that both p_vaddr and p_offset for the
      executable region are non-zero. This means that any symbols resolved
      by the symbolizer are resolved to an incorrect virtual address. To
      correctly calculate the address corresponding to virtual address zero,
      we need to take into account p_vaddr and p_offset.
      
      Specifically, the calculation starts with the "base address", i.e. the
      start address minus the file offset. To get from the base address to
      virtual address zero, we first add p_offset. This gives us the mapped
      address of the start of the segment, or in other words the mapped
      address corresponding to the virtual address of the segment. (Note
      that this is distinct from the start address, as p_offset is not
      guaranteed to be page aligned.) We then subtract p_vaddr, which takes
      us to virtual address zero.
      a93a4511
  9. 15 Apr, 2016 1 commit
  10. 13 Apr, 2016 2 commits
  11. 11 Apr, 2016 1 commit
  12. 05 Apr, 2016 1 commit
  13. 31 Mar, 2016 2 commits
  14. 21 Mar, 2016 1 commit
  15. 08 Jan, 2016 2 commits
  16. 17 Dec, 2015 4 commits
  17. 27 Nov, 2015 1 commit
  18. 26 Nov, 2015 1 commit
  19. 10 Nov, 2015 3 commits