[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] GNU Guile branch, wip-linker, created. v2.1.0-6-g0fd66aa

From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, wip-linker, created. v2.1.0-6-g0fd66aa
Date: Sat, 18 May 2013 15:00:34 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".

The branch, wip-linker has been created
        at  0fd66aac925f0555b7105bef49399d3640d2303a (commit)

- Log -----------------------------------------------------------------
commit 0fd66aac925f0555b7105bef49399d3640d2303a
Author: Andy Wingo <address@hidden>
Date:   Sun Apr 28 14:42:01 2013 +0200

    add (find-mapped-elf-image) procedure to (system vm objcode) module
    * libguile/objcodes.c (register_elf, scm_find_mapped_elf_image): New
      interfaces that keep a list of all ELF mappings.  Exported from the
      (system vm objcode) module.
    * module/system/vm/objcode.scm: Export find-mapped-elf-image.

commit 2984900f8c9eb8c643e182fdfc61f4b0e3057081
Author: Andy Wingo <address@hidden>
Date:   Sun Apr 28 14:23:20 2013 +0200

    refactor and simplify ELF loader in objcodes.c
    * libguile/objcodes.c (sniff_elf_alignment, alloc_aligned)
      (copy_and_align_elf_data): New helpers for portably re-aligning ELF
      data from read(2) or from a bytevector.
      (load_thunk_from_memory): Simplify!  Now there is only one procedure
      that loads ELF, and it does less: it simply receives the whole image
      in one array, hopefully from mmap.
      (scm_load_thunk_from_file): Use new map_file_contents helper, and go
      through load_thunk_from_memory.
      (scm_load_thunk_from_memory): Pass load_thunk_from_memory a piece of
      memory that it owns, and that is appropriately aligned.

commit e70b1e0a4617a6f2c3bd96db4632bce666b3f418
Author: Andy Wingo <address@hidden>
Date:   Sun Apr 28 09:31:28 2013 +0200

    refactor linker to lay out ELF files and memory in the same way
    * module/system/vm/linker.scm (make-linker-object):
      (linker-object-symbols*): Create a symbol to the start of a linker
      object.  Hide it from the external linker-object-symbols* accessor.
      (segment-kind, count-segments): Sections without SHF_ALLOC don't get
      (collate-objects-into-segments): Allow for #f segment types.  If two
      sections have the same type and flags, leave them in the same order.
      (align): Allow for 0 alignment.
      (add-elf-objects): New helper: puts the ELF data structures (header,
      segment table, and section table) in sections of their own.  This
      lends a nice clarity and conceptual unity to the linker.
      (relocate-section-header, alloc-objects): Lay out segments with
      congruent, contiguous addresses, so that we can just mmap the file and
      if debugging sections that are not in segments are present, they can
      be lazily paged in if needed by the kernel's VM system.
      (link-elf): Refactor to use the new interfaces.
    * test-suite/tests/linker.test: Update to expect the additional sections
      for the header and section table.

commit 8aa1a3173446d53c6a8e0f13f2a015bb963efbd1
Author: Andy Wingo <address@hidden>
Date:   Sun Apr 28 07:51:42 2013 +0200

    elf: add accessors for header members that might need relocation
    * module/system/vm/elf.scm (elf-header-shoff-offset)
      (elf-section-header-addr-offset, elf-section-header-offset-offset):
      New accessors.

commit 67123b63fe47a0b18475506e19d4ffaf3e4139df
Author: Andy Wingo <address@hidden>
Date:   Sun Apr 21 16:06:36 2013 +0200

    ELF refactor and consequent linker simplifications
    * module/system/vm/elf.scm: Add commentary.
      (make-elf): Add a constructor similar to make-elf-segment and
      (write-elf32-header, write-elf64-header, write-elf-header): Take an
      <elf> instead of all the fields separately.
      (<elf-segment>, <elf-section>): Add "index" property.  Adapt
      constructors accordingly.
    * module/language/objcode/elf.scm (bytecode->elf): Arrange to set the
      section indexes when creating ELF sections.
    * module/system/vm/linker.scm (alloc-segment, relocate-section-header):
      Arrange to set segment and section indexes.
      (find-shstrndx): New helper, replaces compute-sections-by-name.  Now
      that sections know their indexes, this is easier.
      (allocate-elf, write-elf): New helpers, factored out of link-elf.
      Easier now that sections have indexes.
      (link-elf): Simplify.  Check that the incoming objects have sensible
    * test-suite/tests/linker.test: Update to set #:index on the linker

commit 62a968d8198e37ef2c834b6fbef42c01cdef25a1
Author: Andy Wingo <address@hidden>
Date:   Wed Apr 17 23:07:04 2013 +0200

    split linker out of elf module
    * module/
    * module/system/vm/linker.scm: New file, split out of (system vm elf).
    * module/system/vm/elf.scm: Remove linking capabilities.
    * module/language/objcode/elf.scm: Adapt caller to use (system vm
    * test-suite/tests/linker.test: New test.


GNU Guile

reply via email to

[Prev in Thread] Current Thread [Next in Thread]