| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 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 incorrect lookup of symbols when calculating subtractors | Jakub Konka | |
| 2022-10-22 | macho: rewrite movq to leaq when TLV is not external pointer | Jakub Konka | |
| 2022-10-22 | macho: gracefully handle uninitialized symtabs in objects | Jakub Konka | |
| 2022-10-22 | macho: fix handling of lack of subsections and tracking of inner symbols | Jakub Konka | |
| 2022-10-22 | macho: relax SUBTRACTOR assumption it not being a defined global | Jakub Konka | |
| 2022-10-22 | macho: revert changes to file descriptors mgmt | Jakub Konka | |
| 2022-10-22 | macho: fix silly error where we would incorrectly skip a valid binding | Jakub Konka | |
| 2022-10-22 | macho: fix bug in incorrectly splicing nodes in trie | Jakub Konka | |
| 2022-10-22 | macho: do not assume __la_symbol_ptr was created | Jakub Konka | |
| 2022-10-22 | macho: always create __TEXT segment | Jakub Konka | |
| 2022-10-22 | macho: skip parsing __eh_frame until we know how to handle it | Jakub Konka | |
| 2022-10-22 | macho: fix 32bit build | Jakub Konka | |
| 2022-10-22 | macho: remove unused nlist flags | Jakub Konka | |
| 2022-10-22 | macho: upstream rewritten traditional linker, zld | Jakub Konka | |
| kubkon/zld gitrev 5733ed87abe2f07e1330c3232a252e9defec638a | |||
| 2022-10-18 | all: rename `@maximum` to `@max` and `@minimum` to `@min` | Ali Chraghi | |
| 2022-09-18 | macho: fix after sync with master | Jakub Konka | |
| 2022-09-18 | macho: ensure we extend section size when updating last atom | Jakub Konka | |
| 2022-09-18 | macho: allow for add and ldr when resolving GOT_LOAD_* relocs | Jakub Konka | |
| 2022-09-18 | macho: rewrite how we allocate space in incremental context | Jakub Konka | |
| 2022-09-18 | macho: start separating linking contexts | Jakub Konka | |
| 2022-09-18 | macho: move to incremental writes and global relocs for incremental | Jakub Konka | |
| 2022-09-18 | macho: do not call populateMissingMetadata in full link mode | Jakub Konka | |
| 2022-09-18 | macho: clean up use of section ids | Jakub Konka | |
| 2022-09-18 | macho: move main driver loop for one-shot into standalone zld module | Jakub Konka | |
| 2022-09-18 | macho: separate in structure and logic incremental relocs and file relocs | Jakub Konka | |
| 2022-09-17 | macho: do not assume every object has a symtab | Jakub Konka | |
| For example, building stage2 requires an empty `empty.cc` source file compiling which generates a valid translation unit with no symtab/strtab. In this case, we cannot simply assume that every translation unit will have a valid symtab; instead, we cautiously default the input symtab and strtab fields to optional `null` to signal symtab's presence or its lack of. In case the symtab is not present, we catch this fact when splitting input sections into subsections and create a synthetic symbol per every suitable section. | |||
| 2022-09-09 | macho: use globals free list like in COFF linker | Jakub Konka | |
| 2022-09-07 | macho+wasm: unify and clean up closing file handles | Jakub Konka | |
| 2022-08-30 | coff: reorganize the linker | Jakub Konka | |
| 2022-08-24 | Merge pull request #12574 from Vexu/remove-bit-op-type-param | Andrew Kelley | |
| stage2+stage1: remove type parameter from bit builtins | |||
| 2022-08-23 | macho: fix compile errors in std.debug | Jakub Konka | |
| 2022-08-23 | std.debug: implement support for DWARFv5 | Andrew Kelley | |
| 2022-08-22 | Dwarf: Added stroffsetsptr support (#12270) | Keith Chambers | |
| * Added support for stroffsetsptr class in Dwarf stdlib * Proper initializion of debug_str_offsets in DwarfInfo * Added missing null initializer to DwarfInfo in Macho * Added missing is_64 field to getAttrString in DwarfInfo * Fixed formatting * Added missing is_64 param to getAttrString * Added required cast to usize * Adding missing .debug_str_offsets initialization * getAttrString now uses the str_offsets_base attr | |||
| 2022-08-22 | stage2+stage1: remove type parameter from bit builtins | Veikka Tuominen | |
| Closes #12529 Closes #12511 Closes #6835 | |||
| 2022-08-12 | macho: update __DWARF sections before and after writing out __LINKEDIT | Jakub Konka | |
| 2022-08-10 | link.MachO: use accurate alignment attribute on pointers | Andrew Kelley | |
| Also adds a new method to ArrayList: appendUnalignedSlice | |||
| 2022-08-10 | Revert "macho: allow unaligned offsets in object files" | Andrew Kelley | |
| This reverts commit 45c444ff18b43d30a7277e346174ba6eca4a6193. | |||
| 2022-08-10 | macho: allow unaligned offsets in object files | Jakub Konka | |
| 2022-08-03 | macho: do not preempt segment headers; do it when commiting to file | Jakub Konka | |
| This way, tracking segment-to-section mapping becomes a lot easier since it's effectively just start index plus number of sections defined within the segment. If a section becomes empty however care needs to be taken to remove the header upon committing to the final binary. | |||
| 2022-08-03 | macho: fix linking in incremental context | Jakub Konka | |
| Fix incorrect writing of symtab and strtab in dSYM bundle in incremental context. Fix incorrectly navigating unnamed consts (freeing) in incremental context. This is currently hard-coded to require all consts to land in `__TEXT,__const`, which is wrong and needs a rewrite. | |||
| 2022-08-03 | macho: cleanup output section selection logic | Jakub Konka | |
| Cache only section indexes used by the linker for synthetic sections and/or incremental codepath. | |||
| 2022-08-03 | macho: update how we insert output sections | Jakub Konka | |
| Instead of generating sections upfront, allow generation by scanning the object files for input -> output sections mapping. Next, always strive to keep output sections in the final container sorted as they appear in the final binary. This makes the linker less messy wrt handling of output sections sort order for dyld/macOS not to complain. There's still more work to be done for incremental context though to make this work but looks promising already. | |||
| 2022-08-03 | macho: sync with zld | Jakub Konka | |
| gitrev a2c32e972f8c5adfcda8ed2d99379ae868f59c24 https://github.com/kubkon/zld/commit/a2c32e972f8c5adfcda8ed2d99379ae868f59c24 | |||
| 2022-07-27 | std.fmt: add more invalid format string errors | r00ster91 | |
| 2022-07-26 | std.fmt: require specifier for unwrapping ?T and E!T | InKryption | |
| 2022-07-25 | macho: fix memory leak and refactor Target usage | Jakub Konka | |
| 2022-07-22 | macho: include __StaticInit input sections as GC roots | Jakub Konka | |
