commit d2a799c65a7a65df5a66771f41417b6df24834b8 (tree)
parent e82596950f731c0de12997fa7d224b1e0d33c9d3
Author: kcbanner <kcbanner@gmail.com>
Date: Sun, 16 Apr 2023 22:58:10 -0400
coff: support allow_shlib_undefined
Diffstat:
1 file changed, 6 insertions(+), 0 deletions(-)
diff --git a/src/link/Coff/lld.zig b/src/link/Coff/lld.zig
@@ -95,6 +95,7 @@ pub fn linkWithLLD(self: *Coff, comp: *Compilation, prog_node: *std.Progress.Nod
man.hash.add(self.base.options.tsaware);
man.hash.add(self.base.options.nxcompat);
man.hash.add(self.base.options.dynamicbase);
+ man.hash.addOptional(self.base.options.allow_shlib_undefined);
// strip does not need to go into the linker hash because it is part of the hash namespace
man.hash.addOptional(self.base.options.major_subsystem_version);
man.hash.addOptional(self.base.options.minor_subsystem_version);
@@ -226,6 +227,11 @@ pub fn linkWithLLD(self: *Coff, comp: *Compilation, prog_node: *std.Progress.Nod
if (!self.base.options.dynamicbase) {
try argv.append("-dynamicbase:NO");
}
+ if (self.base.options.allow_shlib_undefined) |allow_shlib_undefined| {
+ if (allow_shlib_undefined) {
+ try argv.append("-FORCE:UNRESOLVED");
+ }
+ }
try argv.append(try allocPrint(arena, "-OUT:{s}", .{full_out_path}));