Serge Lamikhov-Center
4eb7a2d216
Release_3.1
2015-02-13 20:55:49 +02:00
Serge Lamikhov-Center
9e4502d90e
Copyright year update
2015-02-13 20:51:07 +02:00
Serge Lamikhov-Center
8290078a64
Relocation entry endianness fix; Warnings elimination
2015-02-13 20:47:37 +02:00
Serge Lamikhov-Center
ce2faaa00e
Release_3.0
2015-01-19 13:36:49 +02:00
Mario Werner
91e61ec4b2
use the NULL section instead of offset == 0
...
This change makes it possible to use the regular API to build up
elf files which include the file header.
2014-12-03 10:38:44 +01:00
Mario Werner
d2a27c7d96
initialized a few variables to silence warnings when building with Wall
2014-12-03 09:45:21 +01:00
Mario Werner
1676247836
fix alignment of segments during saving -> copied elfs are working
...
The old implementation aligned the segment start. However, the
intended behaviour is to align the offset and the vaddr
(p_vaddr % p_align == p_offset % p_align). This is required for the
loader which can then operate on memory pages.
2014-12-03 09:27:56 +01:00
Mario Werner
fe0c85995d
add 4 byte alignment for the section table
...
this is probably not required but definitely does not hurt
2014-12-03 09:24:21 +01:00
Serge Lamikhov-Center
1db119a8ca
Refactoring - a nicer code for is_subsequence_of()
...
Conflicts:
elf_examples/asm_copy
2014-11-23 00:53:19 +02:00
Serge Lamikhov-Center
a88cfacaca
Use boost library version 1.57.0
2014-11-22 23:52:02 +02:00
Mario Werner
b91a43b378
special support for PHDR segments and segments which include the elf header
...
Only elf files with strange GNU_RELRO segments fail the load, save, cycle.
It would maybe a good idea to separate the layout functionality from the
current save. The current coupling of layout and save make it
impossible to build layouts which contain the elf header via the public
API.
2014-11-15 22:08:52 +01:00
Mario Werner
755b92c580
move the section table to the end of the elf file
2014-11-14 13:40:25 +01:00
Mario Werner
c743d0bf74
separated layout generation and saving
...
Many example elfs (hello_32, hello_64, asm ...) require that the
first section directly follows the program header table. The
section header is then placed between segments or at the end.
This change prepares the late placement of section header table.
2014-11-14 13:06:39 +01:00
Mario Werner
55c2841e47
changed order in which the sections are emitted
...
The fact that segments can contain header information as well as
sections requires that sections within segments are emitted first.
2014-11-14 10:37:50 +01:00
Mario Werner
0ece76b5eb
rewrote the segment save logic to not only care about alignment
...
The initial implementation only made sure that all sections and segments
are properly aligned. This is enough for simple embedded applications
but can not deal with more complex layouts.
The new implementation should be more generic given that it respects the
virtual addresses of the individual sections.
One thing which is currently not supported by this rewrite are segments
which contain the program/segment header or even the whole elf header.
2014-11-14 08:27:36 +01:00
Mario Werner
e5592ddfdd
fix: make segment loading similar to readelf's algorithm
...
ALLOC sections are now matched against the virtual address space of
the segment. Non ALLOC sections still use the offset approach.
2014-11-14 08:04:55 +01:00
Mario Werner
8dda93f2bb
fixed a few warnings (signed-unsigned comparisions, unused param)
2014-11-13 18:24:03 +01:00
Mario Werner
22bd7ba77d
fix: static class member MAX_DATA_ENTRIES is not defined -> linker error
...
Static class members usually have to be defined explicitly which plays not
well with header only libraries. Moving the constant into the ELFIO scope
works around that problem.
The problem only shows up at -O0. Higher optimisations levels manage to
completely remove the references to the static member.
2014-11-13 18:23:02 +01:00
Mario Werner
c655d9bbca
ignored the generated elf files
2014-11-13 18:20:27 +01:00
Mario Werner
39b67828a2
removed generated elf and object files from the repository
2014-11-13 18:19:56 +01:00
Mario Werner
c9cf1a6f8f
updated gitignore file
2014-11-13 18:02:22 +01:00
Serge Lamikhov-Center
49c08c53e8
Release 2.3
2014-11-08 19:07:46 +02:00
Semi Malinen
5000c533ba
Add const
2014-10-30 14:47:14 +02:00
Semi Malinen
695a05dc5d
Do not index past the end of the chain table
2014-10-30 14:29:33 +02:00
Serge Lamikhov-Center
b830e5e452
Documentation update - new functions are described
2014-08-09 11:22:36 +03:00
Serge Lamikhov-Center
7dd7dade6f
Non-significant formatting
2014-08-09 10:56:18 +03:00
Vincent Huang
6d713f4d0a
Added iterator for segments and sections
...
segments and sections were already stored as std::vector<T>.
This change simply exposes the std::vector<T>::iterator functions.
2014-08-07 23:12:35 -04:00
Serge Lamikhov-Center
b227bf1482
Add a test that verifies ARM executable which was generated by CLang and LLVM
...
Signed-off-by: Serge Lamikhov-Center <to_serge@users.sourceforge.net>
2014-02-27 19:42:57 +02:00
Mario Werner
c95b3395cb
add an elf file before and after saving
...
( requested under https://github.com/serge1/ELFIO/pull/1 )
2014-02-26 18:58:43 +02:00
Serge Lamikhov-Center
33dcaf063f
Use [i|o]stream instead of [i|o]fstream; The patch was provided by Jason Hiser
...
Test's fixes
2014-02-26 18:02:30 +02:00
Serge Lamikhov-Center
d7dfac7e25
Refactoring of a test
2014-02-26 17:41:14 +02:00
Serge Lamikhov-Center
59bde6aafd
Switch to cygport conf file for CygWin distribution
...
Projects were migrated to VS2013
2014-02-26 17:39:33 +02:00
Serge Lamikhov-Center
e8afffece9
Dump for section and segment data added
2014-02-26 17:35:20 +02:00
Serge Lamikhov-Center
17f03740e6
Using macros for header fields access functions
...
Set segment's index upon its creation
Move to VS2013 projects
2014-02-26 17:30:43 +02:00
Mario Werner
1d2930abc7
redesigned save_segments_and_their_sections
...
We have some elf files where a section (.ARM.exidx) is located in multiple segments.
To keep this property it is necessary to keep track of the emitted sections.
Furthermore, the correct sequence for the segment emission has to be determined.
This is done by postponing segments which are actually a subsequence of another segment.
Additionally the alignment is not considered as part of the file size of a segment anymore.
2014-02-17 11:52:25 +01:00
Mario Werner
5dd8ba29bd
assign sections to the segments during load based on the offsets
2014-02-13 18:59:16 +01:00
Mario Werner
f78a519522
removed const from the segment load function
2014-02-13 18:45:17 +01:00
Serge Lamikhov-Center
fa813b7b18
A minor change of the Web page
2013-05-17 12:24:11 +03:00
Serge Lamikhov-Center
137f0a7ae6
Release 2.2
2013-05-16 18:56:07 +03:00
Serge Lamikhov-Center
ed600e64f3
Ticket #10 : Fix section type SHT_NOBITS file_size calculation
2013-05-16 17:58:09 +03:00
Serge Lamikhov-Center
ed6a40ada1
Proper calculate size difference between file_size/memory_size in case of section type SHT_NOBITS
2013-04-21 16:54:07 +03:00
Serge Lamikhov-Center
415b3d9766
Test result change in relation to "Ticket #9 : Segment offset written in wrong endianess."
2013-04-20 02:42:07 +03:00
Serge Lamikhov-Center
ec5ca1fa17
Ticket #9 : Segment offset written in wrong endianess.
2013-04-20 01:27:29 +03:00
Serge Lamikhov-Center
c219208716
Version number change in the Web page
2013-03-25 11:33:23 +02:00
Serge Lamikhov-Center
5378c1cd02
Version changed to be 2.1
2013-03-25 10:13:06 +02:00
Serge Lamikhov-Center
2ced96026d
Remove 'mutable' specification in 'section' class
2013-03-21 02:13:50 +02:00
Serge Lamikhov-Center
3a6014d52e
Dynamic section documented
...
section[string] documented (addresses ticket #8 )
Signed-off-by: Serge Lamikhov-Center <to_serge@users.sourceforge.net>
2013-02-15 15:13:51 +02:00
Serge Lamikhov-Center
79ecb3fabc
Data size boundary check for dynamic section reader
...
Permit section data allocation for size equal to 0
2013-01-30 14:45:35 +02:00
Serge Lamikhov-Center
cde39c9d45
Add a validation for the case when dynamic section has no data
...
Signed-off-by: Serge Lamikhov-Center <to_serge@users.sourceforge.net>
2013-01-30 01:06:00 +02:00
Serge Lamikhov-Center
b217a8a993
Remove extra ";" to prevent warnings at compilation with GCC -pedantic option
2013-01-30 01:05:32 +02:00