Commit Graph

29882 Commits

Author SHA1 Message Date
Jakub Konka b339a30680 macho: fix off-by-one when populating strtab 2024-07-18 09:13:09 +02:00
Jakub Konka e9328e7da8 macho: fix 32bit compilation issues 2024-07-18 09:13:09 +02:00
Jakub Konka 3338813077 macho: use isec for working out getAtomData in ZigObject 2024-07-18 09:13:09 +02:00
Jakub Konka a9e3088d9c macho: extract testing logic for TLS into a helper 2024-07-18 09:13:08 +02:00
Jakub Konka 103c16c879 macho: clean up atom+symbol creation logic in ZigObject 2024-07-18 09:13:08 +02:00
Jakub Konka e117e05768 macho: ensure we always name decls like LLVM to avoid confusion 2024-07-18 09:13:08 +02:00
Jakub Konka 91de8dc8ab macho: fix unresolved symbols error reporting 2024-07-18 09:13:08 +02:00
Jakub Konka 521933e1c0 macho: do not randomly append non-incr atoms in ZigObject 2024-07-18 09:13:08 +02:00
Jakub Konka f9fbd6302f macho: test TLS in Zig with x86_64 backend 2024-07-18 09:13:08 +02:00
Jakub Konka 234aa86802 macho: update non-incremental section sizes for ZigObject sections 2024-07-18 09:13:08 +02:00
Jakub Konka 387a71fa5b macho: re-enable writing out static archive with ZigObject 2024-07-18 09:13:08 +02:00
Jakub Konka 84189f9d56 macho: skip resizing incremental Zig sections in r mode 2024-07-18 09:13:08 +02:00
Jakub Konka 129fe8668c macho: write non-incremental atoms in ZigObject 2024-07-18 09:13:08 +02:00
Jakub Konka e5a66184ed macho: pretty print relocation types in logs and errors 2024-07-18 09:13:08 +02:00
Jakub Konka 01fc33c949 macho: emit relocs for non-zig-sections in ZigObject 2024-07-18 09:13:08 +02:00
Jakub Konka 853ca403c4 macho: bring back relocatable mode for ZigObject 2024-07-18 09:13:08 +02:00
Jakub Konka cba04ff244 macho: re-enable calculating num of relocs for ZigObject 2024-07-18 09:13:08 +02:00
Jakub Konka 2579c55d49 macho: adjust global creation in ZigObject to new model 2024-07-18 09:13:08 +02:00
Jakub Konka 4aff0ec394 macho: move relocs re-resolution logic to ZigObject 2024-07-18 09:13:08 +02:00
Jakub Konka b62281a9c8 macho: re-enable relocatable mode 2024-07-18 09:13:08 +02:00
Jakub Konka 90c54f1eb6 macho: fix symbol visibility merging logic 2024-07-18 09:13:08 +02:00
Jakub Konka 3d58faed12 macho: we do not yet support interposable symbols 2024-07-18 09:13:08 +02:00
Jakub Konka b4e6b3c53c macho: bring back parts of r mode 2024-07-18 09:13:08 +02:00
Jakub Konka 05a790d784 macho: link hello world in zig compiled with llvm 2024-07-18 09:13:08 +02:00
Jakub Konka 18778e2a0a macho: bring back parts of ar 2024-07-18 09:13:08 +02:00
Jakub Konka 174de37cef macho: fix compile errors 2024-07-18 09:13:08 +02:00
Jakub Konka 5b4c0cc1f9 macho: update ZigObject to use new ownership model 2024-07-18 09:13:08 +02:00
Jakub Konka f8b5466aef macho: migrate UnwindInfo 2024-07-18 09:13:08 +02:00
Jakub Konka 882ff3ae31 macho: migrate eh_frame module 2024-07-18 09:13:08 +02:00
Jakub Konka b96339f6f6 macho: migrate Relocation struct 2024-07-18 09:13:08 +02:00
Jakub Konka 58997363d3 macho: migrate MachO.File abstraction 2024-07-18 09:13:08 +02:00
Jakub Konka f86a38564f macho: migrate synthetic sections 2024-07-18 09:13:08 +02:00
Jakub Konka 2e87883be8 macho: migrate the MachO driver 2024-07-18 09:13:08 +02:00
Jakub Konka 355992cbdf macho: migrate some of MachO driver 2024-07-18 09:13:08 +02:00
Jakub Konka b9bac32a25 macho: migrate Atom and Symbol 2024-07-18 09:13:08 +02:00
Jakub Konka c59583e43d macho: migrate InternalObject and Dylib 2024-07-18 09:13:08 +02:00
Jakub Konka 9d5a900f4b macho: migrate Object to self-ownership of atoms and symbols 2024-07-18 09:13:08 +02:00
Jakub Konka f8cea21514 macho: remove obsolete field from InternalObject 2024-07-18 09:13:07 +02:00
Jakub Konka d136d06a77 macho: handle ZigObject when calculating dyld relocs 2024-07-18 09:13:07 +02:00
Jakub Konka e2bfd6fc69 macho: revamp how we compute dyld relocs 2024-07-18 09:13:07 +02:00
Jakub Konka 101299e856 macho: move unwind info records ownership to Objects 2024-07-18 09:13:07 +02:00
Andrew Kelley a57479afc2 Merge pull request #20652 from pavelverigo/stage2-wasm-finishAir
stage2-wasm: finishAir enhancement
2024-07-17 22:33:29 -07:00
Jacob Young 8ab70f80cb ci: update aarch64-macos for a persistent work dir 2024-07-17 21:52:28 -04:00
Pavel Verigo 31706dc31a stage2-wasm: finishAir handle .stack result
By allowing finishAir to handle .stack results, we simplify a lot of code in
air*** functions, which try to handle this case. Also this changes will result in optimization, if one of operands is dead after instruction its place could be reused by result.

