diff --git a/CHANGELOG.md b/CHANGELOG.md index 167a2d6b..12c8653b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,70 @@ -------------------------------------------------------------------------------- +## 0.32.2 + +Released 2023/12/24. + +### Added + +* Added ELF relocations for LoongArch ABI v2.20. + [#578](https://github.com/gimli-rs/object/pull/578) + [#589](https://github.com/gimli-rs/object/pull/589) + +* Added ELF support for SHARC. + [#593](https://github.com/gimli-rs/object/pull/593) + +* Added `write::coff::Writer`. + [#595](https://github.com/gimli-rs/object/pull/595) + +* Added `SubArchitecture::Arm64EC` support for PE/COFF. + [#607](https://github.com/gimli-rs/object/pull/607) + +* Added `SubArchitecture::Arm64E` support for Mach-O. + [#614](https://github.com/gimli-rs/object/pull/614) + +* Added `read::Object::symbol_by_name` and `read::Object::symbol_by_name_bytes`. + [#602](https://github.com/gimli-rs/object/pull/602) + +* Added more functions to the low level API in `read::xcoff`. + [#608](https://github.com/gimli-rs/object/pull/608) + +* Added more functions to the low level API in `read::macho`. + [#584](https://github.com/gimli-rs/object/pull/584) + +### Changed + +* Fixes for AArch64 relocation addends for Mach-O. + [#581](https://github.com/gimli-rs/object/pull/581) + +* Changes to `write::Object` output for Mach-O, including the addition of a `LC_DYSYMTAB` load command. + [#584](https://github.com/gimli-rs/object/pull/584) + +* Changed `write::Object` to always use `R_X86_64_PLT32` for x86-64 branches for ELF. + [#590](https://github.com/gimli-rs/object/pull/590) + +* Fixed `read::ObjectSymbol::kind` for undefined section symbols for COFF. + [#592](https://github.com/gimli-rs/object/pull/592) + +* Fixed `write::Object` to accept undefined section symbols for COFF. + [#594](https://github.com/gimli-rs/object/pull/594) + +* Improved parsing of auxiliary section symbols for COFF. + [#603](https://github.com/gimli-rs/object/pull/603) + +* Improved the selection of symbols for `read::Object::symbol_map`. + This includes changes to `read::Symbol::is_definition`. + [#601](https://github.com/gimli-rs/object/pull/601) + [#606](https://github.com/gimli-rs/object/pull/606) + +* Changed `read::ObjectSymbol::kind` for ELF `STT_NOTYPE` symbols to `SymbolKind::Unknown`. + [#604](https://github.com/gimli-rs/object/pull/604) + +* Changed `read::ObjectSymbol::scope` for XCOFF `C_HIDEXT` symbols to `SymbolScope::Compilation`. + [#605](https://github.com/gimli-rs/object/pull/605) + +-------------------------------------------------------------------------------- + ## 0.32.1 Released 2023/09/03. diff --git a/Cargo.toml b/Cargo.toml index 161c893c..55f08974 100755 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "object" -version = "0.32.1" +version = "0.32.2" edition = "2018" exclude = ["/.github", "/testfiles"] keywords = ["object", "elf", "mach-o", "pe", "coff"] @@ -16,10 +16,10 @@ features = ['doc'] crc32fast = { version = "1.2", default-features = false, optional = true } flate2 = { version = "1", optional = true } indexmap = { version = "2.0", default-features = false, optional = true } -wasmparser = { version = "0.110.0", optional = true } +wasmparser = { version = "0.118.0", optional = true } memchr = { version = "2.4.1", default-features = false } hashbrown = { version = "0.14.0", features = ["ahash"], default-features = false, optional = true } -ruzstd = { version = "0.4.0", optional = true } +ruzstd = { version = "0.5.0", optional = true } # Internal feature, only used when building as part of libstd, not part of the # stable interface of this crate. diff --git a/src/read/traits.rs b/src/read/traits.rs index 9d65c60c..67105d37 100644 --- a/src/read/traits.rs +++ b/src/read/traits.rs @@ -53,7 +53,11 @@ pub trait Object<'data: 'file, 'file>: read::private::Sealed { /// Get the architecture type of the file. fn architecture(&self) -> Architecture; - /// Get the sub-architecture type of the file. + /// Get the sub-architecture type of the file if known. + /// + /// A value of `None` has a range of meanings: the file supports all + /// sub-architectures, the file does not explicitly specify a + /// sub-architecture, or the sub-architecture is currently unrecognized. fn sub_architecture(&self) -> Option { None }