| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2024-07-30 | elf: move ownership of input merge sections to Object | Jakub Konka | |
| 2024-07-30 | std.Target: Remove `sparcel` architecture tag. | Alex Rønne Petersen | |
| What is `sparcel`, you might ask? Good question! If you take a peek in the SPARC v8 manual, §2.2, it is quite explicit that SPARC v8 is a big-endian architecture. No little-endian or mixed-endian support to be found here. On the other hand, the SPARC v9 manual, in §3.2.1.2, states that it has support for mixed-endian operation, with big-endian mode being the default. Ok, so `sparcel` must just be referring to SPARC v9 running in little-endian mode, surely? Nope: * https://github.com/llvm/llvm-project/blob/40b4fd7a3e81d32b29364a1b15337bcf817659c0/llvm/lib/Target/Sparc/SparcTargetMachine.cpp#L226 * https://github.com/llvm/llvm-project/blob/40b4fd7a3e81d32b29364a1b15337bcf817659c0/llvm/lib/Target/Sparc/SparcTargetMachine.cpp#L104 So, `sparcel` in LLVM is referring to some sort of fantastical little-endian SPARC v8 architecture. I've scoured the internet and I can find absolutely no evidence that such a thing exists or has ever existed. In fact, I can find no evidence that a little-endian implementation of SPARC v9 ever existed, either. Or any SPARC version, actually! The support was added here: https://reviews.llvm.org/D8741 Notably, there is no mention whatsoever of what CPU this might be referring to, and no justification given for the "but some are little" comment added in the patch. My best guess is that this might have been some private exercise in creating a little-endian version of SPARC that never saw the light of day. Given that SPARC v8 explicitly doesn't support little-endian operation (let alone little-endian instruction encoding!), and no CPU is known to be implemented as such, I think it's very reasonable for us to just remove this support. | |||
| 2024-07-29 | link.Elf: Define __global_pointer$ for riscv32 too. | Alex Rønne Petersen | |
| See: https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-elf.adoc | |||
| 2024-07-28 | link.Coff: Basic support for `/Brepro` in the self-hosted linker. | Alex Rønne Petersen | |
| Just keep things simple and zero the timestamp. It's not obvious that there's any real benefit to adding complexity and harming performance by computing a hash of the whole file for the timestamp value. See: * https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#general-concepts * https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#debug-type In the future, we should at least add an empty `IMAGE_DEBUG_TYPE_REPRO` entry to the debug data directory for this case, but I didn't want to do too much surgery right now since it's early days for COFF support in the self-hosted linker. | |||
| 2024-07-28 | link: Accept `-Brepro` linker option and pass it to LLD. | Alex Rønne Petersen | |
| Enable it by default when building Zig code in release modes. Contributes to #9432. | |||
| 2024-07-28 | Merge pull request #20807 from Rexicon226/riscv | Jakub Konka | |
| riscv: more backend progress | |||
| 2024-07-27 | macho: fix typo in boundary symbol tag: $stop -> $end | Jakub Konka | |
| 2024-07-26 | riscv: clean up and unify encoding logic | David Rubin | |
| 2024-07-25 | add --debug-rt CLI arg to the compiler + bonus edits | Andrew Kelley | |
| The flag makes compiler_rt and libfuzzer be in debug mode. Also: * fuzzer: override debug logs and disable debug logs for frequently called functions * std.Build.Fuzz: fix bug of rerunning the old unit test binary * report errors from rebuilding the unit tests better * link.Elf: additionally add tsan lib and fuzzer lib to the hash | |||
| 2024-07-23 | default "trace pc guard" coverage off | Andrew Kelley | |
| * Add -f(no-)sanitize-coverage-trace-pc-guard CLI flag which defaults to off. This value lowers to TracePCGuard = true (LLVM backend) and -Xclang -fsanitize-coverage-trace-pc-guard. These settings are not automatically included with -ffuzz. * Add `Build.Step.Compile` flag for sanitize_coverage_trace_pc_guard with appropriate documentation. * Add `zig cc` integration for the respective flags. * Avoid crashing in ELF linker code when -ffuzz -femit-llvm-ir used together. | |||
| 2024-07-23 | Merge pull request #20751 from Rexicon226/riscv-eflags | Jakub Konka | |
| elf: add riscv eflag collisions | |||
| 2024-07-23 | Merge pull request #20725 from ziglang/fuzz | Andrew Kelley | |
| initial support for integrated fuzzing | |||
| 2024-07-23 | macho: use pread syscall when loading tapi file | Jakub Konka | |
| This avoids mixing preads with reads which do not mix well especially on Windows. | |||
| 2024-07-22 | elf: add riscv eflag collisions | David Rubin | |
| 2024-07-22 | fix macho linker integration with libfuzzer | Andrew Kelley | |
| 2024-07-22 | add libfuzzer to linking | Andrew Kelley | |
| 2024-07-22 | macho: fix 32bit compilation issues | Jakub Konka | |
| 2024-07-22 | macho: handle empty string in ZigObject.getString | Jakub Konka | |
| 2024-07-22 | macho: write sections in parallel in -r mode | Jakub Konka | |
| 2024-07-22 | macho: calc section sizes in parallel in -r mode | Jakub Konka | |
| 2024-07-22 | macho: cache string len | Jakub Konka | |
| 2024-07-22 | add more tracy hooks | Jakub Konka | |
| 2024-07-22 | macho: run more things in parallel | Jakub Konka | |
| 2024-07-22 | macho: remove stale code | Jakub Konka | |
| 2024-07-22 | macho: parse input files in parallel | Jakub Konka | |
| 2024-07-22 | macho: redo input file parsing in prep for multithreading | Jakub Konka | |
| 2024-07-20 | Fix typos in code comments in `src/` | sobolevn | |
| 2024-07-20 | dev: add missing x86_64 backend checks | Jacob Young | |
| 2024-07-20 | dev: fix llvm backend checks | Jacob Young | |
| 2024-07-19 | dev: introduce dev environments that enable compiler feature sets | Jacob Young | |
| 2024-07-19 | move non-libc stuff out of std.c | Andrew Kelley | |
| 2024-07-18 | macho: fix emitting data-in-code entries | Jakub Konka | |
| 2024-07-18 | macho: reinstate duplicate definition checking | Jakub Konka | |
| 2024-07-18 | macho: fix off-by-one when populating strtab | Jakub Konka | |
| 2024-07-18 | macho: fix 32bit compilation issues | Jakub Konka | |
| 2024-07-18 | macho: use isec for working out getAtomData in ZigObject | Jakub Konka | |
| 2024-07-18 | macho: extract testing logic for TLS into a helper | Jakub Konka | |
| 2024-07-18 | macho: clean up atom+symbol creation logic in ZigObject | Jakub Konka | |
| 2024-07-18 | macho: ensure we always name decls like LLVM to avoid confusion | Jakub Konka | |
| 2024-07-18 | macho: fix unresolved symbols error reporting | Jakub Konka | |
| 2024-07-18 | macho: do not randomly append non-incr atoms in ZigObject | Jakub Konka | |
| 2024-07-18 | macho: update non-incremental section sizes for ZigObject sections | Jakub Konka | |
| 2024-07-18 | macho: re-enable writing out static archive with ZigObject | Jakub Konka | |
| 2024-07-18 | macho: skip resizing incremental Zig sections in r mode | Jakub Konka | |
| 2024-07-18 | macho: write non-incremental atoms in ZigObject | Jakub Konka | |
| 2024-07-18 | macho: pretty print relocation types in logs and errors | Jakub Konka | |
| 2024-07-18 | macho: emit relocs for non-zig-sections in ZigObject | Jakub Konka | |
| 2024-07-18 | macho: bring back relocatable mode for ZigObject | Jakub Konka | |
| 2024-07-18 | macho: re-enable calculating num of relocs for ZigObject | Jakub Konka | |
| 2024-07-18 | macho: adjust global creation in ZigObject to new model | Jakub Konka | |
