diff --git a/lib/import/import-libsparkcryptofat.mk b/lib/import/import-libsparkcryptofat.mk
new file mode 100644
index 0000000..97027ad
--- /dev/null
+++ b/lib/import/import-libsparkcryptofat.mk
@@ -0,0 +1 @@
+include $(call select_from_repositories,lib/import/import-libsparkcrypto.mk)
diff --git a/lib/mk/ada.mk b/lib/mk/ada.mk
index 56321e3..4f11716 100644
--- a/lib/mk/ada.mk
+++ b/lib/mk/ada.mk
@@ -10,7 +10,8 @@ SRC_C += \
posix_common.c \
posix_fat.c
-SRC_ADS += system.ads \
+SRC_ADS += \
+ system.ads \
s-soflin.ads \
s-imgint.ads \
s-stoele.ads \
@@ -25,9 +26,10 @@ SRC_ADS += system.ads \
ada.ads \
g-souinf.ads \
g-trasym.ads \
- s-unstyp.ads
+ s-unstyp.ads \
-SRC_ADB += g-io.adb \
+SRC_ADB += \
+ g-io.adb \
a-except.adb \
a-tags.adb \
a-finali.adb \
@@ -94,6 +96,7 @@ vpath platform.% $(ADA_RUNTIME_LIB_DIR)
vpath string_utils.% $(ADA_RUNTIME_LIB_DIR)
vpath ss_utils.% $(ADA_RUNTIME_LIB_DIR)
vpath a-except.adb $(ADA_RUNTIME_DIR)
+vpath s-osprim.adb $(ADA_RUNTIME_DIR)
vpath %.c $(ADA_RUNTIME_PLATFORM_DIR)
vpath %.ads $(ADA_RTS_SOURCE)
diff --git a/lib/mk/libsparkcryptofat.mk b/lib/mk/libsparkcryptofat.mk
new file mode 100644
index 0000000..c2fadd3
--- /dev/null
+++ b/lib/mk/libsparkcryptofat.mk
@@ -0,0 +1,2 @@
+LSC_RUNTIME := ada
+include $(call select_from_repositories,lib/mk/libsparkcrypto.inc)
diff --git a/lib/symbols/ada b/lib/symbols/ada
index 2ca0e10..bc700f0 100644
--- a/lib/symbols/ada
+++ b/lib/symbols/ada
@@ -1,3 +1,330 @@
+_abort_signal D 40
+ada__calendar__ada_high_and_leaps R 8
+ada__calendar__ada_high R 8
+ada__calendar__ada_low R 8
+ada__calendar__ada_min_year R 4
+ada__calendar__arithmetic_operations__add T
+ada__calendar__arithmetic_operations__difference T
+ada__calendar__arithmetic_operations__subtract T
+ada__calendar__check_within_time_bounds T
+ada__calendar__clock T
+ada__calendar__conversion_operations__to_ada_time__2 T
+ada__calendar__conversion_operations__to_ada_time T
+ada__calendar__conversion_operations__to_duration T
+ada__calendar__conversion_operations__to_struct_timespec T
+ada__calendar__conversion_operations__to_struct_tm T
+ada__calendar__conversion_operations__to_unix_time T
+ada__calendar__cumulative_days_before_month R 48
+ada__calendar__cumulative_leap_seconds T
+ada__calendar__days_in_month R 48
+ada__calendar__day T
+ada__calendar__delay_operations__to_duration T
+ada__calendar_E D 2
+ada__calendar___elabb T
+ada__calendar___elabs T
+ada__calendar__end_of_time R 8
+ada__calendar__epoch_offset R 8
+ada__calendar__formatting_operations__day_of_week T
+ada__calendar__is_leap T
+ada__calendar__leap_seconds_count R 4
+ada__calendar__leap_second_times R 200
+ada__calendar__leap_support B 1
+ada__calendar__month T
+ada__calendar__Oadd__2 T
+ada__calendar__Oadd T
+ada__calendar__Oge T
+ada__calendar__Ogt T
+ada__calendar__Ole T
+ada__calendar__Olt T
+ada__calendar__Osubtract__2 T
+ada__calendar__Osubtract T
+ada__calendar__R2s D 8
+ada__calendar__seconds T
+ada__calendar__split T
+ada__calendar__start_of_time R 8
+ada__calendar__time_error D 40
+ada__calendar__time_errorE R 24
+ada__calendar__time_of T
+ada__calendar__time_zones_operations__utc_time_offset T
+ada__calendar__unix_max R 8
+ada__calendar__unix_min R 8
+ada__calendar__utc_time_offset T
+ada__calendar__year T
+ada_E D 2
+ada__exceptions__counter R 4
+ada__exceptions_E D 2
+ada__exceptions__eid_to_string T
+ada__exceptions__eo_to_string T
+ada__exceptions__exception_data__append_info_addressXn T
+ada__exceptions__exception_data__append_info_basic_exception_informationXn T
+ada__exceptions__exception_data__append_info_characterXn T
+ada__exceptions__exception_data__append_info_exception_name__2Xn T
+ada__exceptions__exception_data__append_info_exception_nameXn T
+ada__exceptions__exception_data__append_info_natXn T
+ada__exceptions__exception_data__append_info_nlXn T
+ada__exceptions__exception_data__append_info_stringXn T
+ada__exceptions__exception_data__append_info_untailored_exception_tracebackXn T
+ada__exceptions__exception_data__basic_exception_info_maxlengthXn T
+ada__exceptions__exception_data__bei_msg_headerXn R 4
+ada__exceptions__exception_data__bei_name_headerXn R 8
+ada__exceptions__exception_data__bei_pid_headerXn R 8
+ada__exceptions__exception_data__betb_headerXn R 31
+ada__exceptions__exception_data__exception_info_maxlengthXn T
+ada__exceptions__exception_data__exception_informationXn T
+ada__exceptions__exception_data__exception_name_length__2Xn T
+ada__exceptions__exception_data__exception_name_lengthXn T
+ada__exceptions__exception_data__ldad_headerXn R 16
+ada__exceptions__exception_data__set_exception_c_msgXn T
+ada__exceptions__exception_data__set_exception_msgXn T
+ada__exceptions__exception_data__tailored_exception_tracebackXn T
+ada__exceptions__exception_data__untailored_exception_informationXn T
+ada__exceptions__exception_data__untailored_exception_traceback_maxlengthXn T
+ada__exceptions__exception_data__untailored_exception_tracebackXn T
+ada__exceptions__exception_identity T
+ada__exceptions__exception_information T
+ada__exceptions__exception_message T
+ada__exceptions__exception_name__2 T
+ada__exceptions__exception_name_simple T
+ada__exceptions__exception_name T
+ada__exceptions__exception_occurrenceIP T
+ada__exceptions__exception_traces__nlineXn R 1
+ada__exceptions__exception_traces__notify_exceptionXn T
+ada__exceptions__exception_traces__unhandled_exception_terminateXn T
+ada__exceptions__last_chance_handler_E D 2
+ada__exceptions__null_id R 8
+ada__exceptions__null_loc R 8
+ada__exceptions__null_occurrence R 632
+ada__exceptions__poll T
+ada__exceptions__process_raise_exception T
+ada__exceptions__raise_exception_no_defer T
+ada__exceptions__raise_exception T
+ada__exceptions__raise_from_signal_handler T
+ada__exceptions__raise_with_location_and_msg T
+ada__exceptions__reraise_occurrence_always T
+ada__exceptions__reraise_occurrence_no_defer T
+ada__exceptions__reraise_occurrence T
+ada__exceptions__rmsg_00 R 20
+ada__exceptions__rmsg_01 R 25
+ada__exceptions__rmsg_02 R 26
+ada__exceptions__rmsg_03 R 16
+ada__exceptions__rmsg_04 R 16
+ada__exceptions__rmsg_05 R 19
+ada__exceptions__rmsg_06 R 16
+ada__exceptions__rmsg_07 R 20
+ada__exceptions__rmsg_08 R 18
+ada__exceptions__rmsg_09 R 28
+ada__exceptions__rmsg_10 R 22
+ada__exceptions__rmsg_11 R 23
+ada__exceptions__rmsg_12 R 19
+ada__exceptions__rmsg_13 R 17
+ada__exceptions__rmsg_14 R 26
+ada__exceptions__rmsg_15 R 27
+ada__exceptions__rmsg_16 R 48
+ada__exceptions__rmsg_17 R 19
+ada__exceptions__rmsg_18 R 18
+ada__exceptions__rmsg_19 R 47
+ada__exceptions__rmsg_20 R 38
+ada__exceptions__rmsg_21 R 25
+ada__exceptions__rmsg_22 R 16
+ada__exceptions__rmsg_23 R 33
+ada__exceptions__rmsg_24 R 31
+ada__exceptions__rmsg_25 R 25
+ada__exceptions__rmsg_26 R 16
+ada__exceptions__rmsg_27 R 27
+ada__exceptions__rmsg_28 R 31
+ada__exceptions__rmsg_29 R 26
+ada__exceptions__rmsg_30 R 28
+ada__exceptions__rmsg_31 R 51
+ada__exceptions__rmsg_32 R 19
+ada__exceptions__rmsg_33 R 16
+ada__exceptions__rmsg_34 R 19
+ada__exceptions__rmsg_35 R 17
+ada__exceptions__rmsg_36 R 29
+ada__exceptions__save_occurrence__2 T
+ada__exceptions__save_occurrence T
+ada__exceptions__stream_attributes__eid_to_stringXn T
+ada__exceptions__stream_attributes__eo_to_stringXn T
+ada__exceptions__stream_attributes__string_to_eidXn T
+ada__exceptions__stream_attributes__string_to_eoXn T
+ada__exceptions__string_to_eid T
+ada__exceptions__string_to_eo T
+ada__exceptions__triggered_by_abort T
+ada__finalization__adjust T
+ada__finalization___assign__3 T
+ada__finalization__controlledB46s D 88
+ada__finalization__controlledDA__2 T
+ada__finalization__controlledDF__2 T
+ada__finalization__controlledE42s R 28
+ada__finalization__controlledFD T
+ada__finalization__controlledH43s D 8
+ada__finalization__controlledIP T
+ada__finalization__controlledP D 8
+ada__finalization__controlledR44s D 8
+ada__finalization__controlledR44s___UNC D 80
+ada__finalization__controlledSO__2 T
+ada__finalization__controlledSR__2 T
+ada__finalization__controlledSW__2 T
+ada__finalization__controlledT D 56
+ada__finalization__controlledY D 8
+ada__finalization_E D 2
+ada__finalization___elabs T
+ada__finalization__finalize__2 T
+ada__finalization__finalize T
+ada__finalization__initialize__2 T
+ada__finalization__initialize T
+ada__finalization__limited_controlledB79s D 88
+ada__finalization__limited_controlledDF__2 T
+ada__finalization__limited_controlledE75s R 36
+ada__finalization__limited_controlledFD T
+ada__finalization__limited_controlledH76s D 8
+ada__finalization__limited_controlledIP T
+ada__finalization__limited_controlledP D 8
+ada__finalization__limited_controlledR77s D 8
+ada__finalization__limited_controlledR77s___UNC D 80
+ada__finalization__limited_controlledT D 56
+ada__finalization__limited_controlledY D 8
+ada__finalization__Oeq__3 T
+ada__finalization___size__3 T
+ada__finalization___size__4 T
+ada__finalization__TcontrolledCFD T
+ada__finalization__Tlimited_controlledCFD T
+ada__io_exceptions__data_error D 40
+ada__io_exceptions__data_errorE R 29
+ada__io_exceptions__device_error D 40
+ada__io_exceptions__device_errorE R 31
+ada__io_exceptions_E D 2
+ada__io_exceptions___elabs T
+ada__io_exceptions__end_error D 40
+ada__io_exceptions__end_errorE R 28
+ada__io_exceptions__layout_error D 40
+ada__io_exceptions__layout_errorE R 31
+ada__io_exceptions__mode_error D 40
+ada__io_exceptions__mode_errorE R 29
+ada__io_exceptions__name_error D 40
+ada__io_exceptions__name_errorE R 29
+ada__io_exceptions__R11s D 8
+ada__io_exceptions__R14s D 8
+ada__io_exceptions__R17s D 8
+ada__io_exceptions__R20s D 8
+ada__io_exceptions__R23s D 8
+ada__io_exceptions__R2s D 8
+ada__io_exceptions__R5s D 8
+ada__io_exceptions__R8s D 8
+ada__io_exceptions__status_error D 40
+ada__io_exceptions__status_errorE R 31
+ada__io_exceptions__use_error D 40
+ada__io_exceptions__use_errorE R 28
+ada__streams_E D 2
+ada__streams___elabs T
+ada__streams__read_sea T
+ada__streams__root_stream_typeB32s D 80
+ada__streams__root_stream_typeDF T
+ada__streams__root_stream_typeE28s R 29
+ada__streams__root_stream_typeH29s D 8
+ada__streams__root_stream_typeIP T
+ada__streams__root_stream_typeP D 8
+ada__streams__root_stream_typeR30s D 8
+ada__streams__root_stream_typeR30s___UNC D 80
+ada__streams__root_stream_typeT D 48
+ada__streams__root_stream_typeY D 8
+ada__streams___size T
+ada__streams__stream_element_arrayIP T
+ada__streams__stream_element_arraySR T
+ada__streams__stream_element_arraySW T
+ada__streams__Troot_stream_typeCFD T
+ada__streams__write_sea T
+_ada_system__address_image T
+ada__tags__address_arrayIP T
+ada__tags__base_address T
+ada__tags__check_tsd T
+ada__tags__cw_membership T
+ada__tags__descendant_tag T
+ada__tags__dispatch_table_wrapperIP T
+ada__tags__displace T
+ada__tags__dt_offset_to_top_offset R 8
+ada__tags__dt_offset_to_top_size R 8
+ada__tags__dt_predef_prims_offset R 8
+ada__tags__dt_predef_prims_size R 8
+ada__tags__dt T
+ada__tags__dt_typeinfo_ptr_size R 8
+ada__tags_E D 2
+ada__tags___elabb T
+ada__tags___elabs T
+ada__tags__expanded_name T
+ada__tags__external_tag_htable__get_firstXn T
+ada__tags__external_tag_htable__get_nextXn T
+ada__tags__external_tag_htable__get_non_nullXn T
+ada__tags__external_tag_htable__getXn T
+ada__tags__external_tag_htable__iterator_indexXn B 1
+ada__tags__external_tag_htable__iterator_ptrXn D 8
+ada__tags__external_tag_htable__iterator_startedXn D 1
+ada__tags__external_tag_htable__null_ptrXn R 8
+ada__tags__external_tag_htable__presentXn T
+ada__tags__external_tag_htable__removeXn T
+ada__tags__external_tag_htable__resetXn T
+ada__tags__external_tag_htable__set_if_not_presentXn T
+ada__tags__external_tag_htable__setXn T
+ada__tags__external_tag_htable__tableXn B 512
+ada__tags__external_tag_htable__TtableBIPXn T
+ada__tags__external_tag T
+ada__tags__get_entry_index T
+ada__tags__get_external_tag T
+ada__tags__get_offset_index T
+ada__tags__get_prim_op_kind T
+ada__tags__get_tagged_kind T
+ada__tags__htable_subprograms__equalXn T
+ada__tags__htable_subprograms__get_ht_linkXn T
+ada__tags__htable_subprograms__hashXn T
+ada__tags__htable_subprograms__set_ht_linkXn T
+ada__tags__interface_ancestor_tags T
+ada__tags__interface_data_elementIP T
+ada__tags__interface_dataIP T
+ada__tags__interfaces_arrayIP T
+ada__tags__internal_tag T
+ada__tags__is_descendant_at_same_level T
+ada__tags__is_primary_dt T
+ada__tags__iw_membership T
+ada__tags__length T
+ada__tags__max_predef_prims R 4
+ada__tags__needs_finalization T
+ada__tags__no_dispatch_table_wrapperIP T
+ada__tags__no_tag R 8
+ada__tags__object_specific_data_arrayIP T
+ada__tags__object_specific_dataIP T
+ada__tags__offset_to_top T
+ada__tags__osd T
+ada__tags__parent_size T
+ada__tags__parent_tag T
+ada__tags__prim_op_kindN R 18
+ada__tags__prim_op_kindS R 138
+ada__tags__R4s D 8
+ada__tags__register_interface_offset T
+ada__tags__register_tag T
+ada__tags__secondary_tag T
+ada__tags__select_specific_data_arrayIP T
+ada__tags__select_specific_data_elementIP T
+ada__tags__select_specific_dataIP T
+ada__tags__set_dynamic_offset_to_top T
+ada__tags__set_entry_index T
+ada__tags__set_prim_op_kind T
+ada__tags__signature_kindN R 4
+ada__tags__signature_kindS R 29
+ada__tags__ssd T
+ada__tags__tag_arrayIP T
+ada__tags__tag_error D 40
+ada__tags__tag_errorE R 19
+ada__tags__tagged_kindN R 8
+ada__tags__tagged_kindS R 89
+ada__tags__tag_tableIP T
+ada__tags__type_is_abstract T
+ada__tags__type_specific_dataIP T
+ada__tags__unregister_tag T
+ada__tags__wide_expanded_name T
+ada__tags__wide_wide_expanded_name T
+ada__unchecked_deallocation_E D 2
+allocate_secondary_stack T
+constraint_error D 40
+get_thread T
__gl_default_stack_size D 4
__gl_detect_blocking B 4
__gl_interrupt_states B 8
@@ -15,32 +342,58 @@ __gl_unreserve_all_interrupts B 4
__gl_wc_encoding D 1
__gnat_append_info_e_msg T
__gnat_append_info_u_e_info T
+gnat_argc B 4
+gnat_argv B 8
__gnat_binder_ss_count B 4
__gnat_break_start T
__gnat_debug_raise_assert_failure T
__gnat_debug_raise_exception T
__gnat_default_ss_pool B 4
__gnat_default_ss_size B 4
+gnat_E D 2
+gnat_envp B 8
__gnat_exception_actions_global_action D 8
__gnat_exception_actions_initialized D 1
__gnat_exception_msg_len T
+gnat_exit_status T
__gnat_finalize_library_objects D 8
__gnat_finalize T
__gnat_free T
__gnat_initialize T
+gnat__io__current_out D 1
+gnat__io_E D 2
+gnat__io__file_typeN R 4
+gnat__io__file_typeS R 16
+gnat__io__get__2 T
+gnat__io__get_line T
+gnat__io__get T
+gnat__io__new_line__2 T
+gnat__io__new_line T
+gnat__io__put__2 T
+gnat__io__put__3 T
+gnat__io__put__4 T
+gnat__io__put__5 T
+gnat__io__put__6 T
+gnat__io__put_line__2 T
+gnat__io__put_line T
+gnat__io__put T
+gnat__io__set_output T
+gnat__io__standard_error T
+gnat__io__standard_output T
__gnat_last_chance_handler T
__gnat_malloc T
+__gnat_mulv64 T
__gnat_notify_handled_exception T
__gnat_notify_unhandled_exception T
-__gnat_raise_constraint_error T
__gnat_raise_constraint_error_msg T
+__gnat_raise_constraint_error T
__gnat_raise_exception T
__gnat_raise_from_controlled_operation T
__gnat_raise_nodefer_with_msg T
-__gnat_raise_program_error T
__gnat_raise_program_error_msg T
-__gnat_raise_storage_error T
+__gnat_raise_program_error T
__gnat_raise_storage_error_msg T
+__gnat_raise_storage_error T
__gnat_raise_with_msg T
__gnat_rcheck_00 T
__gnat_rcheck_01 T
@@ -117,334 +470,32 @@ __gnat_rcheck_SE_Explicit_Raise T
__gnat_rcheck_SE_Infinite_Recursion T
__gnat_rcheck_SE_Object_Too_Large T
__gnat_realloc T
-__gnat_reraise T
__gnat_reraise_library_exception_if_any T
+__gnat_reraise T
__gnat_set_exit_status T
+gnat__source_info_E D 2
__gnat_stack_limit B 8
-__gnat_to_stderr T
+__gnat_timeval_to_duration T
__gnat_to_stderr_char T
+__gnat_to_stderr T
__gnat_transfer_occurrence T
__gnat_unhandled_exception T
__gnat_unhandled_terminate T
-_abort_signal D 40
-_ada_system__address_image T
-ada_E D 2
-ada__exceptions_E D 2
-ada__exceptions__counter R 4
-ada__exceptions__eid_to_string T
-ada__exceptions__eo_to_string T
-ada__exceptions__exception_data__append_info_addressXn T
-ada__exceptions__exception_data__append_info_basic_exception_informationXn T
-ada__exceptions__exception_data__append_info_characterXn T
-ada__exceptions__exception_data__append_info_exception_nameXn T
-ada__exceptions__exception_data__append_info_exception_name__2Xn T
-ada__exceptions__exception_data__append_info_natXn T
-ada__exceptions__exception_data__append_info_nlXn T
-ada__exceptions__exception_data__append_info_stringXn T
-ada__exceptions__exception_data__append_info_untailored_exception_tracebackXn T
-ada__exceptions__exception_data__basic_exception_info_maxlengthXn T
-ada__exceptions__exception_data__bei_msg_headerXn R 4
-ada__exceptions__exception_data__bei_name_headerXn R 8
-ada__exceptions__exception_data__bei_pid_headerXn R 8
-ada__exceptions__exception_data__betb_headerXn R 31
-ada__exceptions__exception_data__exception_info_maxlengthXn T
-ada__exceptions__exception_data__exception_informationXn T
-ada__exceptions__exception_data__exception_name_lengthXn T
-ada__exceptions__exception_data__exception_name_length__2Xn T
-ada__exceptions__exception_data__ldad_headerXn R 16
-ada__exceptions__exception_data__set_exception_c_msgXn T
-ada__exceptions__exception_data__set_exception_msgXn T
-ada__exceptions__exception_data__tailored_exception_tracebackXn T
-ada__exceptions__exception_data__untailored_exception_informationXn T
-ada__exceptions__exception_data__untailored_exception_tracebackXn T
-ada__exceptions__exception_data__untailored_exception_traceback_maxlengthXn T
-ada__exceptions__exception_identity T
-ada__exceptions__exception_information T
-ada__exceptions__exception_message T
-ada__exceptions__exception_name T
-ada__exceptions__exception_name__2 T
-ada__exceptions__exception_name_simple T
-ada__exceptions__exception_occurrenceIP T
-ada__exceptions__exception_traces__nlineXn R 1
-ada__exceptions__exception_traces__notify_exceptionXn T
-ada__exceptions__exception_traces__unhandled_exception_terminateXn T
-ada__exceptions__last_chance_handler_E D 2
-ada__exceptions__null_id R 8
-ada__exceptions__null_loc R 8
-ada__exceptions__null_occurrence R 632
-ada__exceptions__poll T
-ada__exceptions__process_raise_exception T
-ada__exceptions__raise_exception T
-ada__exceptions__raise_exception_no_defer T
-ada__exceptions__raise_from_signal_handler T
-ada__exceptions__raise_with_location_and_msg T
-ada__exceptions__reraise_occurrence T
-ada__exceptions__reraise_occurrence_always T
-ada__exceptions__reraise_occurrence_no_defer T
-ada__exceptions__rmsg_00 R 20
-ada__exceptions__rmsg_01 R 25
-ada__exceptions__rmsg_02 R 26
-ada__exceptions__rmsg_03 R 16
-ada__exceptions__rmsg_04 R 16
-ada__exceptions__rmsg_05 R 19
-ada__exceptions__rmsg_06 R 16
-ada__exceptions__rmsg_07 R 20
-ada__exceptions__rmsg_08 R 18
-ada__exceptions__rmsg_09 R 28
-ada__exceptions__rmsg_10 R 22
-ada__exceptions__rmsg_11 R 23
-ada__exceptions__rmsg_12 R 19
-ada__exceptions__rmsg_13 R 17
-ada__exceptions__rmsg_14 R 26
-ada__exceptions__rmsg_15 R 27
-ada__exceptions__rmsg_16 R 48
-ada__exceptions__rmsg_17 R 19
-ada__exceptions__rmsg_18 R 18
-ada__exceptions__rmsg_19 R 47
-ada__exceptions__rmsg_20 R 38
-ada__exceptions__rmsg_21 R 25
-ada__exceptions__rmsg_22 R 16
-ada__exceptions__rmsg_23 R 33
-ada__exceptions__rmsg_24 R 31
-ada__exceptions__rmsg_25 R 25
-ada__exceptions__rmsg_26 R 16
-ada__exceptions__rmsg_27 R 27
-ada__exceptions__rmsg_28 R 31
-ada__exceptions__rmsg_29 R 26
-ada__exceptions__rmsg_30 R 28
-ada__exceptions__rmsg_31 R 51
-ada__exceptions__rmsg_32 R 19
-ada__exceptions__rmsg_33 R 16
-ada__exceptions__rmsg_34 R 19
-ada__exceptions__rmsg_35 R 17
-ada__exceptions__rmsg_36 R 29
-ada__exceptions__save_occurrence T
-ada__exceptions__save_occurrence__2 T
-ada__exceptions__stream_attributes__eid_to_stringXn T
-ada__exceptions__stream_attributes__eo_to_stringXn T
-ada__exceptions__stream_attributes__string_to_eidXn T
-ada__exceptions__stream_attributes__string_to_eoXn T
-ada__exceptions__string_to_eid T
-ada__exceptions__string_to_eo T
-ada__exceptions__triggered_by_abort T
-ada__finalization_E D 2
-ada__finalization__Oeq__3 T
-ada__finalization__TcontrolledCFD T
-ada__finalization__Tlimited_controlledCFD T
-ada__finalization___assign__3 T
-ada__finalization___elabs T
-ada__finalization___size__3 T
-ada__finalization___size__4 T
-ada__finalization__adjust T
-ada__finalization__controlledB46s D 88
-ada__finalization__controlledDA__2 T
-ada__finalization__controlledDF__2 T
-ada__finalization__controlledE42s R 28
-ada__finalization__controlledFD T
-ada__finalization__controlledH43s D 8
-ada__finalization__controlledIP T
-ada__finalization__controlledP D 8
-ada__finalization__controlledR44s D 8
-ada__finalization__controlledR44s___UNC D 80
-ada__finalization__controlledSO__2 T
-ada__finalization__controlledSR__2 T
-ada__finalization__controlledSW__2 T
-ada__finalization__controlledT D 56
-ada__finalization__controlledY D 8
-ada__finalization__finalize T
-ada__finalization__finalize__2 T
-ada__finalization__initialize T
-ada__finalization__initialize__2 T
-ada__finalization__limited_controlledB79s D 88
-ada__finalization__limited_controlledDF__2 T
-ada__finalization__limited_controlledE75s R 36
-ada__finalization__limited_controlledFD T
-ada__finalization__limited_controlledH76s D 8
-ada__finalization__limited_controlledIP T
-ada__finalization__limited_controlledP D 8
-ada__finalization__limited_controlledR77s D 8
-ada__finalization__limited_controlledR77s___UNC D 80
-ada__finalization__limited_controlledT D 56
-ada__finalization__limited_controlledY D 8
-ada__io_exceptions_E D 2
-ada__io_exceptions__R11s D 8
-ada__io_exceptions__R14s D 8
-ada__io_exceptions__R17s D 8
-ada__io_exceptions__R20s D 8
-ada__io_exceptions__R23s D 8
-ada__io_exceptions__R2s D 8
-ada__io_exceptions__R5s D 8
-ada__io_exceptions__R8s D 8
-ada__io_exceptions___elabs T
-ada__io_exceptions__data_error D 40
-ada__io_exceptions__data_errorE R 29
-ada__io_exceptions__device_error D 40
-ada__io_exceptions__device_errorE R 31
-ada__io_exceptions__end_error D 40
-ada__io_exceptions__end_errorE R 28
-ada__io_exceptions__layout_error D 40
-ada__io_exceptions__layout_errorE R 31
-ada__io_exceptions__mode_error D 40
-ada__io_exceptions__mode_errorE R 29
-ada__io_exceptions__name_error D 40
-ada__io_exceptions__name_errorE R 29
-ada__io_exceptions__status_error D 40
-ada__io_exceptions__status_errorE R 31
-ada__io_exceptions__use_error D 40
-ada__io_exceptions__use_errorE R 28
-ada__streams_E D 2
-ada__streams__Troot_stream_typeCFD T
-ada__streams___elabs T
-ada__streams___size T
-ada__streams__read_sea T
-ada__streams__root_stream_typeB32s D 80
-ada__streams__root_stream_typeDF T
-ada__streams__root_stream_typeE28s R 29
-ada__streams__root_stream_typeH29s D 8
-ada__streams__root_stream_typeIP T
-ada__streams__root_stream_typeP D 8
-ada__streams__root_stream_typeR30s D 8
-ada__streams__root_stream_typeR30s___UNC D 80
-ada__streams__root_stream_typeT D 48
-ada__streams__root_stream_typeY D 8
-ada__streams__stream_element_arrayIP T
-ada__streams__stream_element_arraySR T
-ada__streams__stream_element_arraySW T
-ada__streams__write_sea T
-ada__tags_E D 2
-ada__tags__R4s D 8
-ada__tags___elabb T
-ada__tags___elabs T
-ada__tags__address_arrayIP T
-ada__tags__base_address T
-ada__tags__check_tsd T
-ada__tags__cw_membership T
-ada__tags__descendant_tag T
-ada__tags__dispatch_table_wrapperIP T
-ada__tags__displace T
-ada__tags__dt T
-ada__tags__dt_offset_to_top_offset R 8
-ada__tags__dt_offset_to_top_size R 8
-ada__tags__dt_predef_prims_offset R 8
-ada__tags__dt_predef_prims_size R 8
-ada__tags__dt_typeinfo_ptr_size R 8
-ada__tags__expanded_name T
-ada__tags__external_tag T
-ada__tags__external_tag_htable__TtableBIPXn T
-ada__tags__external_tag_htable__getXn T
-ada__tags__external_tag_htable__get_firstXn T
-ada__tags__external_tag_htable__get_nextXn T
-ada__tags__external_tag_htable__get_non_nullXn T
-ada__tags__external_tag_htable__iterator_indexXn B 1
-ada__tags__external_tag_htable__iterator_ptrXn D 8
-ada__tags__external_tag_htable__iterator_startedXn D 1
-ada__tags__external_tag_htable__null_ptrXn R 8
-ada__tags__external_tag_htable__presentXn T
-ada__tags__external_tag_htable__removeXn T
-ada__tags__external_tag_htable__resetXn T
-ada__tags__external_tag_htable__setXn T
-ada__tags__external_tag_htable__set_if_not_presentXn T
-ada__tags__external_tag_htable__tableXn B 512
-ada__tags__get_entry_index T
-ada__tags__get_external_tag T
-ada__tags__get_offset_index T
-ada__tags__get_prim_op_kind T
-ada__tags__get_tagged_kind T
-ada__tags__htable_subprograms__equalXn T
-ada__tags__htable_subprograms__get_ht_linkXn T
-ada__tags__htable_subprograms__hashXn T
-ada__tags__htable_subprograms__set_ht_linkXn T
-ada__tags__interface_ancestor_tags T
-ada__tags__interface_dataIP T
-ada__tags__interface_data_elementIP T
-ada__tags__interfaces_arrayIP T
-ada__tags__internal_tag T
-ada__tags__is_descendant_at_same_level T
-ada__tags__is_primary_dt T
-ada__tags__iw_membership T
-ada__tags__length T
-ada__tags__max_predef_prims R 4
-ada__tags__needs_finalization T
-ada__tags__no_dispatch_table_wrapperIP T
-ada__tags__no_tag R 8
-ada__tags__object_specific_dataIP T
-ada__tags__object_specific_data_arrayIP T
-ada__tags__offset_to_top T
-ada__tags__osd T
-ada__tags__parent_size T
-ada__tags__parent_tag T
-ada__tags__prim_op_kindN R 18
-ada__tags__prim_op_kindS R 138
-ada__tags__register_interface_offset T
-ada__tags__register_tag T
-ada__tags__secondary_tag T
-ada__tags__select_specific_dataIP T
-ada__tags__select_specific_data_arrayIP T
-ada__tags__select_specific_data_elementIP T
-ada__tags__set_dynamic_offset_to_top T
-ada__tags__set_entry_index T
-ada__tags__set_prim_op_kind T
-ada__tags__signature_kindN R 4
-ada__tags__signature_kindS R 29
-ada__tags__ssd T
-ada__tags__tag_arrayIP T
-ada__tags__tag_error D 40
-ada__tags__tag_errorE R 19
-ada__tags__tag_tableIP T
-ada__tags__tagged_kindN R 8
-ada__tags__tagged_kindS R 89
-ada__tags__type_is_abstract T
-ada__tags__type_specific_dataIP T
-ada__tags__unregister_tag T
-ada__tags__wide_expanded_name T
-ada__tags__wide_wide_expanded_name T
-ada__unchecked_deallocation_E D 2
-allocate_secondary_stack T
-constraint_error D 40
-get_thread T
-gnat_argc B 4
-gnat_argv B 8
-gnat_envp B 8
-gnat_exit_status T
-gnat_E D 2
-gnat__io_E D 2
-gnat__io__current_out D 1
-gnat__io__file_typeN R 4
-gnat__io__file_typeS R 16
-gnat__io__get T
-gnat__io__get__2 T
-gnat__io__get_line T
-gnat__io__new_line T
-gnat__io__new_line__2 T
-gnat__io__put T
-gnat__io__put__2 T
-gnat__io__put__3 T
-gnat__io__put__4 T
-gnat__io__put__5 T
-gnat__io__put__6 T
-gnat__io__put_line T
-gnat__io__put_line__2 T
-gnat__io__set_output T
-gnat__io__standard_error T
-gnat__io__standard_output T
-gnat__source_info_E D 2
-interfaces_E D 2
-interfaces__c_E D 2
-interfaces__c__R6s D 8
-interfaces__c___elabs T
interfaces__c__char16_arrayIP T
interfaces__c__char16_nul R 2
interfaces__c__char32_arrayIP T
interfaces__c__char32_nul R 4
interfaces__c__char_arrayIP T
-interfaces__c__is_nul_terminated T
+interfaces__c_E D 2
+interfaces__c___elabs T
interfaces__c__is_nul_terminated__2 T
interfaces__c__is_nul_terminated__3 T
interfaces__c__is_nul_terminated__4 T
+interfaces__c__is_nul_terminated T
interfaces__c__nul R 1
+interfaces__c__R6s D 8
interfaces__c__terminator_error D 40
interfaces__c__terminator_errorE R 30
-interfaces__c__to_ada T
interfaces__c__to_ada__10 T
interfaces__c__to_ada__11 T
interfaces__c__to_ada__12 T
@@ -456,7 +507,7 @@ interfaces__c__to_ada__6 T
interfaces__c__to_ada__7 T
interfaces__c__to_ada__8 T
interfaces__c__to_ada__9 T
-interfaces__c__to_c T
+interfaces__c__to_ada T
interfaces__c__to_c__10 T
interfaces__c__to_c__11 T
interfaces__c__to_c__12 T
@@ -468,45 +519,47 @@ interfaces__c__to_c__6 T
interfaces__c__to_c__7 T
interfaces__c__to_c__8 T
interfaces__c__to_c__9 T
+interfaces__c__to_c T
interfaces__c__wchar_arrayIP T
interfaces__c__wide_nul R 4
+interfaces_E D 2
local_raise T
log_debug T
log_error T
log_warning T
numeric_error D 40
platform_E D 2
-platform__log_debug T
platform__log_debug_private T
-platform__log_error T
+platform__log_debug T
platform__log_error_private T
-platform__log_warning T
+platform__log_error T
platform__log_warning_private T
+platform__log_warning T
platform__raise_ada_exception T
program_error D 40
-put_char T
put_char_stderr T
-put_int T
+put_char T
put_int_stderr T
+put_int T
raise_ada_exception T
-ss_utils_E D 2
-ss_utils__TregistryBIP T
-ss_utils___elabs T
ss_utils__allocate_stack T
ss_utils__c_alloc T
+ss_utils_E D 2
+ss_utils___elabs T
ss_utils__get_mark T
ss_utils__invalid_thread R 8
ss_utils__markIP T
ss_utils__null_registry B 3072
ss_utils__registry_entryIP T
ss_utils__s_allocate T
-ss_utils__s_mark T
-ss_utils__s_release T
ss_utils__secondary_stack_size R 8
ss_utils__set_mark T
+ss_utils__s_mark T
+ss_utils__s_release T
+ss_utils__TregistryBIP T
storage_error D 40
-string_utils_E D 2
string_utils__convert_to_ada T
+string_utils_E D 2
string_utils__get_char T
string_utils__incr T
string_utils__length T
@@ -516,16 +569,34 @@ string_utils__to_pointer T
system__aamp R 1
system__address_image_E D 2
system__always_compatible_rep R 1
+system__arith_64__add_with_ovflo_check T
+system__arith_64__double_divide T
+system__arith_64__hi T
+system__arith_64__le3 T
+system__arith_64__lo T
+system__arith_64__Oabs T
+system__arith_64__Oadd__2 T
+system__arith_64__Oadd T
+system__arith_64__Oconcat T
+system__arith_64__Odivide T
+system__arith_64__Omultiply T
+system__arith_64__Orem T
+system__arith_64__raise_error T
+system__arith_64__scaled_divide T
+system__arith_64__sub3 T
+system__arith_64__subtract_with_ovflo_check T
+system__arith_64__to_neg_int T
+system__arith_64__to_pos_int T
system__backend_divide_checks R 1
system__backend_overflow_checks R 1
system__bit_orderN R 4
system__bit_orderS R 31
system__case_util_E D 2
-system__case_util__to_lower T
system__case_util__to_lower__2 T
+system__case_util__to_lower T
system__case_util__to_mixed T
-system__case_util__to_upper T
system__case_util__to_upper__2 T
+system__case_util__to_upper T
system__command_line_args R 1
system__concat_2_E D 2
system__concat_2__str_concat_2 T
@@ -559,29 +630,23 @@ system__default_bit_order R 1
system__default_priority R 4
system__denorm R 1
system__duration_32_bits R 1
-system__exception_table_E D 2
-system__exception_table__ThtableBIP T
-system__exception_table___elabb T
-system__exception_table__exception_data_arrayIP T
-system__exception_table__get_registered_exceptions T
-system__exception_table__has_name T
-system__exception_table__hash T
-system__exception_table__htable B 296
-system__exception_table__internal_exception T
-system__exception_table__lookup T
-system__exception_table__register T
-system__exception_table__register_exception T
-system__exception_table__registered_exceptions_count T
system__exceptions_debug_E D 2
system__exceptions_E D 2
system__exceptions___elabs T
+system__exception_table_E D 2
+system__exception_table___elabb T
+system__exception_table__exception_data_arrayIP T
+system__exception_table__get_registered_exceptions T
+system__exception_table__hash T
+system__exception_table__has_name T
+system__exception_table__htable B 296
+system__exception_table__internal_exception T
+system__exception_table__lookup T
+system__exception_table__registered_exceptions_count T
+system__exception_table__register_exception T
+system__exception_table__register T
+system__exception_table__ThtableBIP T
system__exit_status_supported R 1
-system__finalization_masters_E D 2
-system__finalization_masters__Tfinalization_masterCFD T
-system__finalization_masters___elabb T
-system__finalization_masters___elabs T
-system__finalization_masters___master B 4
-system__finalization_masters___size__2 T
system__finalization_masters__add_offset_to_address T
system__finalization_masters__attach T
system__finalization_masters__attach_unprotected T
@@ -589,6 +654,9 @@ system__finalization_masters__base_pool T
system__finalization_masters__delete_finalize_address_unprotected T
system__finalization_masters__detach T
system__finalization_masters__detach_unprotected T
+system__finalization_masters_E D 2
+system__finalization_masters___elabb T
+system__finalization_masters___elabs T
system__finalization_masters__finalization_masterB28s D 96
system__finalization_masters__finalization_masterDF__2 T
system__finalization_masters__finalization_masterE24s R 48
@@ -601,26 +669,24 @@ system__finalization_masters__finalization_masterR26s___UNC D 80
system__finalization_masters__finalization_masterT D 136
system__finalization_masters__finalization_masterY D 8
system__finalization_masters__finalization_started T
-system__finalization_masters__finalize T
system__finalization_masters__finalize_address T
system__finalization_masters__finalize_address_table__element_wrapperIPXn T
-system__finalization_masters__finalize_address_table__getXn T
-system__finalization_masters__finalize_address_table__get_firstXn T
system__finalization_masters__finalize_address_table__get_first__2Xn T
+system__finalization_masters__finalize_address_table__get_firstXn T
system__finalization_masters__finalize_address_table__get_keyXn T
-system__finalization_masters__finalize_address_table__get_nextXn T
system__finalization_masters__finalize_address_table__get_next__2Xn T
+system__finalization_masters__finalize_address_table__get_nextXn T
+system__finalization_masters__finalize_address_table__getXn T
system__finalization_masters__finalize_address_table__nextXn T
system__finalization_masters__finalize_address_table__no_elementXn R 8
system__finalization_masters__finalize_address_table__removeXn T
system__finalization_masters__finalize_address_table__resetXn T
-system__finalization_masters__finalize_address_table__setXn T
system__finalization_masters__finalize_address_table__set_nextXn T
-system__finalization_masters__finalize_address_table__tab__TtableBIPXnb T
-system__finalization_masters__finalize_address_table__tab__getXnb T
+system__finalization_masters__finalize_address_table__setXn T
system__finalization_masters__finalize_address_table__tab__get_firstXnb T
system__finalization_masters__finalize_address_table__tab__get_nextXnb T
system__finalization_masters__finalize_address_table__tab__get_non_nullXnb T
+system__finalization_masters__finalize_address_table__tab__getXnb T
system__finalization_masters__finalize_address_table__tab__iterator_indexXnb B 1
system__finalization_masters__finalize_address_table__tab__iterator_ptrXnb D 8
system__finalization_masters__finalize_address_table__tab__iterator_startedXnb D 1
@@ -628,15 +694,18 @@ system__finalization_masters__finalize_address_table__tab__null_ptrXnb R 8
system__finalization_masters__finalize_address_table__tab__presentXnb T
system__finalization_masters__finalize_address_table__tab__removeXnb T
system__finalization_masters__finalize_address_table__tab__resetXnb T
-system__finalization_masters__finalize_address_table__tab__setXnb T
system__finalization_masters__finalize_address_table__tab__set_if_not_presentXnb T
+system__finalization_masters__finalize_address_table__tab__setXnb T
system__finalization_masters__finalize_address_table__tab__tableXnb B 1024
+system__finalization_masters__finalize_address_table__tab__TtableBIPXnb T
system__finalization_masters__finalize_address_unprotected T
system__finalization_masters__finalize_spec T
+system__finalization_masters__finalize T
system__finalization_masters__fm_nodeIP T
system__finalization_masters__header_size T
system__finalization_masters__initialize__2 T
system__finalization_masters__is_homogeneous T
+system__finalization_masters___master B 4
system__finalization_masters__objects T
system__finalization_masters__print_master T
system__finalization_masters__set_base_pool T
@@ -644,15 +713,15 @@ system__finalization_masters__set_finalize_address T
system__finalization_masters__set_finalize_address_unprotected T
system__finalization_masters__set_heterogeneous_finalize_address_unprotected T
system__finalization_masters__set_is_heterogeneous T
-system__finalization_root_E D 2
-system__finalization_root__Oeq T
-system__finalization_root__Troot_controlledCFD T
-system__finalization_root___assign T
-system__finalization_root___elabs T
-system__finalization_root___size T
+system__finalization_masters___size__2 T
+system__finalization_masters__Tfinalization_masterCFD T
system__finalization_root__adjust T
+system__finalization_root___assign T
+system__finalization_root_E D 2
+system__finalization_root___elabs T
system__finalization_root__finalize T
system__finalization_root__initialize T
+system__finalization_root__Oeq T
system__finalization_root__root_controlledB29s D 80
system__finalization_root__root_controlledDA T
system__finalization_root__root_controlledDF T
@@ -667,10 +736,12 @@ system__finalization_root__root_controlledSR T
system__finalization_root__root_controlledSW T
system__finalization_root__root_controlledT D 56
system__finalization_root__root_controlledY D 8
+system__finalization_root___size T
+system__finalization_root__Troot_controlledCFD T
system__fractional_fixed_ops R 1
-system__front_end_zcx_support R 1
system__frontend_exceptions R 1
system__frontend_layout R 1
+system__front_end_zcx_support R 1
system__functions_return_by_dsp R 1
system__gcc_zcx_support R 1
system__high_integrity_mode R 1
@@ -680,15 +751,18 @@ system__img_bool__image_boolean T
system__img_int_E D 2
system__img_int__image_integer T
system__img_int__set_image_integer T
-system__io_E D 2
+system__img_lli_E D 2
+system__img_lli__image_long_long_integer T
+system__img_lli__set_image_long_long_integer T
system__io__current_out D 1
+system__io_E D 2
system__io__file_typeN R 4
system__io__file_typeS R 16
system__io__new_line T
-system__io__put T
system__io__put__2 T
system__io__put__3 T
system__io__put_line T
+system__io__put T
system__io__set_output T
system__io__standard_error T
system__io__standard_output T
@@ -701,12 +775,12 @@ system__memory_E D 2
system__nameN R 2
system__nameS R 16
system__null_address R 8
-system__parameters_E D 2
system__parameters__adjust_storage_size T
system__parameters__c_malloc_linkname R 16
system__parameters__default_env_stack_size R 4
system__parameters__default_stack_size T
system__parameters__dynamic R 4
+system__parameters_E D 2
system__parameters__garbage_collected R 1
system__parameters__minimum_stack_size T
system__parameters__no_abort R 1
@@ -716,16 +790,16 @@ system__parameters__sec_stack_percentage R 4
system__parameters__single_lock R 1
system__parameters__stack_grows_down R 1
system__parameters__unspecified_size R 4
-system__pool_global_E D 2
-system__pool_global__C59s D 4
-system__pool_global__Tunbounded_no_reclaim_poolCFD T
-system__pool_global___elabs T
-system__pool_global___size T
system__pool_global__allocate T
+system__pool_global__C59s D 4
system__pool_global__deallocate T
+system__pool_global_E D 2
+system__pool_global___elabs T
system__pool_global__finalize_spec T
system__pool_global__global_pool_object B 8
+system__pool_global___size T
system__pool_global__storage_size T
+system__pool_global__Tunbounded_no_reclaim_poolCFD T
system__pool_global__unbounded_no_reclaim_poolB20s D 104
system__pool_global__unbounded_no_reclaim_poolDF T
system__pool_global__unbounded_no_reclaim_poolE16s R 45
@@ -738,11 +812,11 @@ system__pool_global__unbounded_no_reclaim_poolR18s___UNC D 80
system__pool_global__unbounded_no_reclaim_poolT D 80
system__pool_global__unbounded_no_reclaim_poolY D 8
system__preallocated_stacks R 1
-system__secondary_stack_E D 2
-system__secondary_stack___elabb T
system__secondary_stack__chunk_idIP T
system__secondary_stack__default_secondary_stack_size D 4
system__secondary_stack__dummy_fixed_stack B 48
+system__secondary_stack_E D 2
+system__secondary_stack___elabb T
system__secondary_stack__fixed_stack_idIP T
system__secondary_stack__mark_idIP T
system__secondary_stack__memoryIP T
@@ -756,9 +830,6 @@ system__secondary_stack__ss_ratio_dynamic R 1
system__secondary_stack__ss_release T
system__secondary_stack__stack_idIP T
system__signed_zeros R 1
-system__soft_links_E D 2
-system__soft_links___elabb T
-system__soft_links___elabs T
system__soft_links__abort_defer D 8
system__soft_links__abort_defer_nt T
system__soft_links__abort_handler D 8
@@ -776,6 +847,9 @@ system__soft_links__current_master D 8
system__soft_links__current_master_nt T
system__soft_links__destroy_tsd T
system__soft_links__dummy_communication_blockIP T
+system__soft_links_E D 2
+system__soft_links___elabb T
+system__soft_links___elabs T
system__soft_links__enter_master D 8
system__soft_links__enter_master_nt T
system__soft_links__get_current_excep D 8
@@ -811,18 +885,18 @@ system__soft_links__traceback_decorator_wrapper D 8
system__soft_links__tsdIP T
system__soft_links__unlock_task D 8
system__stack_check_default R 1
-system__stack_check_limits R 1
-system__stack_check_probes R 1
system__stack_checking_E D 2
system__stack_checking__multi_processor R 1
system__stack_checking__null_stack D 8
system__stack_checking__null_stack_info D 24
system__stack_checking__stack_infoIP T
-system__standard_library_E D 2
+system__stack_check_limits R 1
+system__stack_check_probes R 1
system__standard_library__abort_signal_name R 16
system__standard_library__abort_undefer_direct T
system__standard_library__adafinal T
system__standard_library__constraint_error_name R 17
+system__standard_library_E D 2
system__standard_library__exception_dataIP T
system__standard_library__exception_trace D 1
system__standard_library__exception_trace_kindN R 8
@@ -835,13 +909,11 @@ system__standard_library__storage_error_name R 16
system__standard_library__tasking_error_name R 16
system__storage_elements_E D 2
system__storage_elements__storage_arrayIP T
-system__storage_pools_E D 2
-system__storage_pools__Troot_storage_poolCFD T
-system__storage_pools___elabs T
-system__storage_pools___master B 4
-system__storage_pools___size__2 T
system__storage_pools__allocate_any T
system__storage_pools__deallocate_any T
+system__storage_pools_E D 2
+system__storage_pools___elabs T
+system__storage_pools___master B 4
system__storage_pools__root_storage_poolB20s D 96
system__storage_pools__root_storage_poolDF__2 T
system__storage_pools__root_storage_poolE16s R 39
@@ -853,8 +925,10 @@ system__storage_pools__root_storage_poolR18s D 8
system__storage_pools__root_storage_poolR18s___UNC D 80
system__storage_pools__root_storage_poolT D 80
system__storage_pools__root_storage_poolY D 8
-system__stream_attributes_E D 2
+system__storage_pools___size__2 T
+system__storage_pools__Troot_storage_poolCFD T
system__stream_attributes__block_io_ok T
+system__stream_attributes_E D 2
system__stream_attributes__err D 8
system__stream_attributes__fat_pointerIP T
system__stream_attributes__i_ad T
@@ -918,8 +992,8 @@ system__val_llu_E D 2
system__val_llu__scan_long_long_unsigned T
system__val_llu__scan_raw_long_long_unsigned T
system__val_llu__value_long_long_unsigned T
-system__val_util_E D 2
system__val_util__bad_value T
+system__val_util_E D 2
system__val_util__normalize_string T
system__val_util__scan_exponent T
system__val_util__scan_plus_sign T
@@ -929,17 +1003,17 @@ system__val_util__scan_underscore T
system__wch_cnv_E D 2
system__wch_cnv__utf_32_stringIP T
system__wch_con_E D 2
-system__wch_con__get_wc_encoding_method T
system__wch_con__get_wc_encoding_method__2 T
+system__wch_con__get_wc_encoding_method T
system__wch_con__is_start_of_encoding T
-system__wch_con__wc_encoding_letters R 8
-system__wch_con__wc_longest_sequences R 24
system__wch_con__wcem_brackets R 1
system__wch_con__wcem_euc R 1
system__wch_con__wcem_hex R 1
system__wch_con__wcem_shift_jis R 1
system__wch_con__wcem_upper R 1
system__wch_con__wcem_utf8 R 1
+system__wch_con__wc_encoding_letters R 8
+system__wch_con__wc_longest_sequences R 24
system__wch_jis_E D 2
system__wch_jis__euc_to_jis T
system__wch_jis__jis_to_euc T
diff --git a/lib/symbols/libsparkcryptofat b/lib/symbols/libsparkcryptofat
new file mode 100644
index 0000000..4c49ab8
--- /dev/null
+++ b/lib/symbols/libsparkcryptofat
@@ -0,0 +1,326 @@
+lsc__aes__cbc__decrypt T
+lsc__aes__cbc_E D 2
+lsc__aes__cbc__encrypt T
+lsc__aes__dec_key T
+lsc__aes__decrypt T
+lsc__aes_E D 2
+lsc__aes__enc_key T
+lsc__aes__encrypt T
+lsc__aes_generic__cbc_E D 2
+lsc__aes_generic__dec_key_typeIP T
+lsc__aes_generic_E D 2
+lsc__aes_generic__enc_key_typeIP T
+lsc__aes_generic__key_bytes T
+lsc__aes_generic__keylen_typeN R 4
+lsc__aes_generic__keylen_typeS R 16
+lsc__aes__l128 R 1
+lsc__aes__l192 R 1
+lsc__aes__l256 R 1
+lsc_E D 2
+lsc__internal__aes__aes_dec_contextIP T
+lsc__internal__aes__aes_enc_contextIP T
+lsc__internal__aes__cbc__decrypt T
+lsc__internal__aes__cbc_E D 2
+lsc__internal__aes__cbc__encrypt T
+lsc__internal__aes__create_aes128_dec_context T
+lsc__internal__aes__create_aes128_enc_context T
+lsc__internal__aes__create_aes192_dec_context T
+lsc__internal__aes__create_aes192_enc_context T
+lsc__internal__aes__create_aes256_dec_context T
+lsc__internal__aes__create_aes256_enc_context T
+lsc__internal__aes__decrypt T
+lsc__internal__aes_E D 2
+lsc__internal__aes__encrypt T
+lsc__internal__aes__key_typeIP T
+lsc__internal__aes__message_typeIP T
+lsc__internal__aes__nb R 1
+lsc__internal__aes__null_aes128_key R 16
+lsc__internal__aes__null_aes192_key R 24
+lsc__internal__aes__null_aes256_key R 32
+lsc__internal__aes__null_block R 16
+lsc__internal__aes__null_schedule R 240
+lsc__internal__aes__print_E D 2
+lsc__internal__aes__tables_E D 2
+lsc__internal__aes__tables__rcon R 120
+lsc__internal__aes__tables__si R 256
+lsc__internal__aes__tables__s R 256
+lsc__internal__aes__tables__t1 R 1024
+lsc__internal__aes__tables__t2 R 1024
+lsc__internal__aes__tables__t3 R 1024
+lsc__internal__aes__tables__t4 R 1024
+lsc__internal__aes__tables__t5 R 1024
+lsc__internal__aes__tables__t6 R 1024
+lsc__internal__aes__tables__t7 R 1024
+lsc__internal__aes__tables__t8 R 1024
+lsc__internal__aes__tables__Trcon_typeBIP T
+lsc__internal__aes__tables__Tsbox_typeBIP T
+lsc__internal__aes__tables__Ttable_typeBIP T
+lsc__internal__aes__tables__u1 R 1024
+lsc__internal__aes__tables__u2 R 1024
+lsc__internal__aes__tables__u3 R 1024
+lsc__internal__aes__tables__u4 R 1024
+lsc__internal__bignum__add_inplace T
+lsc__internal__bignum__add T
+lsc__internal__bignum__big_intIP T
+lsc__internal__bignum__copy T
+lsc__internal__bignum__double_inplace T
+lsc__internal__bignum_E D 2
+lsc__internal__bignum__equal T
+lsc__internal__bignum__initialize T
+lsc__internal__bignum__is_zero T
+lsc__internal__bignum__less T
+lsc__internal__bignum__mod_add_inplace T
+lsc__internal__bignum__mod_add T
+lsc__internal__bignum__mod_sub_inplace T
+lsc__internal__bignum__mod_sub T
+lsc__internal__bignum__mont_exp T
+lsc__internal__bignum__mont_exp_window T
+lsc__internal__bignum__mont_mult T
+lsc__internal__bignum__native_to_be T
+lsc__internal__bignum__shr_inplace T
+lsc__internal__bignum__size_square_mod T
+lsc__internal__bignum__sub_inplace T
+lsc__internal__bignum__sub T
+lsc__internal__bignum__word_inverse T
+lsc__internal__byteorder32__be_to_native T
+lsc__internal__byteorder32_E D 2
+lsc__internal__byteorder32__le_to_native T
+lsc__internal__byteorder32__native_to_be T
+lsc__internal__byteorder32__native_to_le T
+lsc__internal__byteorder64__be_to_native T
+lsc__internal__byteorder64_E D 2
+lsc__internal__byteorder64__le_to_native T
+lsc__internal__byteorder64__native_to_be T
+lsc__internal__byteorder64__native_to_le T
+lsc__internal__byteswap32_E D 2
+lsc__internal__byteswap32__swap T
+lsc__internal__byteswap64_E D 2
+lsc__internal__byteswap64__swap T
+lsc__internal__convert_E D 2
+lsc__internal__convert_hash_E D 2
+lsc__internal__convert_hmac_E D 2
+lsc__internal__debug_E D 2
+lsc__internal__ec__A3s B 80
+lsc__internal__ec_E D 2
+lsc__internal__ec___elabs T
+lsc__internal__ec__invert T
+lsc__internal__ec__J4s D 4
+lsc__internal__ec__make_affine T
+lsc__internal__ec__on_curve T
+lsc__internal__ec__one B 80
+lsc__internal__ec__point_add T
+lsc__internal__ec__point_double T
+lsc__internal__ec__point_mult T
+lsc__internal__ec_signature_E D 2
+lsc__internal__ec_signature__signature_typeN R 4
+lsc__internal__ec_signature__signature_typeS R 16
+lsc__internal__ec_signature__sign T
+lsc__internal__ec_signature__verify T
+lsc__internal__ec__two_point_mult T
+lsc__internal__ec__uncompress_point T
+lsc__internal_E D 2
+lsc__internal__hmac_ripemd160__authenticate T
+lsc__internal__hmac_ripemd160__context_finalize_outer T
+lsc__internal__hmac_ripemd160__context_finalize T
+lsc__internal__hmac_ripemd160__context_init T
+lsc__internal__hmac_ripemd160__context_typeIP T
+lsc__internal__hmac_ripemd160__context_update T
+lsc__internal__hmac_ripemd160_E D 2
+lsc__internal__hmac_ripemd160__get_auth T
+lsc__internal__hmac_ripemd160__ipad R 64
+lsc__internal__hmac_ripemd160__opad R 64
+lsc__internal__hmac_sha1__authenticate T
+lsc__internal__hmac_sha1__context_finalize_outer T
+lsc__internal__hmac_sha1__context_finalize T
+lsc__internal__hmac_sha1__context_init T
+lsc__internal__hmac_sha1__context_typeIP T
+lsc__internal__hmac_sha1__context_update T
+lsc__internal__hmac_sha1_E D 2
+lsc__internal__hmac_sha1__get_auth T
+lsc__internal__hmac_sha1__ipad R 64
+lsc__internal__hmac_sha1__opad R 64
+lsc__internal__hmac_sha256__authenticate T
+lsc__internal__hmac_sha256__context_finalize T
+lsc__internal__hmac_sha256__context_init T
+lsc__internal__hmac_sha256__context_typeIP T
+lsc__internal__hmac_sha256__context_update T
+lsc__internal__hmac_sha256_E D 2
+lsc__internal__hmac_sha256__get_auth T
+lsc__internal__hmac_sha256__get_prf T
+lsc__internal__hmac_sha256__pseudorandom T
+lsc__internal__hmac_sha384__authenticate T
+lsc__internal__hmac_sha384__context_finalize T
+lsc__internal__hmac_sha384__context_init T
+lsc__internal__hmac_sha384__context_typeIP T
+lsc__internal__hmac_sha384__context_update T
+lsc__internal__hmac_sha384_E D 2
+lsc__internal__hmac_sha384__get_auth T
+lsc__internal__hmac_sha384__get_prf T
+lsc__internal__hmac_sha384__null_auth R 24
+lsc__internal__hmac_sha384__pseudorandom T
+lsc__internal__hmac_sha512__authenticate T
+lsc__internal__hmac_sha512__context_finalize T
+lsc__internal__hmac_sha512__context_init T
+lsc__internal__hmac_sha512__context_typeIP T
+lsc__internal__hmac_sha512__context_update T
+lsc__internal__hmac_sha512_E D 2
+lsc__internal__hmac_sha512__get_auth T
+lsc__internal__hmac_sha512__get_prf T
+lsc__internal__hmac_sha512__null_auth R 32
+lsc__internal__hmac_sha512__pseudorandom T
+lsc__internal__io_E D 2
+lsc__internal__io__end_of_stream T
+lsc__internal__io__new_line T
+lsc__internal__io__print_byte T
+lsc__internal__io__print_index T
+lsc__internal__io__print_natural T
+lsc__internal__io__print_word32_array T
+lsc__internal__io__print_word32 T
+lsc__internal__io__print_word64_array T
+lsc__internal__io__print_word64 T
+lsc__internal__io__put_line T
+lsc__internal__io__put T
+lsc__internal__io__read_byte T
+lsc__internal__math_int_E D 2
+lsc__internal__ops32__block_copy T
+lsc__internal__ops32__block_xor T
+lsc__internal__ops32__byte0 T
+lsc__internal__ops32__byte1 T
+lsc__internal__ops32__byte2 T
+lsc__internal__ops32__byte3 T
+lsc__internal__ops32__bytes_to_word T
+lsc__internal__ops32__bytex T
+lsc__internal__ops32_E D 2
+lsc__internal__ops32__xor2 T
+lsc__internal__ops32__xor3 T
+lsc__internal__ops32__xor4 T
+lsc__internal__ops32__xor5 T
+lsc__internal__ops64__block_copy T
+lsc__internal__ops64__block_xor T
+lsc__internal__ops64__bytes_to_word T
+lsc__internal__ops64_E D 2
+lsc__internal__ops64__xor2 T
+lsc__internal__pad32__block_terminate T
+lsc__internal__pad32_E D 2
+lsc__internal__pad64__block_terminate T
+lsc__internal__pad64_E D 2
+lsc__internal__ripemd160__context_finalize T
+lsc__internal__ripemd160__context_init T
+lsc__internal__ripemd160__context_typeIP T
+lsc__internal__ripemd160__context_update T
+lsc__internal__ripemd160__data_lengthIP T
+lsc__internal__ripemd160_E D 2
+lsc__internal__ripemd160__get_hash T
+lsc__internal__ripemd160__hash_context T
+lsc__internal__ripemd160__hash T
+lsc__internal__ripemd160__message_typeIP T
+lsc__internal__ripemd160__null_block R 64
+lsc__internal__ripemd160__null_hash R 20
+lsc__internal__ripemd160__print_E D 2
+lsc__internal__sha1__add T
+lsc__internal__sha1__ch T
+lsc__internal__sha1__context_finalize T
+lsc__internal__sha1__context_init T
+lsc__internal__sha1__context_typeIP T
+lsc__internal__sha1__context_update T
+lsc__internal__sha1__data_lengthIP T
+lsc__internal__sha1_E D 2
+lsc__internal__sha1__get_hash T
+lsc__internal__sha1__hash_context T
+lsc__internal__sha1__hash T
+lsc__internal__sha1__init_data_length T
+lsc__internal__sha1__k1 R 4
+lsc__internal__sha1__k2 R 4
+lsc__internal__sha1__k3 R 4
+lsc__internal__sha1__k4 R 4
+lsc__internal__sha1__maj T
+lsc__internal__sha1__message_typeIP T
+lsc__internal__sha1__null_block R 64
+lsc__internal__sha1__null_hash R 20
+lsc__internal__sha1__null_schedule R 320
+lsc__internal__sha256__add T
+lsc__internal__sha256__cap_sigma_0_256 T
+lsc__internal__sha256__cap_sigma_1_256 T
+lsc__internal__sha256__ch T
+lsc__internal__sha256__context_finalize T
+lsc__internal__sha256__context_typeIP T
+lsc__internal__sha256__context_update_internal T
+lsc__internal__sha256__context_update T
+lsc__internal__sha256__data_lengthIP T
+lsc__internal__sha256_E D 2
+lsc__internal__sha256__hash_context T
+lsc__internal__sha256__hash T
+lsc__internal__sha256__init_data_length T
+lsc__internal__sha256__maj T
+lsc__internal__sha256__message_typeIP T
+lsc__internal__sha256__null_block R 64
+lsc__internal__sha256__null_schedule R 256
+lsc__internal__sha256__sha256_context_init T
+lsc__internal__sha256__sha256_get_hash T
+lsc__internal__sha256__sha256_null_hash R 32
+lsc__internal__sha256__sigma_0_256 T
+lsc__internal__sha256__sigma_1_256 T
+lsc__internal__sha256__tables_E D 2
+lsc__internal__sha256__tables__k R 256
+lsc__internal__sha512__add T
+lsc__internal__sha512__cap_sigma_0_512 T
+lsc__internal__sha512__cap_sigma_1_512 T
+lsc__internal__sha512__ch T
+lsc__internal__sha512__context_finalize T
+lsc__internal__sha512__context_typeIP T
+lsc__internal__sha512__context_update_internal T
+lsc__internal__sha512__context_update T
+lsc__internal__sha512__data_lengthIP T
+lsc__internal__sha512_E D 2
+lsc__internal__sha512__hash_context T
+lsc__internal__sha512__init_data_length T
+lsc__internal__sha512__maj T
+lsc__internal__sha512__message_typeIP T
+lsc__internal__sha512__null_block R 128
+lsc__internal__sha512__null_schedule R 640
+lsc__internal__sha512__null_sha384_hash R 48
+lsc__internal__sha512__null_sha512_hash R 64
+lsc__internal__sha512__sha384_context_init T
+lsc__internal__sha512__sha384_get_hash T
+lsc__internal__sha512__sha384_hash T
+lsc__internal__sha512__sha512_context_init T
+lsc__internal__sha512__sha512_get_hash T
+lsc__internal__sha512__sha512_hash T
+lsc__internal__sha512__sigma_0_512 T
+lsc__internal__sha512__sigma_1_512 T
+lsc__internal__sha512__tables_E D 2
+lsc__internal__sha512__tables__k R 640
+lsc__internal__types__byte_array32_to_word32 T
+lsc__internal__types__byte_array64_to_word64 T
+lsc__internal__types_E D 2
+lsc__internal__types__Tbyte_array32_typeBIP T
+lsc__internal__types__Tbyte_array64_typeBIP T
+lsc__internal__types__word32_array_typeIP T
+lsc__internal__types__word32_to_byte_array32 T
+lsc__internal__types__word64_array_typeIP T
+lsc__internal__types__word64_to_byte_array64 T
+lsc__ops_generic_E D 2
+lsc__ripemd160_E D 2
+lsc__ripemd160_generic_E D 2
+lsc__ripemd160__hash T
+lsc__ripemd160__hmac_E D 2
+lsc__ripemd160__hmac_generic_E D 2
+lsc__ripemd160__hmac__hmac T
+lsc__sha1_E D 2
+lsc__sha1_generic_E D 2
+lsc__sha1__hash T
+lsc__sha1__hmac_E D 2
+lsc__sha1__hmac_generic_E D 2
+lsc__sha1__hmac__hmac T
+lsc__sha2_E D 2
+lsc__sha2_generic_E D 2
+lsc__sha2__hash_sha256 T
+lsc__sha2__hash_sha384 T
+lsc__sha2__hash_sha512 T
+lsc__sha2__hmac_E D 2
+lsc__sha2__hmac_generic_E D 2
+lsc__sha2__hmac__hmac_sha256 T
+lsc__sha2__hmac__hmac_sha384 T
+lsc__sha2__hmac__hmac_sha512 T
+lsc__types__bytesIP T
+lsc__types_E D 2
diff --git a/run/test-libsparkcrypto.run b/run/test-libsparkcrypto.run
new file mode 100644
index 0000000..9ecdf34
--- /dev/null
+++ b/run/test-libsparkcrypto.run
@@ -0,0 +1,72 @@
+set build_components {
+ core init server/log_terminal
+ test/libsparkcrypto
+ lib/vfs/jitterentropy
+ drivers/rtc
+ timer
+}
+
+build $build_components
+create_boot_directory
+
+install_config {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
+
+build_boot_image {
+ core init test-libsparkcrypto log_terminal rtc_drv timer
+ libc.lib.so vfs.lib.so ld.lib.so ada.lib.so
+ libcrypto.lib.so libaunit.lib.so libsparkcryptofat.lib.so
+ vfs_jitterentropy.lib.so
+}
+
+append qemu_args " -nographic "
+
+run_genode_until "child \"test-libsparkcrypto\" exited with exit value 0" 200
diff --git a/src/test/libsparkcrypto/lsc_internal_benchmark.adb b/src/test/libsparkcrypto/lsc_internal_benchmark.adb
new file mode 100644
index 0000000..93073cb
--- /dev/null
+++ b/src/test/libsparkcrypto/lsc_internal_benchmark.adb
@@ -0,0 +1,64 @@
+-------------------------------------------------------------------------------
+-- This file is part of libsparkcrypto.
+--
+-- Copyright (C) 2019, Componolit GmbH
+-- All rights reserved.
+--
+-- Redistribution and use in source and binary forms, with or without
+-- modification, are permitted provided that the following conditions are met:
+--
+-- * Redistributions of source code must retain the above copyright notice,
+-- this list of conditions and the following disclaimer.
+--
+-- * Redistributions in binary form must reproduce the above copyright
+-- notice, this list of conditions and the following disclaimer in the
+-- documentation and/or other materials provided with the distribution.
+--
+-- * Neither the name of the nor the names of its contributors may be used
+-- to endorse or promote products derived from this software without
+-- specific prior written permission.
+--
+-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+-- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
+-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+-- POSSIBILITY OF SUCH DAMAGE.
+-------------------------------------------------------------------------------
+
+pragma Style_Checks ("-s");
+
+pragma Warnings (Off, "formal parameter ""T"" is not referenced");
+
+package body LSC_Internal_Benchmark
+is
+ function Routine_Name (T : Test_Case) return Message_String
+ is
+ begin
+ return Format ("Void");
+ end Routine_Name;
+
+ ---------------------------------------------------------------------------
+
+ procedure Register_Tests (T : in out Test_Case) is
+ package Registration is new
+ AUnit.Test_Cases.Specific_Test_Case_Registration (Test_Case);
+ use Registration;
+ begin
+ null;
+ end Register_Tests;
+
+ ---------------------------------------------------------------------------
+
+ function Name (T : Test_Case) return Test_String is
+ begin
+ pragma Unreferenced (T);
+ return Format ("Benchmark dummy");
+ end Name;
+
+end LSC_Internal_Benchmark;
diff --git a/src/test/libsparkcrypto/startup.cc b/src/test/libsparkcrypto/startup.cc
new file mode 100644
index 0000000..a779e89
--- /dev/null
+++ b/src/test/libsparkcrypto/startup.cc
@@ -0,0 +1,14 @@
+/*
+ * \brief Startup code for Ada main program
+ * \author Alexander Senier
+ * \date 2019-01-03
+ */
+
+#include
+
+extern "C" void _ada_main(void);
+
+void Ada::Component::main()
+{
+ _ada_main();
+}
diff --git a/src/test/libsparkcrypto/target.mk b/src/test/libsparkcrypto/target.mk
new file mode 100644
index 0000000..2999898
--- /dev/null
+++ b/src/test/libsparkcrypto/target.mk
@@ -0,0 +1,44 @@
+TARGET = test-libsparkcrypto
+
+SRC_ADB = \
+ lsc_internal_benchmark.adb \
+ lsc_internal_suite.adb \
+ lsc_internal_test_aes.adb \
+ lsc_internal_test_aes_cbc.adb \
+ lsc_internal_test_bignum.adb \
+ lsc_internal_test_ec.adb \
+ lsc_internal_test_hmac.adb \
+ lsc_internal_test_ripemd160.adb \
+ lsc_internal_test_sha1.adb \
+ lsc_internal_test_sha2.adb \
+ lsc_internal_test_shadow.adb \
+ lsc_suite.adb \
+ lsc_test_aes.adb \
+ lsc_test_aes_cbc.adb \
+ lsc_test_hmac_ripemd160.adb \
+ lsc_test_hmac_sha1.adb \
+ lsc_test_hmac_sha2.adb \
+ lsc_test_ripemd160.adb \
+ lsc_test_sha1.adb \
+ lsc_test_sha2.adb \
+ main.adb \
+ openssl.adb \
+ tests.adb \
+ util.adb \
+ util_tests.adb
+
+SRC_CC = startup.cc
+SRC_C = libglue.c
+OPT_C = -DDEBUG
+
+LIBS = ada libaunit libsparkcryptofat libcrypto libc
+
+LSC_TESTS_DIR := $(call select_from_ports,libsparkcrypto)/libsparkcrypto/tests
+
+INC_DIR += $(LSC_TESTS_DIR)
+CUSTOM_ADA_OPT += -gnatec=$(call select_from_ports,libsparkcrypto)/libsparkcrypto/build/pragmas.adc
+
+vpath lsc_internal_benchmark.adb $(PRG_DIR)
+vpath %.adb $(LSC_TESTS_DIR)
+vpath %.ads $(LSC_TESTS_DIR)
+vpath %.c $(LSC_TESTS_DIR)