aboutsummaryrefslogtreecommitdiff
path: root/src/link
diff options
context:
space:
mode:
Diffstat (limited to 'src/link')
-rw-r--r--src/link/Elf.zig10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/link/Elf.zig b/src/link/Elf.zig
index 4910f4b599..c27e4f166f 100644
--- a/src/link/Elf.zig
+++ b/src/link/Elf.zig
@@ -1390,6 +1390,8 @@ fn linkWithLLD(self: *Elf, comp: *Compilation, prog_node: *std.Progress.Node) !v
man.hash.add(self.base.options.z_nocopyreloc);
man.hash.add(self.base.options.z_now);
man.hash.add(self.base.options.z_relro);
+ man.hash.add(self.base.options.z_common_page_size orelse 0);
+ man.hash.add(self.base.options.z_max_page_size orelse 0);
man.hash.add(self.base.options.hash_style);
// strip does not need to go into the linker hash because it is part of the hash namespace
if (self.base.options.link_libc) {
@@ -1594,6 +1596,14 @@ fn linkWithLLD(self: *Elf, comp: *Compilation, prog_node: *std.Progress.Node) !v
// LLD defaults to -zrelro
try argv.append("-znorelro");
}
+ if (self.base.options.z_common_page_size) |size| {
+ try argv.append("-z");
+ try argv.append(try std.fmt.allocPrint(arena, "common-page-size={d}", .{size}));
+ }
+ if (self.base.options.z_max_page_size) |size| {
+ try argv.append("-z");
+ try argv.append(try std.fmt.allocPrint(arena, "max-page-size={d}", .{size}));
+ }
if (getLDMOption(target)) |ldm| {
// Any target ELF will use the freebsd osabi if suffixed with "_fbsd".