| ... | @@ -11,6 +11,7 @@ const R_ARM_RELATIVE = 23; | ... | @@ -11,6 +11,7 @@ const R_ARM_RELATIVE = 23; |
| 11 | const R_AARCH64_RELATIVE = 1027; | 11 | const R_AARCH64_RELATIVE = 1027; |
| 12 | const R_CSKY_RELATIVE = 9; | 12 | const R_CSKY_RELATIVE = 9; |
| 13 | const R_HEXAGON_RELATIVE = 35; | 13 | const R_HEXAGON_RELATIVE = 35; |
| | 14 | const R_KVX_RELATIVE = 39; |
| 14 | const R_LARCH_RELATIVE = 3; | 15 | const R_LARCH_RELATIVE = 3; |
| 15 | const R_68K_RELATIVE = 22; | 16 | const R_68K_RELATIVE = 22; |
| 16 | const R_MICROBLAZE_REL = 16; | 17 | const R_MICROBLAZE_REL = 16; |
| ... | @@ -31,6 +32,7 @@ const R_RELATIVE = switch (builtin.cpu.arch) { | ... | @@ -31,6 +32,7 @@ const R_RELATIVE = switch (builtin.cpu.arch) { |
| 31 | .alpha => R_ALPHA_RELATIVE, | 32 | .alpha => R_ALPHA_RELATIVE, |
| 32 | .csky => R_CSKY_RELATIVE, | 33 | .csky => R_CSKY_RELATIVE, |
| 33 | .hexagon => R_HEXAGON_RELATIVE, | 34 | .hexagon => R_HEXAGON_RELATIVE, |
| | 35 | .kvx => R_KVX_RELATIVE, |
| 34 | .loongarch32, .loongarch64 => R_LARCH_RELATIVE, | 36 | .loongarch32, .loongarch64 => R_LARCH_RELATIVE, |
| 35 | .m68k => R_68K_RELATIVE, | 37 | .m68k => R_68K_RELATIVE, |
| 36 | .microblaze, .microblazeel => R_MICROBLAZE_REL, | 38 | .microblaze, .microblazeel => R_MICROBLAZE_REL, |
| ... | @@ -118,6 +120,12 @@ inline fn getDynamicSymbol() [*]const elf.Dyn { | ... | @@ -118,6 +120,12 @@ inline fn getDynamicSymbol() [*]const elf.Dyn { |
| 118 | : [ret] "=r" (-> [*]const elf.Dyn), | 120 | : [ret] "=r" (-> [*]const elf.Dyn), |
| 119 | : | 121 | : |
| 120 | : .{ .r1 = true }), | 122 | : .{ .r1 = true }), |
| | 123 | .kvx => asm volatile ( |
| | 124 | \\ .weak _DYNAMIC |
| | 125 | \\ .hidden _DYNAMIC |
| | 126 | \\ pcrel %[ret] = @pcrel(_DYNAMIC) |
| | 127 | : [ret] "=r" (-> [*]const elf.Dyn), |
| | 128 | ), |
| 121 | .loongarch32, .loongarch64 => asm volatile ( | 129 | .loongarch32, .loongarch64 => asm volatile ( |
| 122 | \\ .weak _DYNAMIC | 130 | \\ .weak _DYNAMIC |
| 123 | \\ .hidden _DYNAMIC | 131 | \\ .hidden _DYNAMIC |