aboutsummaryrefslogtreecommitdiff
path: root/src/link/MachO/Dylib.zig
AgeCommit message (Collapse)Author
4 dayslink: update to new file system APIsAndrew Kelley
2025-11-20update deprecated ArrayListUnmanaged usage (#25958)Benjamin Jurk
2025-11-20std.debug: split up Mach-O debug info handlingMatthew Lugg
Like ELF, we now have `std.debug.MachOFile` for the host-independent parts, and `std.debug.SelfInfo.MachO` for logic requiring the file to correspond to the running program.
2025-11-14link.MachO.Dylib: allow maccatalyst output to link macos libraries in TBDsAlex Rønne Petersen
This is the logic that LLD uses. It is pretty silly, but it is what it is.
2025-08-31std.fmt: delete deprecated APIsAndrew Kelley
std.fmt.Formatter -> std.fmt.Alt std.fmt.format -> std.Io.Writer.print
2025-08-29std.Io: delete GenericReaderAndrew Kelley
and delete deprecated alias std.io
2025-08-29std.Io: delete CountingReaderAndrew Kelley
2025-08-11std.ArrayList: make unmanaged the defaultAndrew Kelley
2025-07-07MachO: revert unfinished changesAndrew Kelley
2025-07-07MachO: update to new std.io APIsAndrew Kelley
2024-10-10link: fix false positive crtbegin/crtend detectionAndrew Kelley
Embrace the Path abstraction, doing more operations based on directory handles rather than absolute file paths. Most of the diff noise here comes from this one. Fix sorting of crtbegin/crtend atoms. Previously it would look at all path components for those strings. Make the C runtime path detection partially a pure function, and move some logic to glibc.zig where it belongs.
2024-09-12Replace deprecated default initializations with decl literalsLinus Groh
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-23link: Rename InvalidCpuArch error to InvalidMachineType.Alex Rønne Petersen
2024-07-23macho: use pread syscall when loading tapi fileJakub Konka
This avoids mixing preads with reads which do not mix well especially on Windows.
2024-07-22macho: cache string lenJakub Konka
2024-07-22macho: redo input file parsing in prep for multithreadingJakub Konka
2024-07-18macho: fix compile errorsJakub Konka
2024-07-18macho: migrate InternalObject and DylibJakub Konka
2024-06-23Rename *[UI]LEB128 functions to *[UI]leb128Michael Bradshaw
2024-06-13std: Convert deprecated aliases to compile errors and fix usagesRyan Liptak
Deprecated aliases that are now compile errors: - `std.fs.MAX_PATH_BYTES` (renamed to `std.fs.max_path_bytes`) - `std.mem.tokenize` (split into `tokenizeAny`, `tokenizeSequence`, `tokenizeScalar`) - `std.mem.split` (split into `splitSequence`, `splitAny`, `splitScalar`) - `std.mem.splitBackwards` (split into `splitBackwardsSequence`, `splitBackwardsAny`, `splitBackwardsScalar`) - `std.unicode` + `utf16leToUtf8Alloc`, `utf16leToUtf8AllocZ`, `utf16leToUtf8`, `fmtUtf16le` (all renamed to have capitalized `Le`) + `utf8ToUtf16LeWithNull` (renamed to `utf8ToUtf16LeAllocZ`) - `std.zig.CrossTarget` (moved to `std.Target.Query`) Deprecated `lib/std/std.zig` decls were deleted instead of made a `@compileError` because the `refAllDecls` in the test block would trigger the `@compileError`. The deleted top-level `std` namespaces are: - `std.rand` (renamed to `std.Random`) - `std.TailQueue` (renamed to `std.DoublyLinkedList`) - `std.ChildProcess` (renamed/moved to `std.process.Child`) This is not exhaustive. Deprecated aliases that I didn't touch: + `std.io.*` + `std.Build.*` + `std.builtin.Mode` + `std.zig.c_translation.CIntLiteralRadix` + anything in `src/`
2024-05-09link/macho: add support for VisionOSJakub Konka
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-02-05macho: add <cpu_arch>-macosx to target strings as a fallback targetJakub Konka
Turns out that around 10.13/10.14 macOS release version, Apple changed the target tags in tbd files from `macosx` to `macos`. In order to be compliant and therefore actually support linking on older platforms against `libSystem.tbd`, we add `<cpu_arch>-macosx` to target strings.
2024-01-30macho: fix parsing versions from TBDs if parsed as floatsJakub Konka
2024-01-30macho: improve weak-ref symbols handlingJakub Konka
2024-01-29macho: re-enable dSYM but don't write anything to it yetJakub Konka
2024-01-28macho: do not allocate input files in fullJakub Konka
2024-01-24macho: fix 32bit compilation issuesJakub Konka
2024-01-24macho: do not enforce platform check for nowJakub Konka
2024-01-24macho: resolve symbols and mark files liveJakub Konka
2024-01-24macho: parse tbdsJakub Konka
2024-01-24macho: parse dylibsJakub Konka
2024-01-24macho: create scaffolding for parsing different input objectsJakub Konka
2024-01-24macho: parse an input object file!Jakub Konka
2024-01-24macho: get the ball rolling!Jakub Konka
2024-01-24macho: copy over new implementation sources from zldJakub Konka
2023-11-19compiler: correct unnecessary uses of 'var'mlugg
2023-08-30macho: refactor resolving and parsing dependent dylibsJakub Konka
2023-08-29macho: handle mismatched and missing platform errorsJakub Konka
2023-08-29macho: parse platform info from each object file into Platform structJakub Konka
2023-08-29macho: create an explicit error set for parse functionsJakub Konka
2023-08-29macho: merge Zld state with MachO stateJakub Konka
2023-08-29macho: simplify input file parsing for both driversJakub Konka
2023-07-26macho: fix matching target triples for TBDv3Jakub Konka
2023-06-24all: migrate code to new cast builtin syntaxmlugg
Most of this migration was performed automatically with `zig fmt`. There were a few exceptions which I had to manually fix: * `@alignCast` and `@addrSpaceCast` cannot be automatically rewritten * `@truncate`'s fixup is incorrect for vectors * Test cases are not formatted, and their error locations change
2023-05-13Update all std.mem.split calls to their appropriate functionRyan Liptak
Everywhere that can now use `splitScalar` should get a nice little performance boost.
2023-02-18update std lib and compiler sources to new for loop syntaxAndrew Kelley
2023-02-07macho: ensure local syms buffer is nlist_64 aligned when re-reading from fileJakub Konka