macaw/base/ChangeLog.md
Ryan Scott 93b588a58b macaw-base: Resolve RISC-V relocations
This builds on top of the work in GaloisInc/elf-edit#45. For now, I only add
support for a select few relocation types, leaving the rest as future work.

This paves a way for an eventual fix for #414.
2024-07-31 10:11:53 -04:00

1.8 KiB
Raw Blame History

Revision history for macaw-base

Next

Features

  • resolveElfContents, as well as related functions in Data.Macaw.Memory.ElfLoader, now compute dynamic function symbols for nonposition-independent executables. These were previously omitted due to an oversight in the implementation.

  • Add support for PPC32 and PPC64 relocations in Data.Macaw.Memory.ElfLoader.

  • Add support for RISC-V relocations in Data.Macaw.Memory.ElfLoader.

API Changes

  • Architecture-specific block terminators can now contain macaw values

    This changed the type of the architecture extension block terminators from ArchTermStmt ids to ArchTermStmt f where f ~ Value arch ids at the macaw level.

  • Architecture backends can now configure the block classification during the discovery phase

    The interface to configure block classification is exposed through the ArchitectureInfo. Note that clients that have not created their own ArchitectureInfo from scratch should be unaffected (which is the vast majority).

  • The post-discovery AST types are now exported from Data.Macaw.Discovery.ParsedContents

    It is recommended that future references to these types be done through this module. They are re-exported from their original location (Data.Macaw.Discovery.State) for backwards compatibility. One day that is likely to change.

  • The DynamicSymbolTable constructor of Data.Macaw.Memory.ElfLoader's SymbolTable data type now has an additional VersionDefMap field, which is needed for finding versioning information in some cases.

  • The Hashable and HashableF instances for App f now require TestEquality f constraints. (This is needed to support hashable-1.4.*, which adds Eq as a superclass to Hashable.)

  • SubroutineTypeDecl now contains a parsed Variable (rather than an unparsed DIE) for its formals.