package linksem
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
A formalisation of the core ELF and DWARF file formats written in Lem
Install
dune-project
Dependency
Authors
Maintainers
Sources
0.8.tar.gz
md5=2075c56715539b3b8f54ae65cc808b8c
sha512=f7c16e4036a1440a6a8d13707a43f0f9f9db0c68489215f948cc300b6a164dba5bf852e58f89503e9d9f38180ee658d9478156ca1a1ef64d6861eec5f9cf43d2
doc/linksem_zarith/Linker_script/index.html
Module Linker_scriptSource
Source
type input_section_rec = {idx : Nat_big_num.num;fname : string;img : Elf_memory_image.elf_memory_image;shndx : Nat_big_num.num;secname : string;isec : Elf_interpreted_section.elf64_interpreted_section;
}Source
type input_spec = | Common of Nat_big_num.num * string * Elf_memory_image.elf_memory_image * Memory_image.symbol_definition| InputSection of input_section_rec
Source
type 'a address_expr_fn_map =
(address_expr_fn_ref, Nat_big_num.num -> 'a -> Nat_big_num.num) Pmap.mapSource
type output_section_composition_element = | IncludeInputSection of retain_policy * input_section_rec| IncludeCommonSymbol of retain_policy * string * Nat_big_num.num * Memory_image.symbol_definition * Elf_memory_image.elf_memory_image| Hole of address_expr_fn| ProvideSymbol of symbol_def_policy * string * symbol_spec
Source
and output_section_spec = | OutputSectionSpec of output_guard * Nat_big_num.num option * string * output_section_composition_element list
Source
and allocated_sections_map = | AllocatedSectionsMap of (string, output_section_spec * Nat_big_num.num) Pmap.map
Source
type script_element = | DefineSymbol of symbol_def_policy * string * symbol_spec| AdvanceAddress of address_expr_fn| MarkAndAlignDataSegment of Nat_big_num.num * Nat_big_num.num| MarkDataSegmentEnd| MarkDataSegmentRelroEnd| OutputSection of output_guard * address_expr_fn option * string * script_element list| DiscardInput of input_selector| InputQuery of retain_policy * sort_policy * input_selector
Source
val address_zero :
Nat_big_num.num ->
(Nat_big_num.num,
Nat_big_num.num ->
allocated_sections_map ->
Nat_big_num.num)
Pmap.map ->
Nat_big_num.num
* (Nat_big_num.num,
Nat_big_num.num ->
allocated_sections_map ->
Nat_big_num.num)
Pmap.map
* address_expr_fnSource
val do_output_section_layout_starting_at_addr :
Nat_big_num.num ->
allocated_sections_map ->
output_section_composition_element list ->
Nat_big_num.num * Nat_big_num.num listSource
val output_sec_composition_size_given_start_addr :
Nat_big_num.num ->
allocated_sections_map ->
output_section_composition_element list ->
Nat_big_num.numSource
val alignof_output_section_composition_element :
output_section_composition_element ->
Nat_big_num.numSource
val default_linker_control_script :
Nat_big_num.num ->
(Nat_big_num.num,
Nat_big_num.num ->
allocated_sections_map ->
Nat_big_num.num)
Pmap.map ->
'a Memory_image.abi ->
Nat_big_num.num option ->
Nat_big_num.num option ->
'b ->
Nat_big_num.num ->
Nat_big_num.num
* (Nat_big_num.num,
Nat_big_num.num ->
allocated_sections_map ->
Nat_big_num.num)
Pmap.map
* script_element listSource
val label_script_aux :
Nat_big_num.num ->
script_element list ->
(script_element * Nat_big_num.num) listSource
val assign_inputs_to_output_sections :
(input_spec list * (output_section_spec * Nat_big_num.num) list) ->
(Nat_big_num.num * Nat_big_num.num) Pset.set ->
(Nat_big_num.num * Nat_big_num.num * Nat_big_num.num) Pset.set ->
input_spec list ->
(output_section_spec * Nat_big_num.num) option ->
input_spec option ->
(input_spec -> input_spec -> int) ->
labelled_linker_control_script ->
input_spec list * (output_section_spec * Nat_big_num.num) listSource
val symbol_def_for_provide_symbol :
string ->
Nat_big_num.num ->
Uint32_wrapper.uint32 ->
Uint32_wrapper.uint32 ->
Nat_big_num.num ->
Memory_image.symbol_definitionSource
val assign_dot_to_itself :
Nat_big_num.num ->
(Nat_big_num.num,
Nat_big_num.num ->
allocated_sections_map ->
Nat_big_num.num)
Pmap.map ->
Nat_big_num.num
* (Nat_big_num.num,
Nat_big_num.num ->
allocated_sections_map ->
Nat_big_num.num)
Pmap.map
* address_expr_fnSource
val build_image :
'a Memory_image.abi ->
(address_expr_fn_ref,
Nat_big_num.num ->
allocated_sections_map ->
Nat_big_num.num)
Pmap.map ->
Elf_memory_image.elf_memory_image ->
Nat_big_num.num ->
allocated_sections_map ->
(string,
(Nat_big_num.num
* ((Nat_big_num.num
* Memory_image.symbol_reference
* Linkable_list.linkable_item)
* (Nat_big_num.num
* Memory_image.symbol_definition
* Linkable_list.linkable_item)
option))
list)
Pmap.map ->
(script_element * Nat_big_num.num) list ->
Nat_big_num.num ->
'b ->
Abis.any_abi_feature Memory_image.annotated_memory_image
* allocated_sections_mapSource
val default_place_orphans :
(input_spec list * (output_section_spec * Nat_big_num.num) list) ->
input_spec list ->
input_spec list * (output_section_spec * Nat_big_num.num) listSource
val interpret_linker_control_script :
(address_expr_fn_ref,
Nat_big_num.num ->
allocated_sections_map ->
Nat_big_num.num)
Pmap.map ->
script_element list ->
Linkable_list.linkable_item list ->
Nat_big_num.num ->
'a Memory_image.abi ->
input_spec list ->
(input_spec -> input_spec -> int) ->
((input_spec list * (output_section_spec * Nat_big_num.num) list) ->
input_spec list ->
'b * (output_section_spec * Nat_big_num.num) list) ->
(string,
(Nat_big_num.num
* ((Nat_big_num.num
* Memory_image.symbol_reference
* Linkable_list.linkable_item)
* (Nat_big_num.num
* Memory_image.symbol_definition
* Linkable_list.linkable_item)
option))
list)
Pmap.map ->
Abis.any_abi_feature Memory_image.annotated_memory_image
* (string, (Nat_big_num.num * Linkable_list.binding) list) Pmap.map sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>