aboutsummaryrefslogtreecommitdiff
path: root/src/link/Elf
AgeCommit message (Collapse)Author
2024-09-04elf: allocate .data in ZigObject similarly to .eh_frameJakub Konka
2024-09-04elf: allocate .bss in ZigObject similarly to .eh_frameJakub Konka
2024-09-04elf: move initOutputSection into Elf from ObjectJakub Konka
2024-09-04elf: split Atom.allocate into Atom-independent partsJakub Konka
2024-08-30Elf: fix reference from `eh_frame_hdr` to `eh_frame`Jacob Young
2024-08-30dwarf: share and use `std.dwarf.EH_PE` constantsJacob Young
2024-08-29compiler: avoid field/decl name conflictsmlugg
Most of the required renames here are net wins for readaibility, I'd say. The ones in `arch` are a little more verbose, but I think better. I didn't bother renaming the non-conflicting functions in `arch/arm/bits.zig` and `arch/aarch64/bits.zig`, since these backends are pretty bit-rotted anyway AIUI.
2024-08-28std: update `std.builtin.Type` fields to follow naming conventionsmlugg
The compiler actually doesn't need any functional changes for this: Sema does reification based on the tag indices of `std.builtin.Type` already! So, no zig1.wasm update is necessary. This change is necessary to disallow name clashes between fields and decls on a type, which is a prerequisite of #9938.
2024-08-27Dwarf: implement .eh_frameJacob Young
2024-08-26Merge pull request #21212 from ziglang/elf-incrAndrew Kelley
elf: cleanups, cleanups, cleanups
2024-08-26elf: make Atom.allocate and related ZigObject-independentJakub Konka
2024-08-25fix up merge conflicts with masterDavid Rubin
2024-08-25remove `mod` aliases for ZcusDavid Rubin
2024-08-25comp: rename `module` to `zcu`David Rubin
2024-08-25sema: rework type resolution to use Zcu when possibleDavid Rubin
2024-08-25elf: store atom refs for rela sections until we can do betterJakub Konka
2024-08-25elf: simplify output section symbol trackingJakub Konka
2024-08-25elf: fix shdr-to-phdr linksJakub Konka
2024-08-25elf: streamline sections containerJakub Konka
2024-08-25elf: finally move initMetadata into ZigObject.initJakub Konka
2024-08-23link: Rename InvalidCpuArch error to InvalidMachineType.Alex Rønne Petersen
2024-08-23std.{coff,elf}: Remove the {MachineType,EM}.toTargetCpuArch() functions.Alex Rønne Petersen
These are fundamentally incapable of producing accurate information for reasons I've laid out in #20771. Since our only use of these functions is to check that object files have the correct machine type, and since #21020 made `std.Target.to{Coff,Elf}Machine()` more accurate, just switch these checks over to that and compare the machine type tags instead. Closes #20771.
2024-08-22Elf: all dwarf relocs need to become linker relocsJacob Young
2024-08-21elf: refactor tracking debug section sizesJakub Konka
2024-08-21elf: fixes after rebaseJakub Konka
2024-08-21elf: allow for concatenating atoms to merge sectionsJakub Konka
2024-08-21elf: fix emitting cross-section relocs for .debug* sectionsJakub Konka
2024-08-21elf: emit DTPOFF32/DTPOFF64 relocation for .debug* sectionsJakub Konka
2024-08-21elf: parse and emit Elf relocs for cross section refs for .debug* sectionsJakub Konka
2024-08-21elf: emit .rela.debug* sections for relocatable if requiredJakub Konka
2024-08-21elf: start unraveling Dwarf relocs into Elf relocsJakub Konka
2024-08-21elf: populate debug atoms on the linker side after Dwarf.flushModuleJakub Konka
2024-08-21elf: create section symbols and atoms per each ZigObject debug sectionJakub Konka
2024-08-20Dwarf: fix issues with inline call sitesJacob Young
2024-08-16Dwarf: rework self-hosted debug info from scratchJacob Young
This is in preparation for incremental and actually being able to debug executables built by the x86_64 backend.
2024-08-15elf: fix GOT32 reloc resolution logicJakub Konka
2024-08-15riscv: do not emit GOT relocations for special linker symbolsJakub Konka
2024-08-15elf: introduce Symbol.flags.is_extern_ptr for refs potentially needing GOTJakub Konka
2024-08-15elf: check for relocs before deciding on shndx in getNavShdrIndexJakub Konka
2024-08-14elf: re-use old atom slot for a trampoline to that atomJakub Konka
This is the initial implementation of Jacob Young's idea of re-using old function slots as trampolines for new function's location. This way the trampoline is guaranteed to be aligned to the function's alignment. The only edge case is if an incremental update further overaligns the function in which case we skip/delete the trampoline and re-evaluate all references.
2024-08-13fix compile errors in other codegen backendsJakub Konka
2024-08-13elf: do not emit zig jump table in relocatablesJakub Konka
2024-08-13elf: only apply zig jump table indirection to function calls (PLT32)Jakub Konka
2024-08-13elf: commit non-indirected symbol address to symtabJakub Konka
2024-08-13elf: pretty print alingment when pretty printing atomsJakub Konka
2024-08-13elf: fix circular dep loop in zig jump tableJakub Konka
2024-08-13elf: make zig jump table indirection implicit via Symbol.addressJakub Konka
2024-08-13x86_64: emit call rel32 for near calls with linker relocJakub Konka
2024-08-13elf: rename OffsetTable to JumpTableJakub Konka
2024-08-13elf: add poorman's reporting tool for unallocated NAVs/UAVsJakub Konka