The only downside to this change is that finishAir now can return error, though it handled by returning finishAir result, because it always needs to be final in air*** functions.

Additionally I migrated WValue{ to .{ inside CodeGen.zig.
2024-07-18 00:57:45 +02:00
Pavel Verigo 6eb76f930d stage2-wasm: typeToValtype focus on .auto callconv
This is required for toLocal() correctly handling isByRef values, previous behavior was a hack.
2024-07-18 00:57:18 +02:00
eric-saintetienne c3faae6bf1 format: do not force user to provide an alignment field when it's not necessary (#19049)
* format: fix default character when no alignment

When no alignment is specified, the character that should be used is the
fill character that is otherwise provided, not space.

This is closer to the default that C programmers (and other languages)
use: "04x" fills with zeroes (in zig as of today x:04 fills with spaces)

Test:

    const std = @import("std");
    const expectFmt = std.testing.expectFmt;

    test "fmt.defaultchar.no-alignment" {

        // as of today the following test passes:
        try expectFmt("0x00ff", "0x{x:0>4}", .{255});

        // as of today the following test fails (returns "0x  ff" instead)
        try expectFmt("0x00ff", "0x{x:04}", .{255});
    }

* non breaking improvement of string formatting

* improved comment

* simplify the code a little

* small improvement around how  characters identified as valid are consumed
2024-07-17 19:02:10 +00:00
Jakub Konka 9d9b5a11e8 Merge pull request #20474 from Rexicon226/riscv
more RISC-V backend progress
2024-07-17 08:39:44 +02:00
Andrew Kelley ddc399440d build.zig: expose valgrind flag
Allows to enable Valgrind integrations in release builds, sometimes
useful in combination with tooling.
2024-07-16 23:07:34 -07:00
Matthew Lugg e82f7d3800 Merge pull request #20653 from mlugg/incremental-fix
Zcu: updateZirRefs typo
2024-07-17 00:08:13 +01:00
Hayden Riddiford 20563d8457 - Added special handling for translating C extern variables declared within scoped blocks
- Added test/cases/run_translated_c/extern_typedef_variables_in_functions.c to test for issue 19687
2024-07-16 23:29:44 +03:00