| ... | ... | @@ -2918,12 +2918,12 @@ pub const ExternSymbolOpts = struct { |
| 2918 | 2918 | }; |
| 2919 | 2919 | pub fn externSymbol(elf: *Elf, opts: ExternSymbolOpts) link.Error!link.File.SymbolId { |
| 2920 | 2920 | const diags = &elf.base.comp.link_diags; |
| 2921 | | return elf.externSymbolInner(opts) catch |err| switch (err) { |
| 2921 | return (elf.externSymbolInner(opts) catch |err| switch (err) { |
| 2922 | 2922 | error.MappedFileIo => return diags.fail("failed to write output file: {t}", .{elf.mf.io_err.?}), |
| 2923 | 2923 | else => |e| return e, |
| 2924 | | }; |
| 2924 | }).toTypeErased(); |
| 2925 | 2925 | } |
| 2926 | | fn externSymbolInner(elf: *Elf, opts: ExternSymbolOpts) Error!link.File.SymbolId { |
| 2926 | fn externSymbolInner(elf: *Elf, opts: ExternSymbolOpts) Error!Symbol.Id { |
| 2927 | 2927 | try elf.ensureUnusedSymbolCapacity(1, .maybe_global); |
| 2928 | 2928 | const symbol = elf.addGlobalSymbolAssumeCapacity(.{ |
| 2929 | 2929 | .node = .none, |
| ... | ... | @@ -2947,7 +2947,7 @@ fn externSymbolInner(elf: *Elf, opts: ExternSymbolOpts) Error!link.File.SymbolId |
| 2947 | 2947 | }) catch |err| switch (err) { |
| 2948 | 2948 | error.MultipleDefinitions => unreachable, // shndx is undef |
| 2949 | 2949 | }; |
| 2950 | | return symbol.toTypeErased(); |
| 2950 | return symbol; |
| 2951 | 2951 | } |
| 2952 | 2952 | pub fn addReloc( |
| 2953 | 2953 | elf: *Elf, |
| ... | ... | @@ -6359,8 +6359,6 @@ fn addRelocAssumeCapacity( |
| 6359 | 6359 | .REGISTER, |
| 6360 | 6360 | .TLS_GD_HI22, |
| 6361 | 6361 | .TLS_GD_LO10, |
| 6362 | | .TLS_GD_CALL, |
| 6363 | | .TLS_LDM_CALL, |
| 6364 | 6362 | .TLS_IE_HI22, |
| 6365 | 6363 | .TLS_IE_LO10, |
| 6366 | 6364 | .TLS_DTPMOD32, |
| ... | ... | @@ -6391,6 +6389,11 @@ fn addRelocAssumeCapacity( |
| 6391 | 6389 | .L44 => try elf.addSymbolRelocAssumeCapacity(node, offset, target, addend, .sparc_l44), |
| 6392 | 6390 | .UA64 => try elf.addSymbolRelocAssumeCapacity(node, offset, target, addend, .abs64), |
| 6393 | 6391 | .UA16 => try elf.addSymbolRelocAssumeCapacity(node, offset, target, addend, .abs16), |
| 6392 | .TLS_GD_CALL, .TLS_LDM_CALL => try elf.addSymbolRelocAssumeCapacity(node, offset, try elf.externSymbolInner(.{ |
| 6393 | .lib_name = null, |
| 6394 | .name = "__tls_get_addr", |
| 6395 | .type = .FUNC, |
| 6396 | }), addend, .sparc_wplt30), |
| 6394 | 6397 | .SIZE32 => try elf.addSymbolRelocAssumeCapacity(node, offset, target, addend, .size32), |
| 6395 | 6398 | .SIZE64 => try elf.addSymbolRelocAssumeCapacity(node, offset, target, addend, .size64), |
| 6396 | 6399 | |