| ... | ... | @@ -9009,11 +9009,6 @@ fn addRelocAssumeCapacity( |
| 9009 | 9009 | .WDISP22, |
| 9010 | 9010 | .HI22, |
| 9011 | 9011 | .LO10, |
| 9012 | | .HIPLT22, |
| 9013 | | .LOPLT10, |
| 9014 | | .PCPLT22, |
| 9015 | | .PCPLT10, |
| 9016 | | .OLO10, |
| 9017 | 9012 | .HH22, |
| 9018 | 9013 | .HM10, |
| 9019 | 9014 | .LM22, |
| ... | ... | @@ -9024,14 +9019,29 @@ fn addRelocAssumeCapacity( |
| 9024 | 9019 | .WDISP19, |
| 9025 | 9020 | .HIX22, |
| 9026 | 9021 | .LOX10, |
| 9027 | | .REGISTER, |
| 9028 | 9022 | .H34, |
| 9029 | 9023 | .WDISP10, |
| 9030 | 9024 | => return error.UnimplementedRelocation, |
| 9031 | 9025 | |
| 9026 | // Nobody seems to support these. |
| 9027 | .HIPLT22, |
| 9028 | .LOPLT10, |
| 9029 | .PCPLT22, |
| 9030 | .PCPLT10, |
| 9031 | => return error.UnimplementedRelocation, |
| 9032 | |
| 9033 | // Needs to use the second addend in `ELF64_R_TYPE_DATA(reloc.r_info)` which we currently can't model. |
| 9034 | .OLO10 => return error.UnimplementedRelocation, |
| 9035 | |
| 9036 | // Does not patch any bytes. Together with `STT_SPARC_REGISTER`, this is used to indicate that an object |
| 9037 | // file owns a global register and what value it should be initialized to. I don't think this sees any |
| 9038 | // real-world use. |
| 9039 | .REGISTER => return error.UnimplementedRelocation, |
| 9040 | |
| 9032 | 9041 | // These need similar handling to `R_X86_64_GOTOFF64`. No compiler seems to emit them though. |
| 9033 | | .GOTDATA_HIX22 => return error.UnimplementedRelocation, |
| 9034 | | .GOTDATA_LOX10 => return error.UnimplementedRelocation, |
| 9042 | .GOTDATA_HIX22, |
| 9043 | .GOTDATA_LOX10, |
| 9044 | => return error.UnimplementedRelocation, |
| 9035 | 9045 | |
| 9036 | 9046 | // These relocations signal that certain relaxations are legal, but this linker does |
| 9037 | 9047 | // not yet implement relaxation, so these are ignored. |
| ... | ... | @@ -9063,8 +9073,8 @@ fn addRelocAssumeCapacity( |
| 9063 | 9073 | .DISP32 => try elf.addSymbolRelocAssumeCapacity(node, offset, target, addend, .simple(.rel, .{ .dest = .@"32", .cast = .signed, .shift = .@"0" })), |
| 9064 | 9074 | .DISP64 => try elf.addSymbolRelocAssumeCapacity(node, offset, target, addend, .simple(.rel, .{ .dest = .@"64", .cast = .signed, .shift = .@"0" })), |
| 9065 | 9075 | |
| 9066 | | .SIZE32 => try elf.addSymbolRelocAssumeCapacity(node, offset, target, addend, .simple(.size, .{ .dest = .@"32", .cast = .unsigned, .shift = .@"0" })), |
| 9067 | | .SIZE64 => try elf.addSymbolRelocAssumeCapacity(node, offset, target, addend, .simple(.size, .{ .dest = .@"64", .cast = .unsigned, .shift = .@"0" })), |
| 9076 | .SIZE32 => try elf.addSymbolRelocAssumeCapacity(node, offset, target, addend, .simple(.size, .{ .dest = .@"32", .cast = .unsigned, .shift = .@"0" })), |
| 9077 | .SIZE64 => try elf.addSymbolRelocAssumeCapacity(node, offset, target, addend, .simple(.size, .{ .dest = .@"64", .cast = .unsigned, .shift = .@"0" })), |
| 9068 | 9078 | |
| 9069 | 9079 | .PCPLT32 => try elf.addSymbolRelocAssumeCapacity(node, offset, target, addend, .simple(.pltrel, .{ .dest = .@"32", .cast = .signed, .shift = .@"0" })), |
| 9070 | 9080 | .PLT32 => try elf.addSymbolRelocAssumeCapacity(node, offset, target, addend, .simple(.pltabs, .{ .dest = .@"32", .cast = .unsigned, .shift = .@"0" })), |