Commit Graph

584 Commits

Author SHA1 Message Date
Serge Lamikhov-Center
eb6882952c Remove unnecessary files in 'test' directory 2023-10-24 19:26:45 +03:00
Serge Lamikhov-Center
5b2a6ca626 Change relocation type to R_X86_64_32 2023-10-17 17:26:17 +03:00
Serge Lamikhov-Center
e07864463c Experimental change of section table alignment to 16 2023-10-16 20:19:00 +03:00
Serge Lamikhov-Center
47af3a4ff9 Rename 'free_data' test 2023-10-14 12:44:26 +03:00
Serge Lamikhov-Center
c86883b906 Implement free_data() for sections too
free_data() has no effect if is_lazy was not set
2023-10-13 20:03:48 +03:00
Serge Lamikhov-Center
0399b9f8df Add segment's free_data() description to the doc 2023-10-10 22:29:01 +03:00
Eugene Cohen
23527bd291 Add segment free_data function
Allow for segment data to be freed to allow for reduced memory usage
when dealing with large elf segments.
2023-10-10 22:10:57 +03:00
Serge Lamikhov-Center
73a241079a Refactor the last commit 2023-08-28 19:35:05 +03:00
Serge Lamikhov-Center
089160c40e Use more portable function memchr()
Use more portable memchr() function instead of strnlen() which is not in ISO standard
2023-08-28 18:43:47 +03:00
Serge Lamikhov-Center
8ae6cec5d6 C++17 refactoring 2023-06-02 17:37:37 +03:00
Serge Lamikhov-Center
5a9297b1bd Use c++17 standard 2023-05-06 16:51:42 +03:00
Nam Cao
d251da09a0 Remove unnecessary initialization that causes GCC warning 2023-02-22 22:25:54 +02:00
Hao Chen
5be0f95443 Update elfio.hpp
Fix a memory leak that misuses unique_ptr
2023-02-12 10:06:22 +02:00
scribam
aecc192aa6 Use CodeQL Actions v2 2023-01-17 09:48:31 +02:00
Serge Lamikhov-Center
be202e3107 Minor refactoring 2022-12-31 10:00:30 +02:00
Serge Lamikhov-Center
6fc23e53dd Increase version number for future release 2022-12-18 00:37:56 +02:00
Serge Lamikhov-Center
d00cc32f8b Switch to a newer 'googletest' archive 2022-12-15 19:07:46 +02:00
Serge Lamikhov-Center
b2901a51b6 Add missed implementation function for insert_data() 2022-11-30 08:25:01 +02:00
Nam Cao
974e1252ee Rewrite append_data() to call insert_data()
append_data() and insert_data() have almost the same implementation.
Change append_data() to simply call insert_data().
2022-11-29 18:24:32 +02:00
Nam Cao
e533985a3c Add insert_data() to section 2022-11-29 18:24:27 +02:00
Serge Lamikhov-Center
c7cba1319d VSCode settings update 2022-11-29 13:10:19 +02:00
Serge Lamikhov-Center
a62b295d51 Generate output of compile commands during generation 2022-11-24 16:07:19 +02:00
Serge Lamikhov-Center
259da37f3a Remove dispersed 'noexcept' specifier 2022-11-24 15:56:37 +02:00
Serge Lamikhov-Center
413b130341 Revert the change of the previous commit 2022-11-19 18:31:18 +02:00
Sam James
a52cccfd7f tests: allow using system gtest copy
Distributions often do builds with no network access available
for both security reasons and also to ensure reproducibility.

This change tells CMake to query the system for a copy of gtest,
but if it's not available, it'll fall back to downloading via
FetchContent.
2022-11-19 13:03:59 +02:00
Serge Lamikhov-Center
a04810f126 Don't build tests by default. Set ELFIO_BUILD_TESTS=ON 2022-11-18 21:39:46 +02:00
Serge Lamikhov-Center
d8b71ebc91 Make more const variables 2022-11-14 16:33:50 +02:00
Serge Lamikhov-Center
6c5f34ae3e Add tests for lazy load 2022-11-14 15:17:33 +02:00
Serge Lamikhov-Center
9827eac948 Implement 'lazy' load for sections 2022-11-13 00:05:25 +02:00
Serge Lamikhov-Center
7c0abb1785 'noexcept' is added to section and segment API 2022-11-12 19:03:39 +02:00
Serge Lamikhov-Center
94505dd637 Add 'lazy' load for own opened streams 2022-11-12 18:19:48 +02:00
Serge Lamikhov-Center
4320ea915e 'noexept' added to upper level API members 2022-11-12 17:00:08 +02:00
Serge Lamikhov-Center
ad8b641f96 Lazy load segment data - load data upon request 2022-11-11 17:49:59 +02:00
Serge Lamikhov-Center
ef56f39379 Remove redundant member initialization 2022-11-11 16:46:49 +02:00
Serge Lamikhov-Center
8409f20a7f Remove output to std::cerr 2022-11-11 01:09:12 +02:00
Serge Lamikhov-Center
705a91c568 Use const referencies in set_xxx arguments 2022-11-10 22:37:55 +02:00
Serge Lamikhov-Center
755f81351f Generilize the section compression calls 2022-11-10 19:26:05 +02:00
Nathan Strong
7608269069 Externalize zlib dependency
== DETAILS

- define an interface/abstract class for zlib implementation
- update the code to reference the implementation, remove zlib dependency
- use constructor injection to provide implementations to elfio
- add a test to validate the injected object gets used properly
`
2022-11-04 18:12:15 +02:00
Nathan Strong
04985836db fix mismatched allocator warning 2022-11-04 18:12:15 +02:00
Nathan Strong
ac542cbb8b Add support for writing RPL/RPX
== DETAILS
Honor the compression flag and write compressed section data.
2022-11-04 18:12:15 +02:00
Nathan Strong
582d929d9d Add support for reading Wii U RPX/RPL
== DETAILS
The Wii U uses a slightly customized ELF format which uses
zlib compression on certain section types.

This commit adds the following:
- add `SHT_` constants for the custom ELF sections
- add `SHF_RPX_DEFLATE` flag used to denote a compressed section
- add code in the section `load()` method to detect the `SHF_RPX_DEFLATE` flag
  and decompress the section
2022-11-04 18:12:15 +02:00
Serge Lamikhov-Center
1df77b2495 A tiny refactoring according to SonarLint 2022-10-16 18:43:18 +03:00
Serge Lamikhov-Center
924732c835 Just VSCode settings 2022-09-29 16:33:35 +03:00
Serge Lamikhov-Center
619c9b6884 Apply advices given by clang-tidy 2022-09-28 20:09:39 +03:00
tgotic
19bfbd5825 Additional SHF flags 2022-09-26 15:34:01 +03:00
Serge Lamikhov-Center
766f5e4dda Address more warnings reported by SonarLint 2022-09-23 17:54:24 +03:00
tgotic
c546c16222 New types and OS/ABI in dump
Added some types and strings, table for OS/ABI, added OS/ABI and ABI version to dump
2022-09-22 16:47:41 +03:00
Serge Lamikhov-Center
cccc78a37b Add 'explicit' keyword 2022-09-17 09:26:05 +03:00
Serge Lamikhov-Center
f21f8ad533 More refactoring 2022-09-16 20:51:20 +03:00
Serge Lamikhov-Center
b57b08409b More refactoring reported by SonarLint 2022-09-16 20:47:27 +03:00