diff --git a/src/Compilation.zig b/src/Compilation.zig index 7d686b2f407883bd91bf0029029a2a1c4a032b63..b98548e9dc95f9ca8cb0a960264de88bddcd09f6 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -762,7 +762,6 @@ pub const InitOptions = struct { linker_z_notext: bool = false, linker_z_defs: bool = false, linker_z_origin: bool = false, - linker_z_noexecstack: bool = false, linker_z_now: bool = true, linker_z_relro: bool = true, linker_z_nocopyreloc: bool = false, @@ -1602,7 +1601,6 @@ pub fn create(gpa: Allocator, options: InitOptions) !*Compilation { .z_defs = options.linker_z_defs, .z_origin = options.linker_z_origin, .z_nocopyreloc = options.linker_z_nocopyreloc, - .z_noexecstack = options.linker_z_noexecstack, .z_now = options.linker_z_now, .z_relro = options.linker_z_relro, .tsaware = options.linker_tsaware, @@ -2350,7 +2348,6 @@ fn addNonIncrementalStuffToCacheManifest(comp: *Compilation, man: *Cache.Manifes man.hash.add(comp.bin_file.options.z_defs); man.hash.add(comp.bin_file.options.z_origin); man.hash.add(comp.bin_file.options.z_nocopyreloc); - man.hash.add(comp.bin_file.options.z_noexecstack); 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.hash_style); diff --git a/src/link.zig b/src/link.zig index 60baa6a92a3abd451f77b11e15486868f1ec8a45..0aa5d0031d87be55caefe1ea521ce46b91086b5c 100644 --- a/src/link.zig +++ b/src/link.zig @@ -113,7 +113,6 @@ pub const Options = struct { z_defs: bool, z_origin: bool, z_nocopyreloc: bool, - z_noexecstack: bool, z_now: bool, z_relro: bool, tsaware: bool, diff --git a/src/link/Elf.zig b/src/link/Elf.zig index 30504c7a1ad881ce3de06cc8dadc095d07c63194..e0f114acd4c5a14f2c248a7191853e7fcdf20cb6 100644 --- a/src/link/Elf.zig +++ b/src/link/Elf.zig @@ -1333,7 +1333,6 @@ fn linkWithLLD(self: *Elf, comp: *Compilation, prog_node: *std.Progress.Node) !v man.hash.add(self.base.options.z_defs); man.hash.add(self.base.options.z_origin); man.hash.add(self.base.options.z_nocopyreloc); - man.hash.add(self.base.options.z_noexecstack); man.hash.add(self.base.options.z_now); man.hash.add(self.base.options.z_relro); man.hash.add(self.base.options.hash_style); @@ -1512,10 +1511,6 @@ fn linkWithLLD(self: *Elf, comp: *Compilation, prog_node: *std.Progress.Node) !v try argv.append("-z"); try argv.append("nocopyreloc"); } - if (self.base.options.z_noexecstack) { - try argv.append("-z"); - try argv.append("noexecstack"); - } if (self.base.options.z_now) { // LLD defaults to -zlazy try argv.append("-znow"); diff --git a/src/main.zig b/src/main.zig index eaff34ee9e779246be882b4e88f0dc1676d8a511..39237d16256dee81a887416eb528654c5aff65f9 100644 --- a/src/main.zig +++ b/src/main.zig @@ -433,7 +433,6 @@ const usage_build_generic = \\ defs Force a fatal error if any undefined symbols remain \\ origin Indicate that the object must have its origin processed \\ nocopyreloc Disable the creation of copy relocations - \\ noexecstack Indicate that the object requires an executable stack \\ now (default) Force all relocations to be processed on load \\ lazy Don't force all relocations to be processed on load \\ relro (default) Force all relocations to be read-only after processing @@ -656,7 +655,6 @@ fn buildOutputType( var linker_z_notext = false; var linker_z_defs = false; var linker_z_origin = false; - var linker_z_noexecstack = false; var linker_z_now = true; var linker_z_relro = true; var linker_tsaware = false; @@ -1207,8 +1205,6 @@ fn buildOutputType( linker_z_defs = true; } else if (mem.eql(u8, z_arg, "origin")) { linker_z_origin = true; - } else if (mem.eql(u8, z_arg, "noexecstack")) { - linker_z_noexecstack = true; } else if (mem.eql(u8, z_arg, "now")) { linker_z_now = true; } else if (mem.eql(u8, z_arg, "lazy")) { @@ -1694,7 +1690,7 @@ fn buildOutputType( } else if (mem.eql(u8, z_arg, "origin")) { linker_z_origin = true; } else if (mem.eql(u8, z_arg, "noexecstack")) { - linker_z_noexecstack = true; + // noexecstack is the default when linking with LLD } else if (mem.eql(u8, z_arg, "now")) { linker_z_now = true; } else if (mem.eql(u8, z_arg, "lazy")) { @@ -2719,7 +2715,6 @@ fn buildOutputType( .linker_z_notext = linker_z_notext, .linker_z_defs = linker_z_defs, .linker_z_origin = linker_z_origin, - .linker_z_noexecstack = linker_z_noexecstack, .linker_z_now = linker_z_now, .linker_z_relro = linker_z_relro, .linker_tsaware = linker_tsaware,