aboutsummaryrefslogtreecommitdiff
path: root/src/link
AgeCommit message (Collapse)Author
2024-04-08link/elf: do not set soname unless only dynlib (reverts for haiku exec)Jakub Konka
2024-04-08link/elf: handle symbols to begin/end of .eh_frame sectionJakub Konka
2024-04-08link/elf: actually emit DYN when targetting haikuJakub Konka
2024-04-08InternPool: remove slice from byte aggregate keysJacob Young
This deletes a ton of lookups and avoids many UAF bugs. Closes #19485
2024-04-08link/elf: propagate Haiku requirement of always passing -shared for imagesJakub Konka
2024-04-08haiku: fix linking issuesJacob Young
2024-04-06spirv: fix some recursive pointers edge cases in dedup passRobin Voetter
2024-04-06spirv: add link progressionRobin Voetter
2024-04-06spirv: remove cache usage for typesRobin Voetter
2024-04-05Merge pull request #19260 from mikdusan/macos-zipperedJakub Konka
macos: add zippered support
2024-04-01Merge pull request #19490 from Snektron/spirv-dedupRobin Voetter
spirv: deduplication pass
2024-03-30Update uses of `@fieldParentPtr` to use RLSJacob Young
2024-03-30Update uses of `@fieldParentPtr` to pass a pointer typeJacob Young
2024-03-30cbe: rewrite `CType`Jacob Young
Closes #14904
2024-03-30cbe: fix bugs revealed by an upcoming commitJacob Young
Closes #18023
2024-03-30spirv: handle annotations in deduplication passRobin Voetter
2024-03-30spirv: avoid copying operands in dedup passRobin Voetter
2024-03-30spirv: deduplicate prototypeRobin Voetter
2024-03-28macho: fix double freeJakub Konka
2024-03-28Merge pull request #19399 from ypsvlq/mingwAndrew Kelley
mingw: support -municode
2024-03-27Merge pull request #19430 from ziglang/dwarf-ubJakub Konka
link: fix undefined memory being written out in dwarf and codegen
2024-03-27mingw: support -municodeElaine Gibson
2024-03-26compiler: eliminate most usages of TypedValuemlugg
2024-03-26Zcu.Decl: remove `ty` fieldmlugg
`Decl` can no longer store un-interned values, so this field is now unnecessary. The type can instead be fetched with the new `typeOf` helper method, which just gets the type of the Decl's `Value`.
2024-03-25dwarf+codegen: use appendNTimes instead of writer().writeByteNTimesJakub Konka
2024-03-25dwarf: actually write zeroed out unresolved relocs into emitted DWARF in ↵Jakub Konka
initDeclState
2024-03-25compiler: implement analysis-local comptime-mutable memorymlugg
This commit changes how we represent comptime-mutable memory (`comptime var`) in the compiler in order to implement the intended behavior that references to such memory can only exist at comptime. It does *not* clean up the representation of mutable values, improve the representation of comptime-known pointers, or fix the many bugs in the comptime pointer access code. These will be future enhancements. Comptime memory lives for the duration of a single Sema, and is not permitted to escape that one analysis, either by becoming runtime-known or by becoming comptime-known to other analyses. These restrictions mean that we can represent comptime allocations not via Decl, but with state local to Sema - specifically, the new `Sema.comptime_allocs` field. All comptime-mutable allocations, as well as any comptime-known const allocs containing references to such memory, live in here. This allows for relatively fast checking of whether a value references any comptime-mtuable memory, since we need only traverse values up to pointers: pointers to Decls can never reference comptime-mutable memory, and pointers into `Sema.comptime_allocs` always do. This change exposed some faulty pointer access logic in `Value.zig`. I've fixed the important cases, but there are some TODOs I've put in which are definitely possible to hit with sufficiently esoteric code. I plan to resolve these by auditing all direct accesses to pointers (most of them ought to use Sema to perform the pointer access!), but for now this is sufficient for all realistic code and to get tests passing. This change eliminates `Zcu.tmp_hack_arena`, instead using the Sema arena for comptime memory mutations, which is possible since comptime memory is now local to the current Sema. This change should allow `Decl` to store only an `InternPool.Index` rather than a full-blown `ty: Type, val: Value`. This commit does not perform this refactor.
2024-03-24dwarf: actually write out well-defined placeholder bytes for relocsJakub Konka
2024-03-19fix compilation failures found by CIAndrew Kelley
2024-03-19extract std.posix from std.osAndrew Kelley
closes #5019
2024-03-18spirv: unused instruction pruning linker passRobin Voetter
2024-03-18spirv: make generic globals invocation-localRobin Voetter
2024-03-18spirv: make IdResult an enumRobin Voetter
2024-03-17Revert "spirv: merge `construct(Struct/Vector/Array)` into `constructComposite`"Robin Voetter
This reverts commit eb2d61d02e503f01070c05e2e1fc87e827124d94.
2024-03-16macos: archive size fixzhylmzr
fixed: #19154
2024-03-15macho: fix a sad typo in calculating the address of a TLV pointerJakub Konka
2024-03-14coff: only store PDB basenameElaine Gibson
2024-03-13macos: add tbd-v3 zippered supportMichael Dusan
Support linking against tbd-v3 SDKs such as those bundled with Xcode 10.3 → 11.3.1 . - Map target os=`ios` and abi=`macabi` to macho.PLATFORM.MACCATALYST. This allows for matches against tbdv4 targets, eg. `x86_64-maccatalyst`. - When parsing old tbdv3 files with `zippered` platform, we append [`ARCH-macos`, `ARCH-maccatalyst`] to list of "tbd" targets. This enables linking for standard targets like `ARCH-macos-none` and maccatalyst targets `ARCH-ios-macabi`. - Update mappings for macho platform and zig target macabi. While this is not full maccatalyst support, a basic exe can be built as follows: ``` zig libc > libc.txt zig build-exe z0.zig --libc libc.txt -target x86_64-ios-macabi ``` closes #19110
2024-03-13macho: log.debug dylib pathMichael Dusan
2024-03-12elf: re-use output buffer for emitting thunksJakub Konka
2024-03-12elf+aarch64: fix off-by-one in converging on groups interleaved with thunksJakub Konka
2024-03-12elf+aarch64: actually write out thunks, and add a proper link testJakub Konka
2024-03-11std.builtin: make global linkage fields lowercaseTristan Ross
2024-03-11std.builtin: make link mode fields lowercaseTristan Ross
2024-03-11std.builtin: make container layout fields lowercaseTristan Ross
2024-03-09elf+aarch64: handle PREL64 relocJakub Konka
2024-03-09elf+aarch64: fix 32bit buildJakub Konka
2024-03-08elf+aarch64: implement basic thunk supportJakub Konka
2024-03-08elf+aarch64: handle PREL32 relocJakub Konka
2024-03-08elf+aarch64: handle TLS GD modelJakub Konka