[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".
http://git.savannah.gnu.org/cgit/guile.git/commit/?id=0fd66aac925f0555b7105bef49399d3640d2303a
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-section-symbol):
(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
segments.
(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
make-elf-section.
(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
numbers.
* test-suite/tests/linker.test: Update to set #:index on the linker
objects.
commit 62a968d8198e37ef2c834b6fbef42c01cdef25a1
Author: Andy Wingo <address@hidden>
Date: Wed Apr 17 23:07:04 2013 +0200
split linker out of elf module
* module/Makefile.am:
* 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
linker).
* test-suite/tests/linker.test: New test.
-----------------------------------------------------------------------
hooks/post-receive
--
GNU Guile
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Guile-commits] GNU Guile branch, wip-linker, created. v2.1.0-6-g0fd66aa,
Andy Wingo <=