| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2025-08-29 | std.Io: delete GenericReader | Andrew Kelley | |
| and delete deprecated alias std.io | |||
| 2025-08-11 | std.ArrayList: make unmanaged the default | Andrew Kelley | |
| 2025-07-07 | std.fmt: fully remove format string from format methods | Andrew Kelley | |
| Introduces `std.fmt.alt` which is a helper for calling alternate format methods besides one named "format". | |||
| 2025-07-07 | MachO: update to new std.io APIs | Andrew Kelley | |
| 2025-02-22 | zig build fmt | Andrew Kelley | |
| 2024-07-22 | macho: run more things in parallel | Jakub Konka | |
| 2024-07-18 | macho: migrate UnwindInfo | Jakub Konka | |
| 2024-07-18 | macho: move unwind info records ownership to Objects | Jakub Konka | |
| 2024-01-24 | macho: fix dead stripping logic to exclude debug sections | Jakub Konka | |
| 2024-01-24 | macho: handle dead stripping of atoms | 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 | move force_undefined_symbols into Compilation | Andrew Kelley | |
| This field is needed by Compilation regardless of whether a link file is instantiated. Fixes an invalid check for bin_file=null. | |||
| 2024-01-01 | fix remaining compile errors except one | Andrew Kelley | |
| 2024-01-01 | linkers: update references to "options" field | Andrew Kelley | |
| 2024-01-01 | linker: update target references | Andrew Kelley | |
| 2024-01-01 | linker: update output_mode references | Andrew Kelley | |
| 2023-11-10 | macho: resolve special section/segment boundary symbols | Jakub Konka | |
| Boundary symbols have a special name prefix: * section$start$segname$sectname * section$stop$segname$sectname * segment$start$segname * segment$stop$segname and will resolve to either start or end of the respective section/segment if found. If not found, we return an error stating we couldn't find the requested section/segment rather than silently failing and resolving the address to 0 which seems to be the case with Apple's ld64. | |||
| 2023-08-30 | macho: report basic __eh_frame problems as errors | Jakub Konka | |
| 2023-08-29 | macho: fix compilation issues | Jakub Konka | |
| 2023-08-29 | macho: merge Zld state with MachO state | Jakub Konka | |
| 2023-08-29 | macho: move symbol resolver into zld driver's state | Jakub Konka | |
| 2023-08-29 | macho: remove dead code | 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: add simple error reporting for misc errors | Jakub Konka | |
| 2023-08-29 | macho: unify concept of SymbolWithLoc across drivers | Jakub Konka | |
| 2023-08-03 | macho: set first and last atom indexes to 0 when marking section for pruning | Jakub Konka | |
| 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-19 | all: zig fmt and rename "@XToY" to "@YFromX" | Eric Joldasov | |
| Signed-off-by: Eric Joldasov <bratishkaerik@getgoogleoff.me> | |||
| 2023-04-01 | link: handle -u flag in all linkers | Jakub Konka | |
| Also clean up parsing of linker args - reuse `ArgsIterator`. In MachO, ensure we add every symbol marked with `-u` as undefined before proceeding with symbol resolution. Additionally, ensure those symbols are never garbage collected. MachO entry_in_dylib test: pass `-u _my_main` when linking executable so that it is not incorrectly garbage collected by the linker. | |||
| 2023-04-01 | macho: do not assume entrypoint is defined | Jakub Konka | |
| 2023-03-22 | macho+zld: refactor parsing of relocation target | Jakub Konka | |
| 2023-03-20 | macho+zld: relax assumption about dead strip atoms uniqueness | Jakub Konka | |
| In case the compiler outputted an object file that is not slicable into subsections, entry point may overlap with a section atom which is perfectly fine, so don't panic in that case. | |||
| 2023-02-18 | update std lib and compiler sources to new for loop syntax | Andrew Kelley | |
| 2023-02-06 | macho: downgrade alignment requirements for symtab in object files | Jakub Konka | |
| Parse and sort relocations by address descending. | |||
| 2023-01-21 | macho: synthesise unwind records in absence of compact unwind section | Jakub Konka | |
| Unlike Apple ld, we will not do any DWARF CFI parsing and simply output DWARF type unwind records. | |||
| 2023-01-20 | zld: parse, synthesise and emit unwind records | Jakub Konka | |
| 2022-12-09 | macho+zld: skip atomless synthetic globals in dead_strip | Jakub Konka | |
| They are implicitly marked live. | |||
| 2022-11-18 | run zig fmt on everything checked by CI | Stevie Hryciw | |
| 2022-10-30 | macho: fix regression in dead strip for x86_64 | Jakub Konka | |
| Correctly handle calculating encompassing atoms for local relocations (`r_extern == 0`). | |||
| 2022-10-24 | link: add an explicit error set for flush() and flushModule() | Andrew Kelley | |
| This makes it easier to understand how control flow should happen in various cases; already just by doing this it is revealed that UndefinedSymbol and UndefinedSymbolReference should be merged, and that MissingMainEntrypoint should be removed in favor of the ErrorFlags mechanism thath we already have for missing the main entrypoint. The main motivation for this change, however, is preventing a compile error when there is conditional compilation inside linker implementations, causing the flush() error set to depend on compilation options. With this change, the error set is fixed, and, notably, the `-Donly-c` flag no longer has compilation errors due to this error set. | |||
| 2022-10-22 | macho: some docs | Jakub Konka | |
| 2022-10-22 | macho: refactor dead code stripping conditions | Jakub Konka | |
| 1. If an object file was not compiled with `MH_SUBSECTIONS_VIA_SYMBOLS` such a hand-written ASM on x86_64, treat the entire object file as not suitable for dead code stripping aka a GC root. 2. If there are non-extern relocs within a section, treat the entire section as a root, at least temporarily until we work out the exact conditions for marking the atoms live. | |||
| 2022-10-22 | macho: do not skip over SUBTRACTOR reloc when dead stripping | Jakub Konka | |
| 2022-10-22 | macho: fix handling of lack of subsections and tracking of inner symbols | Jakub Konka | |
| 2022-10-22 | macho: skip parsing __eh_frame until we know how to handle it | Jakub Konka | |
