authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-10-19 13:03:07+02:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-10-22 07:59:23+02:00
logbaceaf65f258d2da422ddd0abdf2452937bd7b6d
treec079b706c929f96ea84f0e4fcda42faa96151e7f
parenta32bc0e39c9d2b33547241fcb9868d72e52ee1df

macho: fix incorrectly erroring out with multiple sym definition


1 files changed, 11 insertions(+), 7 deletions(-)

src/link/MachO.zig+11-7
...@@ -2702,13 +2702,17 @@ pub fn updateDeclExports(...@@ -2702,13 +2702,17 @@ pub fn updateDeclExports(
27022702
2703 self.resolveGlobalSymbol(sym_loc) catch |err| switch (err) {2703 self.resolveGlobalSymbol(sym_loc) catch |err| switch (err) {
2704 error.MultipleSymbolDefinitions => {2704 error.MultipleSymbolDefinitions => {
2705 _ = try module.failed_exports.put(module.gpa, exp, try Module.ErrorMsg.create(2705 // TODO: this needs rethinking
2706 gpa,2706 const global = self.getGlobal(exp_name).?;
2707 decl.srcLoc(),2707 if (sym_loc.sym_index != global.sym_index and global.file != null) {
2708 \\LinkError: symbol '{s}' defined multiple times2708 _ = try module.failed_exports.put(module.gpa, exp, try Module.ErrorMsg.create(
2709 ,2709 gpa,
2710 .{exp_name},2710 decl.srcLoc(),
2711 ));2711 \\LinkError: symbol '{s}' defined multiple times
2712 ,
2713 .{exp_name},
2714 ));
2715 }
2712 },2716 },
2713 else => |e| return e,2717 else => |e| return e,
2714 };2718 };