| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2024-02-07 | macho: parse input object files specifically for incl in archive | Jakub Konka | |
| 2024-02-07 | macho: emit an archive | Jakub Konka | |
| 2024-02-07 | macho: populate output archive symtab | Jakub Konka | |
| 2024-02-06 | macho: store open file descriptors in a global array | Jakub Konka | |
| 2024-01-30 | macho: improve weak-ref symbols handling | Jakub Konka | |
| 2024-01-29 | macho: re-enable dSYM but don't write anything to it yet | Jakub Konka | |
| 2024-01-28 | macho: fix 32bit builds | Jakub Konka | |
| 2024-01-28 | macho: do not allocate input files in full | Jakub Konka | |
| 2024-01-24 | macho: exclude symbols from empty sections when parsing unwind info | Jakub Konka | |
| 2024-01-24 | macho: synthesise unwind records from __eh_frame even if no __compact_unwind | Jakub Konka | |
| 2024-01-24 | macho: fix 32bit compilation issues | Jakub Konka | |
| 2024-01-24 | macho: do not enforce platform check for now | Jakub Konka | |
| 2024-01-24 | macho: fix symbol index dereference in codegen wrt ZigObject | Jakub 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-24 | macho: create Atom for Decl in ZigObject | Jakub Konka | |
| 2024-01-24 | macho: split symbol.flags.got into needs_got and has_got | Jakub Konka | |
| 2024-01-24 | macho: introduce ZigObject | Jakub Konka | |
| 2024-01-24 | macho: report duplicate symbols | Jakub Konka | |
| 2024-01-24 | macho: write to file | Jakub Konka | |
| 2024-01-24 | macho: sort sections; use Atom.Alignment for alignment; init segments | Jakub Konka | |
| 2024-01-24 | macho: resolve symbols and mark files live | Jakub Konka | |
| 2024-01-24 | macho: parse archives | Jakub Konka | |
| 2024-01-24 | macho: create scaffolding for parsing different input objects | Jakub Konka | |
| 2024-01-24 | macho: parse an input object file! | Jakub Konka | |
| 2024-01-24 | macho: get the ball rolling! | Jakub Konka | |
| 2024-01-24 | macho: copy over new implementation sources from zld | Jakub Konka | |
| 2024-01-01 | fix remaining compile errors except one | Andrew Kelley | |
| 2024-01-01 | linker: update target references | Andrew Kelley | |
| 2023-11-17 | std.macho: fix LoadCommandIterator to work with underaligned data | Jakub Konka | |
| 2023-09-21 | compiler: move struct types into InternPool proper | Andrew 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-30 | macho: report basic __eh_frame problems as errors | Jakub Konka | |
| 2023-08-29 | macho: handle mismatched and missing platform errors | Jakub Konka | |
| 2023-08-29 | macho: parse platform info from each object file into Platform struct | Jakub Konka | |
| 2023-08-29 | macho: merge Zld state with MachO state | Jakub Konka | |
| 2023-08-29 | macho: save indexes to all sections of interest | Jakub Konka | |
| 2023-08-29 | macho: unify creating atoms | Jakub Konka | |
| 2023-08-29 | macho: move initSection into MachO from Zld | Jakub Konka | |
| 2023-08-29 | macho: move getOutputSection into Atom | Jakub Konka | |
| 2023-08-29 | macho: use TableSection for stub entries in zld driver | Jakub 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-29 | macho: unify Atom concept between drivers | Jakub Konka | |
| 2023-08-29 | macho: unify Section concept across drivers | Jakub Konka | |
| 2023-08-29 | macho: unify concept of SymbolWithLoc across drivers | Jakub Konka | |
| 2023-08-29 | macho: simplify input file parsing for both drivers | Jakub Konka | |
| 2023-08-16 | macho: tie FDEs and unwind records to all symbol aliases | Jakub Konka | |
| This is in particular very important to the Zig language which allows exporting the same symbol under different names. For instance, it is possible to have a case such that: ``` ... 4258 T _foo 4258 T _bar ... ``` In this case we need to keep track of both symbol names when resolving FDEs and unwind records. | |||
| 2023-08-02 | macho: track unwind/dwarf cfi records by symbol rather than atom | Jakub Konka | |
| This solves the nuance case of compiling hand-crafted assembly files which do not feature `MH_SUBSECTIONS_VIA_SYMBOLS` flag resulting in input `Atom`s encompassing multiple symbols each with unique unwind information. | |||
| 2023-06-25 | macho: add fixes to __eh_frame parsing emitted by Nix C++ compiler | Jakub Konka | |
| 2023-06-24 | all: migrate code to new cast builtin syntax | mlugg | |
| 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-06-16 | migration: std.math.{min, min3, max, max3} -> `@min` & `@max` | r00ster91 | |
| 2023-05-23 | std.sort: add pdqsort and heapsort | Ali Chraghi | |
| 2023-04-28 | update codebase to use `@memset` and `@memcpy` | Andrew Kelley | |
| 2023-03-22 | macho+zld: make sure we populate source section index lookup if no undefs | Jakub Konka | |
