aboutsummaryrefslogtreecommitdiff
path: root/src/link
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2021-06-25 22:37:46 +0200
committerGitHub <noreply@github.com>2021-06-25 22:37:46 +0200
commit7a85dc6935ffaf1828cdc75c2602fb232217f7b3 (patch)
tree4b18151af1320b2801054a5dc0e1765a541ddc62 /src/link
parent73f77f30804f3a512fbb35caad3d87ff2778ecc0 (diff)
parentf9171bf54295df0bd8f4dbe1ab9698e5940ba445 (diff)
downloadzig-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.zig5
-rw-r--r--src/link/MachO.zig12
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);
}