From 68dbd7f3cb622b9fd4e46f53fa1ce6f65e0c68e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Li=C5=A1ka?= Date: Sat, 20 Dec 2025 03:13:58 -0800 Subject: [PATCH] LoongArch64: adjust relocation constants based on spec (#827) Link to spec: https://github.com/loongson/la-abi-specs/blob/release/laelf.adoc#relocations --- crates/examples/src/readobj/elf.rs | 2 ++ src/elf.rs | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/crates/examples/src/readobj/elf.rs b/crates/examples/src/readobj/elf.rs index 1f8e9b8..7bce458 100644 --- a/crates/examples/src/readobj/elf.rs +++ b/crates/examples/src/readobj/elf.rs @@ -3262,6 +3262,8 @@ const FLAGS_R_LOONGARCH: &[Flag] = &flags!( R_LARCH_TLS_TPREL32, R_LARCH_TLS_TPREL64, R_LARCH_IRELATIVE, + R_LARCH_TLS_DESC32, + R_LARCH_TLS_DESC64, R_LARCH_MARK_LA, R_LARCH_MARK_PCREL, R_LARCH_SOP_PUSH_PCREL, diff --git a/src/elf.rs b/src/elf.rs index b8ea042..5589316 100644 --- a/src/elf.rs +++ b/src/elf.rs @@ -6049,6 +6049,10 @@ pub const R_LARCH_TLS_TPREL32: u32 = 10; pub const R_LARCH_TLS_TPREL64: u32 = 11; /// Runtime local indirect function resolving pub const R_LARCH_IRELATIVE: u32 = 12; +/// Runtime relocation for TLS descriptors +pub const R_LARCH_TLS_DESC32: u32 = 13; +/// Runtime relocation for TLS descriptors +pub const R_LARCH_TLS_DESC64: u32 = 14; /// Mark la.abs: load absolute address for static link. pub const R_LARCH_MARK_LA: u32 = 20; /// Mark external label branch: access PC relative address for static link.