aboutsummaryrefslogtreecommitdiff
path: root/src/link
AgeCommit message (Collapse)Author
2024-01-24macho: move all unimplemented function stubs into ZigObjectJakub Konka
2024-01-24macho: introduce ZigObjectJakub Konka
2024-01-24test/link/macho: test force-loading objects containing ObjC from archivesJakub Konka
2024-01-24macho: remove all rpath parsing from the linkerJakub Konka
2024-01-24macho: print all definitions of symbols when printing duplicatesJakub Konka
2024-01-24macho: fix invalid generation of FDE recordsJakub Konka
2024-01-24macho: preserve section name for code sectionsJakub Konka
2024-01-24macho: parse dependent dylibsJakub 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: report duplicate symbolsJakub Konka
2024-01-24macho: write to fileJakub Konka
2024-01-24macho: allocate sections, segments and atomsJakub Konka
2024-01-24macho: sort sections; use Atom.Alignment for alignment; init segmentsJakub Konka
2024-01-24macho: init output and synthetic sectionsJakub Konka
2024-01-24macho: report undefined symbols to the userJakub Konka
2024-01-24macho: set dylib ordinals after pruningJakub Konka
2024-01-24macho: dead strip dylibsJakub Konka
2024-01-24macho: mark imports and exportsJakub Konka
2024-01-24macho: handle dead stripping of atomsJakub Konka
2024-01-24macho: claim unresolved symbolsJakub Konka
2024-01-24macho: convert tentative defs and create objc sectionsJakub Konka
2024-01-24macho: resolve synthetic symbolsJakub Konka
2024-01-24macho: resolve symbols and mark files liveJakub Konka
2024-01-24macho: init InternalObject and add forced undefined globalsJakub Konka
2024-01-24macho: prep for dylib deps (no resolution yet)Jakub Konka
2024-01-24macho: parse tbdsJakub Konka
2024-01-24macho: parse dylibsJakub Konka
2024-01-24macho: parse archivesJakub Konka
2024-01-24macho: create scaffolding for parsing different input objectsJakub Konka
2024-01-24macho: parse an input object file!Jakub Konka
2024-01-24macho: re-enable --verbose-linkJakub Konka
2024-01-24macho: get the ball rolling!Jakub Konka
2024-01-24macho: copy over new implementation sources from zldJakub Konka
2024-01-22std.io: replace readStructBig with readStructEndianTristan Ross
2024-01-20mingw: update build logicElaine Gibson
2024-01-15Merge pull request #18560 from ziglang/elf-report-dupesJakub Konka
elf: report duplicate symbol definitions
2024-01-15Merge pull request #17917 from Jan200101/PR/each_lib_rpath_frontendJakub Konka
move rpath to frontend and remove native paths from it
2024-01-15add `SHT_NOBITS` checkDavid Rubin
2024-01-14compiler: move each_lib_rpath to frontendJan200101
Co-authored-by: Andrew Kelley <andrew@ziglang.org>
2024-01-14elf: check for and report duplicate symbol definitionsJakub Konka
2024-01-13Linux: Add fchmodat fallback when `flags` is nonzeroStephen Gregoratto
The check for determining whether to use the fallback code has been moved into an inline function as per Andrew's comments in #17954.
2024-01-12wasm-linker: fix debug info relocationLuuk de Gram
This corrects calculating the offsets to the code section as we now correctly allocate the code atoms during write taking the 'size' into account. We also handle dead symbols which are garbage-collected by writing -2 and -1 to skip ranges, loc and other sections respectively.
2024-01-12wasm-linker: delay code atom allocation till writeLuuk de Gram
We delay atom allocation for the code section until we write the actual atoms. We do this to ensure the offset of the atom also includes the 'size' field which is leb128-encoded and therefore variable. We need this correct offset to ensure debug info works correctly. The ordering of the code section is now automatic due to iterating the function section and then finding the corresponding atom to each function. This also ensures each function corresponds to the right atom, and they do not go out-of-sync. Lastly, we removed the `next` field as it is no longer required and also removed manually setting the offset in synthetic functions. This means atoms use less memory and synthetic functions are less prone. They will also be placed in order of function order correctly.
2024-01-12wasm-linker: ensure custom sections are parsedLuuk de Gram
Not all custom sections are represented by a symbol, which means the section will not be parsed by the lazy parsing and therefore get garbage- collected. This is problematic as it may contain debug information that should not be garbage-collected. To resolve this, we manually create local symbols for those sections and also ensure they do not get garbage- collected.
2024-01-09Add support for `--(no-)undefined-version`dhash
Co-authored-by: Motiejus Jakštys <motiejus@jakstys.lt> Co-authored-by: Jakub Konka <kubkon@jakubkonka.com> Co-authored-by: Samuel Cantero <scanterog@gmail.com> Co-authored-by: Giorgos Georgiou <giorgos.georgiou@datadoghq.com> Co-authored-by: Carl Åstholm <carl@astholm.se>
2024-01-08stage2 AArch64: get empty file compiling againjoachimschmidt557
2024-01-08mingw: update from msvcrt to ucrtAndrew Kelley
2024-01-08Use a fixed chunk size when calculating MachO UUIDJeremy Volkman
2024-01-01link: accept the update arena in flushAndrew Kelley
This branch introduced an arena allocator for temporary allocations in Compilation.update. Almost every implementation of flush() inside the linker code was already creating a local arena that had the lifetime of the function call. This commit passes the update arena so that all those local ones can be deleted, resulting in slightly more efficient memory usage with every compilation update. While at it, this commit also removes the Compilation parameter from the linker flush function API since a reference to the Compilation is now already stored in `link.File`.