aboutsummaryrefslogtreecommitdiff
path: root/src/link/MachO
AgeCommit message (Collapse)Author
2023-09-25macos: discontinue redundant search/link for libcMichael Dusan
2023-09-25macho: add verbose args for -platform_versionMichael Dusan
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-09-04macho: check if we should emit LC_VERSION_MIN_ if target low enoughJakub Konka
2023-08-31macho: report missing libSystem/libc system libraries to the userJakub Konka
2023-08-30macho: remove error.UnhandledDwFormValue from link.FileJakub Konka
Eventually, we will validate DWARF info upfront and report errors to the user but this will require a rewrite of several parts of the linker so leaving as a TODO for the near future.
2023-08-30macho: report basic __eh_frame problems as errorsJakub Konka
2023-08-30macho: remove obsolete error.FailedToResolveRelocationTargetJakub Konka
2023-08-30macho: improve error reporting for re-exports mismatchJakub Konka
2023-08-30macho: refactor resolving and parsing dependent dylibsJakub Konka
2023-08-29macho: simplify handling and reporting parsing errorsJakub Konka
2023-08-29macho: handle mismatched and missing platform errorsJakub Konka
2023-08-29macho: clean up array of supported platforms and versionsJakub Konka
2023-08-29link: remove unused darwin_sdk_version fieldJakub Konka
2023-08-29macho: clean up helpers for std.SemanticVersion <-> Apple version formattingJakub Konka
2023-08-29macho: parse platform info from each object file into Platform structJakub Konka
2023-08-29macho: make MachO.requiresCodeSignature accept link.OptionsJakub Konka
2023-08-29macho: remove MachO.requiresThunks as it is obsoleteJakub Konka
2023-08-29macho: create an explicit error set for parse functionsJakub Konka
2023-08-29macho: convert log.err when CPU arch is mismatched into actual errorsJakub Konka
2023-08-29macho: report symbol collision as compiler errorJakub Konka
2023-08-29macho: fix 32bit compilation issuesJakub Konka
2023-08-29macho: fix overalignment of stubs on aarch64Jakub Konka
2023-08-29macho: fix invalid alignment of stubs for x86_64Jakub Konka
2023-08-29macho: fix compilation issuesJakub 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 resolving globalsJakub Konka
2023-08-29macho: unify segment handlingJakub Konka
2023-08-29macho: unify writeLinkeditSegmentData funcJakub Konka
2023-08-29macho: unify creating atomsJakub Konka
2023-08-29macho: unify allocating special symbolsJakub Konka
2023-08-29macho: unify writeSegmentHeaders funcJakub Konka
2023-08-29macho: move initSection into MachO from ZldJakub Konka
2023-08-29macho: move getOutputSection into AtomJakub Konka
2023-08-29macho: move symbol resolver into zld driver's stateJakub Konka
2023-08-29macho: collect bind data by scanning atoms directly in objectsJakub Konka
2023-08-29macho: collect rebase data by scanning atoms directly in objectsJakub 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: remove obsolete function createDyldStubBinderGotAtomJakub Konka
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: change dyld_private_sym_index to dyld_private_atom_index in zldJakub Konka
2023-08-29macho: unify Atom concept between driversJakub Konka
2023-08-29macho: unify Section concept across driversJakub Konka
2023-08-29macho: add simple error reporting for misc errorsJakub Konka
2023-08-29macho: unify concept of SymbolWithLoc across driversJakub Konka
2023-08-29macho: simplify input file parsing for both driversJakub Konka
2023-08-29macho: remove page_size field as it can be computed when and where requiredJakub Konka