aboutsummaryrefslogtreecommitdiff
path: root/src/link/MachO/Atom.zig
AgeCommit message (Collapse)Author
2024-02-03macho: minor fixes and sanitize input *_zig segment/sections namesJakub Konka
2024-02-03macho: make atom address relative wrt defining sectionJakub Konka
2024-02-03macho: emit relocs for ZigObjectJakub Konka
2024-01-31macho: improve error msg when relaxing GOT failsJakub Konka
2024-01-28macho: move getAtomData switch into AtomJakub Konka
2024-01-28macho: do not allocate input files in fullJakub Konka
2024-01-24macho: clean up logic for deciding if needs __stub_helperJakub Konka
2024-01-24macho: fix 32bit compilation issuesJakub Konka
2024-01-24macho: resolve relocs pointing at __got_zigJakub Konka
2024-01-24macho: re-read atom code from ZigObject when resolving relocsJakub Konka
2024-01-24macho: allocate sections and segments that need itJakub Konka
2024-01-24macho: fix symbol index dereference in codegen wrt ZigObjectJakub Konka
This is incredibly confusing and I really need to simplify it. Elf also possesses this shortcoming so once I get Coff up to speed it should hopefully become clear on how to refactor this.
2024-01-24codegen: re-implement enough of codegen to error out instead panicJakub Konka
2024-01-24macho: fill the rest of ZigObjectJakub Konka
2024-01-24macho: implement more self-hosted primitivesJakub 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: preserve section name for code sectionsJakub Konka
2024-01-24macho: fix dead stripping logic to exclude debug sectionsJakub Konka
2024-01-24macho: re-instate build-obj codepathJakub Konka
2024-01-24macho: write to fileJakub Konka
2024-01-24macho: sort sections; use Atom.Alignment for alignment; init segmentsJakub Konka
2024-01-24macho: report undefined symbols to the userJakub Konka
2024-01-24macho: parse an input object file!Jakub Konka
2024-01-24macho: get the ball rolling!Jakub Konka
2024-01-24macho: copy over new implementation sources from zldJakub Konka
2024-01-01fix a round of compile errors caused by this branchAndrew Kelley
2024-01-01linker: update target referencesAndrew Kelley
2023-10-31std.builtin.Endian: make the tags lower caseAndrew Kelley
Let's take this breaking change opportunity to fix the style of this enum.
2023-10-31mem: fix ub in writeIntJacob Young
Use inline to vastly simplify the exposed API. This allows a comptime-known endian parameter to be propogated, making extra functions for a specific endianness completely unnecessary.
2023-10-30macho: implement enough of extern handling to pass comptime export testsJakub Konka
2023-09-21compiler: move struct types into InternPool properAndrew Kelley
Structs were previously using `SegmentedList` to be given indexes, but were not actually backed by the InternPool arrays. After this, the only remaining uses of `SegmentedList` in the compiler are `Module.Decl` and `Module.Namespace`. Once those last two are migrated to become backed by InternPool arrays as well, we can introduce state serialization via writing these arrays to disk all at once. Unfortunately there are a lot of source code locations that touch the struct type API, so this commit is still work-in-progress. Once I get it compiling and passing the test suite, I can provide some interesting data points such as how it affected the InternPool memory size and performance comparison against master branch. I also couldn't resist migrating over a bunch of alignment API over to use the log2 Alignment type rather than a mismash of u32 and u64 byte units with 0 meaning something implicitly different and special at every location. Turns out you can do all the math you need directly on the log2 representation of alignments.
2023-08-30macho: remove obsolete error.FailedToResolveRelocationTargetJakub Konka
2023-08-29macho: merge Zld state with MachO stateJakub Konka
2023-08-29macho: save indexes to all sections of interestJakub Konka
2023-08-29macho: unify creating atomsJakub Konka
2023-08-29macho: move initSection into MachO from ZldJakub Konka
2023-08-29macho: move getOutputSection into AtomJakub Konka
2023-08-29macho: remove dead codeJakub Konka
2023-08-29macho: use TableSection for stub entries in zld driverJakub Konka
Write thunks separately from other atoms - this can still be improved by not using atoms at all, but one thing at a time.
2023-08-29macho: use TableSection for TLV pointer entries in zld driverJakub Konka
2023-08-29macho: use TableSection for GOT entries in zld driverJakub Konka
2023-08-29macho: unify Atom concept between driversJakub Konka
2023-08-29macho: unify concept of SymbolWithLoc across driversJakub Konka
2023-05-11fix incorrect use of mutable pointers to temporary valuesVeikka Tuominen
2023-04-21macho: do not allocate atoms for stub entriesJakub Konka
2023-04-13macho: refactor relocation type in incremental linkerJakub Konka
2023-04-05macho: reapply relocation dirtying logic from coff linkerJakub Konka