From 6ad92108e2cbba06064724d8d91abaede20f355a Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Thu, 5 Jan 2023 21:21:29 +0100 Subject: ELF linker: support common-page-size and max-page-size lld opts These linker flags are required to build static ELF binaries that can run under the Blink emulator: https://github.com/jart/blink/issues/14 --- src/Compilation.zig | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/Compilation.zig') diff --git a/src/Compilation.zig b/src/Compilation.zig index f90b8f28d1..cd0761315a 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -979,6 +979,8 @@ pub const InitOptions = struct { linker_z_now: bool = true, linker_z_relro: bool = true, linker_z_nocopyreloc: bool = false, + linker_z_common_page_size: ?u64 = null, + linker_z_max_page_size: ?u64 = null, linker_tsaware: bool = false, linker_nxcompat: bool = false, linker_dynamicbase: bool = false, @@ -1842,6 +1844,8 @@ pub fn create(gpa: Allocator, options: InitOptions) !*Compilation { .z_nocopyreloc = options.linker_z_nocopyreloc, .z_now = options.linker_z_now, .z_relro = options.linker_z_relro, + .z_common_page_size = options.linker_z_common_page_size, + .z_max_page_size = options.linker_z_max_page_size, .tsaware = options.linker_tsaware, .nxcompat = options.linker_nxcompat, .dynamicbase = options.linker_dynamicbase, @@ -2637,6 +2641,8 @@ fn addNonIncrementalStuffToCacheManifest(comp: *Compilation, man: *Cache.Manifes man.hash.add(comp.bin_file.options.z_nocopyreloc); man.hash.add(comp.bin_file.options.z_now); man.hash.add(comp.bin_file.options.z_relro); + man.hash.add(comp.bin_file.options.z_common_page_size orelse 0); + man.hash.add(comp.bin_file.options.z_max_page_size orelse 0); man.hash.add(comp.bin_file.options.hash_style); man.hash.add(comp.bin_file.options.compress_debug_sections); man.hash.add(comp.bin_file.options.include_compiler_rt); -- cgit v1.2.3