diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2021-06-25 22:37:46 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-25 22:37:46 +0200 |
| commit | 7a85dc6935ffaf1828cdc75c2602fb232217f7b3 (patch) | |
| tree | 4b18151af1320b2801054a5dc0e1765a541ddc62 /src/link | |
| parent | 73f77f30804f3a512fbb35caad3d87ff2778ecc0 (diff) | |
| parent | f9171bf54295df0bd8f4dbe1ab9698e5940ba445 (diff) | |
| download | zig-7a85dc6935ffaf1828cdc75c2602fb232217f7b3.tar.gz zig-7a85dc6935ffaf1828cdc75c2602fb232217f7b3.zip | |
Merge pull request #9202 from ifreund/sysroot
stage2: add --sysroot link option
Diffstat (limited to 'src/link')
| -rw-r--r-- | src/link/Elf.zig | 5 | ||||
| -rw-r--r-- | src/link/MachO.zig | 12 |
2 files changed, 11 insertions, 6 deletions
diff --git a/src/link/Elf.zig b/src/link/Elf.zig index 6f839c7694..722077b8b8 100644 --- a/src/link/Elf.zig +++ b/src/link/Elf.zig @@ -1354,6 +1354,7 @@ fn linkWithLLD(self: *Elf, comp: *Compilation) !void { man.hash.add(allow_shlib_undefined); man.hash.add(self.base.options.bind_global_refs_locally); man.hash.add(self.base.options.tsan); + man.hash.addOptionalBytes(self.base.options.sysroot); // We don't actually care whether it's a cache hit or miss; we just need the digest and the lock. _ = try man.hit(); @@ -1423,6 +1424,10 @@ fn linkWithLLD(self: *Elf, comp: *Compilation) !void { try argv.append("-error-limit=0"); + if (self.base.options.sysroot) |sysroot| { + try argv.append(try std.fmt.allocPrint(arena, "--sysroot={s}", .{sysroot})); + } + if (self.base.options.lto) { switch (self.base.options.optimize_mode) { .Debug => {}, diff --git a/src/link/MachO.zig b/src/link/MachO.zig index 4ede9c516e..95389c2d95 100644 --- a/src/link/MachO.zig +++ b/src/link/MachO.zig @@ -704,7 +704,7 @@ fn linkWithLLD(self: *MachO, comp: *Compilation) !void { man.hash.add(allow_shlib_undefined); man.hash.add(self.base.options.bind_global_refs_locally); man.hash.add(self.base.options.system_linker_hack); - man.hash.addOptionalBytes(self.base.options.syslibroot); + man.hash.addOptionalBytes(self.base.options.sysroot); // We don't actually care whether it's a cache hit or miss; we just need the digest and the lock. _ = try man.hit(); @@ -789,7 +789,7 @@ fn linkWithLLD(self: *MachO, comp: *Compilation) !void { zld.deinit(); } zld.arch = target.cpu.arch; - zld.syslibroot = self.base.options.syslibroot; + zld.syslibroot = self.base.options.sysroot; zld.stack_size = stack_size; // Positional arguments to the linker such as object files and static archives. @@ -833,7 +833,7 @@ fn linkWithLLD(self: *MachO, comp: *Compilation) !void { try resolvePaths( arena, &libs, - self.base.options.syslibroot, + self.base.options.sysroot, self.base.options.lib_dirs, search_lib_names.items, .lib, @@ -856,7 +856,7 @@ fn linkWithLLD(self: *MachO, comp: *Compilation) !void { try resolvePaths( arena, &libs, - self.base.options.syslibroot, + self.base.options.sysroot, self.base.options.framework_dirs, self.base.options.frameworks, .framework, @@ -868,7 +868,7 @@ fn linkWithLLD(self: *MachO, comp: *Compilation) !void { try argv.append("zig"); try argv.append("ld"); - if (self.base.options.syslibroot) |syslibroot| { + if (self.base.options.sysroot) |syslibroot| { try argv.append("-syslibroot"); try argv.append(syslibroot); } @@ -1017,7 +1017,7 @@ fn linkWithLLD(self: *MachO, comp: *Compilation) !void { } } - if (self.base.options.syslibroot) |dir| { + if (self.base.options.sysroot) |dir| { try argv.append("-syslibroot"); try argv.append(dir); } |
