PatchMaker support for AVR
This PR adds PatchMaker and toolchain support for the AVR architecture. Needed to fix a few assumptions, for example, some compiler/linker flags set in Abstract_GNU_Toolchain are not supported in avr-gcc. Additionally, the LiefAddSegmentModifier relied on an existing NOTE segment, which AVR ELFs do not have. I've added a configuration option to choose between NOTE replacement vs LIEF's add segment method.
@rbs-afflitto Is there anything preventing us from testing the AVR assembler out as well? I see we don't have handling for x86/x64 either... though we do want to support those compilers.
I owe us the creation of two new issues for this merge:
test_toolchain_asm.pyupdates with AVR instructions.- A longer lived effort to ensure all PatchMaker tests result in emulatable/runnable patches in programs, not just builds.
Thanks for running the pytests locally.
Should have a new CI pipeline up and running soon!