Commit Graph

541 Commits

Author SHA1 Message Date
Serge Lamikhov-Center
6a94d4d108
Remove C compiler settings 2023-12-13 18:17:50 +02:00
Serge Lamikhov-Center
05a0f3dcd1
Exclude cl.exe build from Ubuntu-20-04 2023-12-13 18:09:23 +02:00
Serge Lamikhov-Center
da52b08f17
Add older Ubuntu OS version 2023-12-13 18:03:06 +02:00
Serge Lamikhov-Center
418e97d258
Update c-cpp.yml 2023-12-13 17:50:50 +02:00
Serge Lamikhov-Center
4bc17b6b81 Green title 2023-11-24 10:07:47 +02:00
Serge Lamikhov-Center
a528c2e99b Fix formatting 2023-11-23 19:20:53 +02:00
Serge Lamikhov-Center
d950ddbb90 The library artwork added 2023-11-23 18:22:17 +02:00
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