[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[COMMITTED] elf-mach-mips: add values for l_flags
From: |
Jose E. Marchesi |
Subject: |
[COMMITTED] elf-mach-mips: add values for l_flags |
Date: |
Sun, 29 Jan 2023 23:37:29 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
---
elf-mach-mips.pk | 31 ++++++++++++++++++++++++++++++-
poke-elf.texi | 9 +++++++++
2 files changed, 39 insertions(+), 1 deletion(-)
diff --git a/elf-mach-mips.pk b/elf-mach-mips.pk
index 9f28ba4..33cf393 100644
--- a/elf-mach-mips.pk
+++ b/elf-mach-mips.pk
@@ -508,6 +508,30 @@ elf_config.add_enum
Elf_Config_UInt { value = ELF_SHT_MIPS_XHASH, name = "XHASH",
doc = "GNU style symbol hash table with xlat."
}];
+/* Values for the l_flags field of an Elf32_MIPS_Lib. */
+
+var ELF_MIPS_LL_EXACT_MATCH = 0x0000_0001U,
+ ELF_MIPS_LL_IGNORE_INT_VER = 0x0000_0002U,
+ ELF_MIPS_LL_REQUIRE_MINOR = 0x0000_0004U,
+ ELF_MIPS_LL_EXPORTS = 0x0000_0008U,
+ ELF_MIPS_LL_DELAY_LOAD = 0x0000_0010U,
+ ELF_MIPS_LL_DELTA = 0x0000_0020U;
+
+elf_config.add_mask
+ :machine ELF_EM_MIPS
+ :class "mips-l-flags"
+ :entries [Elf_Config_Mask { value = ELF_MIPS_LL_EXACT_MATCH, name =
"exact-match",
+ doc = "Require an exact match at runtime." },
+ Elf_Config_Mask { value = ELF_MIPS_LL_IGNORE_INT_VER, name =
"ignore-int-ver",
+ doc = "Ignore version incompatibilities at
runtime." },
+ Elf_Config_Mask { value = ELF_MIPS_LL_REQUIRE_MINOR, name =
"require-minor",
+ doc = "Require matching minor version number." },
+ Elf_Config_Mask { value = ELF_MIPS_LL_EXPORTS, name = "exports" },
+ Elf_Config_Mask { value = ELF_MIPS_LL_DELAY_LOAD, name =
"delay-load",
+ doc = "Delay loading of this library until
really needed." },
+ Elf_Config_Mask { value = ELF_MIPS_LL_DELTA, name = "delta",
+ doc = "Delta C++ stuff???" }];
+
/* Sections of type SHT_MIPS_LIBLIST contain an array of the following
structure. The sh_link field is the section index of the string table.
The sh_info field is the number of entries in the section. */
@@ -523,5 +547,10 @@ type Elf32_MIPS_Lib =
/* String table index for version. */
uint<32> l_version;
/* Flags. */
- uint<32> l_flags;
+ uint<32> l_flags : elf_config.check_mask ("mips-l-flags", ELF_EM_MIPS,
l_flags);
+
+ method _print_l_flags = void:
+ {
+ printf "#<%s>", elf_config.format_mask ("mips-l-flags", ELF_EM_MIPS,
l_flags);
+ }
};
diff --git a/poke-elf.texi b/poke-elf.texi
index 4e30e4a..4013ceb 100644
--- a/poke-elf.texi
+++ b/poke-elf.texi
@@ -643,6 +643,15 @@ Valid values in the @code{ELF_EF_MIPS_ARCH} bits of
@code{eflags} in
MIPS machines.
@end table
+@noindent
+The architecture-specific mask configuration parameters used by this
+pickle are:
+
+@table @code
+@item mips-l-flags
+Valid bits in @code{l_flags} fields.
+@end table
+
@section Getting printed representations of configuration parameters
The @code{format_enum} and @code{format_mask} methods of
--
2.30.2
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [COMMITTED] elf-mach-mips: add values for l_flags,
Jose E. Marchesi <=