aboutsummaryrefslogtreecommitdiff
path: root/src/link/MachO/Symbol.zig
AgeCommit message (Collapse)Author
2025-09-30fix compiler ftbfs from std.macho and std.dwarf changesmlugg
2025-08-31std.fmt: delete deprecated APIsAndrew Kelley
std.fmt.Formatter -> std.fmt.Alt std.fmt.format -> std.Io.Writer.print
2025-08-29std.Io: delete GenericReaderAndrew Kelley
and delete deprecated alias std.io
2025-07-07MachO: revert unfinished changesAndrew Kelley
2025-07-07MachO: update to new std.io APIsAndrew Kelley
2025-06-12x86_64: remove linker references from codegenJacob Young
2024-08-28std: update `std.builtin.Type` fields to follow naming conventionsmlugg
The compiler actually doesn't need any functional changes for this: Sema does reification based on the tag indices of `std.builtin.Type` already! So, no zig1.wasm update is necessary. This change is necessary to disallow name clashes between fields and decls on a type, which is a prerequisite of #9938.
2024-08-17macho: update codegen and linker to distributed jump table approachJakub Konka
2024-07-22macho: handle empty string in ZigObject.getStringJakub Konka
2024-07-22macho: cache string lenJakub Konka
2024-07-22macho: run more things in parallelJakub Konka
2024-07-18macho: fix symbol visibility merging logicJakub Konka
2024-07-18macho: fix compile errorsJakub Konka
2024-07-18macho: migrate Atom and SymbolJakub Konka
2024-05-23link/macho: dedup literals in objects and internal object fileJakub Konka
2024-02-03macho: make atom address relative wrt defining sectionJakub Konka
2024-01-28macho: do not allocate input files in fullJakub Konka
2024-01-24macho: add misc fixes targeting macos 11Jakub Konka
2024-01-24macho: resolve relocs pointing at __got_zigJakub Konka
2024-01-24macho: add __zig_got section implementationJakub Konka
2024-01-24macho: create Atom for Decl in ZigObjectJakub Konka
2024-01-24macho: split symbol.flags.got into needs_got and has_gotJakub Konka
2024-01-24macho: introduce ZigObjectJakub Konka
2024-01-24macho: write to fileJakub Konka
2024-01-24macho: parse an input object file!Jakub Konka
2024-01-24macho: copy over new implementation sources from zldJakub Konka
2021-07-16zld: replace parsed reloc with a simple wrapper around macho.relocation_infoJakub Konka
2021-07-15zld: reuse string table for symbol namesJakub Konka
rather than manage allocs separately per symbol.
2021-07-15zld: move tracking binding for proxies into TextBlockJakub Konka
which is the source of binding rather than its target. That is, we now track by source.
2021-07-15zld: remove StringTable abstractionJakub Konka
2021-07-15zld: map [section addr, first symbol) to a tracked TextBlockJakub Konka
which applies exclusively to x86_64-macos.
2021-07-15zld: re-enable all of linker after complete rewriteJakub Konka
2021-07-15zld: allocate TextBlocksJakub Konka
temporarily by iterating over all defined TextBlocks. However, once we merge this with MachO incremental, updates will be done at the point of creation and/or update. Also, fix mining TLV knowledge for working out TLV pointers.
2021-07-15zld: save rebase and TLV offset as part of TextBlockJakub Konka
instead of as part of the Symbol. This seems to be more optimal way of handling dyld ops in presence of no splittable input sections in object files.
2021-07-15zld: move should_rebase logic into SymbolJakub Konka
2021-07-15zld: create TextBlocks for tentative definitionsJakub Konka
and fix the links in the `TextBlock`s linked list!
2021-07-15zld: convert section in linked list of TextBlocksJakub Konka
2021-07-15zld: fix ast errorsJakub Konka
2021-07-15zld: reenable entire linker in the new schemeJakub Konka
without the stabs... They are tricky and need a bit more work.
2021-07-15zld: coalesce symbols on creationJakub Konka
2021-07-15zld: add Symbol.Stab and move nlist creation logic thereJakub Konka
2021-07-15zld: abstract Symbol creation logicJakub Konka
2021-06-28zld: recurse dylibs reexports when defined and desiredJakub Konka
2021-06-24Apply AST fixesJakub Konka
2021-06-24zld: merge Stub with Dylib structJakub Konka
After giving it more thought, it doesn't make sense to separate the two structurally. Instead, there should be two constructors for a Dylib struct: one from binary file, and the other from a stub file. This cleans up a lot of code and opens the way for recursive parsing of re-exports from a dylib which are a hard requirement for native feel when linking frameworks.
2021-06-24zld: clean up memory management and refactorJakub Konka
2021-06-24zld: handle dynamic binding of proxies for objc correctlyJakub Konka
2021-06-24zld: introduce Stub.zig which represents parsed stub fileJakub Konka
Instead of trying to fit a stub file into the frame of a Dylib struct, I think it makes more sense to keep them as separate entities with possibly shared interface (which would be added in the future). This cleaned up a lot of logic in Dylib as well as Stub. Also, while here I've made creating actual *Symbols lazy in the sense Dylib and Stub only store hash maps of symbol names that they expose but we defer create and referencing given dylib/stub until link time when a symbol is actually referenced. This should reduce memory usage and speed things up a bit.
2021-06-24zld: create a synthetic ___dso_handle symbol self-referencedJakub Konka
2021-06-24zld: parse libSystem tbd stub when linkingJakub Konka