Source file abi_aarch64_symbol_table.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(** [abi_aarch64_symbol_table], symbol table specific defintions for the AARCH64
* ABI.
*)
open Lem_basic_classes
open Lem_bool
open Elf_header
open Elf_symbol_table
open Elf_section_header_table
open Elf_types_native_uint
(** Two types of weak symbol are defined in the AARCH64 ABI. See Section 4.5.
*)
let is_aarch64_weak_reference ent:bool= (Nat_big_num.equal
(Uint32_wrapper.to_bigint ent.elf64_st_shndx) shn_undef && Nat_big_num.equal
(get_elf64_symbol_binding ent) stb_weak)
let is_aarch64_weak_definition ent:bool= (not (Nat_big_num.equal (Uint32_wrapper.to_bigint ent.elf64_st_shndx) shn_undef) && Nat_big_num.equal
(get_elf64_symbol_binding ent) stb_weak)