aboutsummaryrefslogtreecommitdiff
path: root/src/link/MachO/Trie.zig
AgeCommit message (Collapse)Author
2024-01-24macho: copy over new implementation sources from zldJakub Konka
2023-11-19compiler: correct unnecessary uses of 'var'mlugg
2023-08-29macho: merge Zld state with MachO stateJakub Konka
2023-07-26macho: create export trie root explicitly with Trie.initJakub Konka
2023-06-24all: migrate code to new cast builtin syntaxmlugg
Most of this migration was performed automatically with `zig fmt`. There were a few exceptions which I had to manually fix: * `@alignCast` and `@addrSpaceCast` cannot be automatically rewritten * `@truncate`'s fixup is incorrect for vectors * Test cases are not formatted, and their error locations change
2023-04-28update codebase to use `@memset` and `@memcpy`Andrew Kelley
2022-11-29std.mem.Allocator: allow shrink to failAndrew Kelley
closes #13535
2022-10-22macho: fix bug in incorrectly splicing nodes in trieJakub Konka
2021-11-30allocgate: std Allocator interface refactorLee Cannon
2021-09-24Spelling corrections (#9833)Josh Soref
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2021-09-19Update all ensureCapacity calls to the relevant non-deprecated versionRyan Liptak
2021-08-01macho: fix Trie and CodeSignature unit testsJakub Konka
after the cleanup.
2021-08-01macho: make Trie accept allocator as a paramJakub Konka
instead of storing it as a member of Trie struct.
2021-06-29zld: put all global symbols in the export trieJakub Konka
* sort the symbols by name to optimise the export trie first * insert only symbols with global linkage (private exts or weak should not make the cut)
2021-06-14add ast-check flag to zig fmt, fix found bugsVeikka Tuominen
2021-05-08update usage of std.testing in stage2Veikka Tuominen
2021-01-01macho: unblock stage2 on 32bit platforms (#7632)Jakub Konka
* macho: unblock stage2 on 32bit platforms Unblocks compilation of stage2 on 32bit platforms, and fixes #7630. * Use libstd convention: reads - usize, writes - u64
2020-12-19macho: auto-coerce to sliceJakub Konka
2020-12-17macho: refactor calculating LEB128 sizesJakub Konka
2020-12-17macho: cleanup (lazy) binding info tablesJakub Konka
2020-12-09macho: parsing Trie now takes a reader and returns bytes readJakub Konka
2020-12-09macho: split writing Trie into finalize and const writeJakub Konka
2020-12-09macho: add generic terminal info nullable struct to a nodeJakub Konka
2020-12-09macho: cleanup export trie generation and parsingJakub Konka
Now, ExportTrie is becoming usable for larger linking contexts such as linking in multiple object files, or relinking dylibs, etc.
2020-11-16Move leb128 and remove trivial *mem functions as discussed in #5588 (#6876)tgschultz
* Move leb128 out of debug and remove trivial *mem functions as discussed in #5588 * Turns out one of the *Mem functions was used by MachO. Replaced with trivial use of FixedBufferStream.
2020-10-09Apply nitpick: top-level doc commentsJakub Konka
Signed-off-by: Jakub Konka <kubkon@jakubkonka.com>
2020-10-08Clean up writing the trie into ULEB128 byte streamJakub Konka
Prealloc as much as possible to improve alloc performance. Signed-off-by: Jakub Konka <kubkon@jakubkonka.com>
2020-10-08Fix ULEB128 encoding of trieJakub Konka
Use algorithm described in official Apple `ld64` implementation. Link: https://opensource.apple.com/source/ld64/ld64-123.2.1/src/abstraction/MachOTrie.hpp Signed-off-by: Jakub Konka <kubkon@jakubkonka.com>
2020-10-07Add writeULEB128Mem test and couple fixesJakub Konka
Signed-off-by: Jakub Konka <kubkon@jakubkonka.com>
2020-10-07Move trie structure into its own file-moduleJakub Konka
Signed-off-by: Jakub Konka <kubkon@jakubkonka.com>