| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2025-09-30 | link.Elf: restore eh_frame_hdr search table building | mlugg | |
| At least, when there's not a ZigObject. The old behavior was incorrect in the presence of a ZigObject, and this doesn't really mix nicely with incremental compilation anyway; but when the objects are all external, we may as well build the search table. | |||
| 2025-09-30 | fix compiler ftbfs from std.macho and std.dwarf changes | mlugg | |
| 2025-09-30 | change one million things | mlugg | |
| 2025-09-08 | fix linker code writing undefined memory to the output file | Andrew Kelley | |
| missing `extern` on a struct. but also all these instances that call pwriteAll with a `@ptrCast` are endianness bugs. this should be changed to use File.Writer and call writeSliceEndian instead. this commit fixes one immediate problem but does not fix everything. | |||
| 2025-08-31 | std.fmt: delete deprecated APIs | Andrew Kelley | |
| std.fmt.Formatter -> std.fmt.Alt std.fmt.format -> std.Io.Writer.print | |||
| 2025-08-29 | std.Io: delete GenericReader | Andrew Kelley | |
| and delete deprecated alias std.io | |||
| 2025-08-25 | start adding big endian RISC-V support | Alex Rønne Petersen | |
| The big endian RISC-V effort is mostly driven by MIPS (the company) which is pivoting to RISC-V, and presumably needs a big endian variant to fill the niche that big endian MIPS (the ISA) did. GCC already supports these targets, but LLVM support will only appear in 22; this commit just adds the necessary target knowledge and checks on our end. | |||
| 2025-08-11 | std.ArrayList: make unmanaged the default | Andrew Kelley | |
| 2025-07-07 | compiler: update a bunch of format strings | Andrew Kelley | |
| 2025-07-07 | compiler: fix a bunch of format strings | Andrew Kelley | |
| 2025-07-07 | compiler: update all instances of std.fmt.Formatter | Andrew Kelley | |
| 2025-01-15 | wasm linker: fix crashes when parsing compiler_rt | Andrew Kelley | |
| 2024-10-29 | link/Elf: ensure we always sort all relocations by r_offset in -r mode | Jakub Konka | |
| According to a comment in mold, this is the expected (and desired) condition by the linkers, except for some architectures (RISCV and Loongarch) where this condition does not have to upheld. If you follow the changes in this patch and in particular doc comments I have linked the comment/code in mold that explains and implements this. I have also modified `testEhFrameRelocatable` test to now test both cases such that `zig ld -r a.o b.o -o c.o` and `zig ld -r b.o a.o -o d.o`. In both cases, `c.o` and `d.o` should produce valid object files which was not the case before this patch. | |||
| 2024-10-23 | link.Elf: untangle parseObject and parseArchive | Andrew Kelley | |
| from link.Elf, so that they can be used earlier in the pipeline | |||
| 2024-10-11 | link: consolidate diagnostics | Andrew Kelley | |
| By organizing linker diagnostics into this struct, it becomes possible to share more code between linker backends, and more importantly it becomes possible to pass only the Diag struct to some functions, rather than passing the entire linker state object in. This makes data dependencies more obvious, making it easier to rearrange code and to multithread. Also fix MachO code abusing an atomic variable. Not only was it using the wrong atomic operation, it is unnecessary additional state since the state is already being protected by a mutex. | |||
| 2024-10-11 | link.Elf: group section indexes | Andrew Kelley | |
| so they cannot be forgotten when updating them after sorting them. | |||
| 2024-09-04 | elf: fix 32bit build | Jakub Konka | |
| 2024-09-04 | elf: misc .eh_frame management fixes | Jakub Konka | |
| 2024-09-04 | elf: emit relocs for self-hosted generated .eh_frame section | Jakub Konka | |
| 2024-09-04 | elf: fix relocatable mode | Jakub Konka | |
| 2024-08-30 | Elf: fix reference from `eh_frame_hdr` to `eh_frame` | Jacob Young | |
| 2024-08-30 | dwarf: share and use `std.dwarf.EH_PE` constants | Jacob Young | |
| 2024-08-25 | elf: simplify output section symbol tracking | Jakub Konka | |
| 2024-08-25 | elf: streamline sections container | Jakub Konka | |
| 2024-08-07 | elf: fix .eh_frame calc in relocatable mode | Jakub Konka | |
| 2024-08-07 | elf: fix compile errors | Jakub Konka | |
| 2024-07-30 | elf: simplify output section tracking for symbols | Jakub Konka | |
| 2024-07-30 | elf: move ownership of atoms into objects | Jakub Konka | |
| 2024-07-22 | macho: redo input file parsing in prep for multithreading | Jakub Konka | |
| 2024-03-08 | elf+aarch64: implement enough to link dynamically with gcc as the driver | Jakub Konka | |
| 2024-02-21 | elf+riscv: implement enough to get basic hello world in C working | Jakub Konka | |
| 2024-02-21 | elf+aarch64: resolve .eh_frame relocs | Jakub Konka | |
| 2024-02-21 | elf: simplify logic for resolving .eh_frame relocs on different arches | Jakub Konka | |
| 2024-02-17 | lib/std/elf: refactor reloc enum values | Jakub Konka | |
| 2024-02-17 | elf: add riscv dynamic relocs | Jakub Konka | |
| 2024-02-16 | elf: enable adding support for additional cpu archs | Jakub Konka | |
| 2024-02-13 | elf: store relative offsets in atom and symbol | Jakub Konka | |
| 2024-02-12 | elf: do not prealloc input objects, pread selectively | Jakub Konka | |
| 2024-01-01 | fix remaining compile errors except one | Andrew Kelley | |
| 2024-01-01 | linker: fix some allocator references | Andrew Kelley | |
| 2023-11-19 | compiler: correct unnecessary uses of 'var' | mlugg | |
| 2023-11-09 | elf: correctly format output .eh_frame when emitting relocatable | Jakub Konka | |
| 2023-11-09 | elf: emit .rela.eh_frame section contents | Jakub Konka | |
| 2023-11-09 | elf: calculate required size for .rela.eh_frame | Jakub Konka | |
| 2023-11-04 | elf: redo strings management in the linker | Jakub Konka | |
| * atom names - are stored locally and pulled from defining object's strtab * local symbols - same * global symbols - in principle, we could store them locally, but for better debugging experience - when things go wrong - we store the offsets in a global strtab used by the symbol resolver | |||
| 2023-10-31 | std.builtin.Endian: make the tags lower case | Andrew Kelley | |
| Let's take this breaking change opportunity to fix the style of this enum. | |||
| 2023-10-31 | mem: fix ub in writeInt | Jacob Young | |
| Use inline to vastly simplify the exposed API. This allows a comptime-known endian parameter to be propogated, making extra functions for a specific endianness completely unnecessary. | |||
| 2023-10-16 | elf: fix 32bit build | Jakub Konka | |
| 2023-10-16 | elf: handle .eh_frame and non-alloc sections | Jakub Konka | |
| 2023-10-16 | elf: refactor object.shdrContents to never error out | Jakub Konka | |
