From b548df5204cc1010cbde287a0b2140b508967d72 Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Wed, 30 Sep 2026 21:54:12 -0500 Subject: [PATCH] Feature: Print the time stamp, if possible, when the operation fails or is cancelled. Provide additional useful information, such as time stamp. There is currently no **FLL** wrapper for `strftime()`. This does require bringing in a new dependency `f_time`. This is all optional via the `_en_print_time_on_cancel_` and `_en_print_time_on_failure_` defines. The modes `time` and `individual_time` are used to enable this. The `time` mode is added by default. The `f_time` is not a dependency if `time` or `individual_time` modes are not used. Update the boot strap script to pass `time` and `individual_time` accordingly to just `fake`. --- build/scripts/bootstrap-example.sh | 43 +++++++++++++++++++++++++-- build/stand_alone/fake.config.h | 18 +++++++++-- build/stand_alone/fake.fakefile | 2 +- build/stand_alone/fake.settings | 7 +++-- level_3/fake/c/main/fake.h | 1 + level_3/fake/c/main/print/error.c | 33 +++++++++++++++++++- level_3/fake/c/main/print/operation.c | 33 +++++++++++++++++++- level_3/fake/data/build/defines | 3 ++ level_3/fake/data/build/dependencies | 1 + level_3/fake/data/build/fakefile | 2 +- level_3/fake/data/build/settings | 13 +++++--- 11 files changed, 141 insertions(+), 15 deletions(-) diff --git a/build/scripts/bootstrap-example.sh b/build/scripts/bootstrap-example.sh index 83f76a78a..162652567 100644 --- a/build/scripts/bootstrap-example.sh +++ b/build/scripts/bootstrap-example.sh @@ -82,6 +82,10 @@ main() { local build_mode_extra_value_1= local build_mode_extra_param_2= local build_mode_extra_value_2= + local build_mode_extra_param_3= + local build_mode_extra_value_3= + local build_mode_extra_param_4= + local build_mode_extra_value_4= local shell_command=bash local exclude_programs= local fake_programs="fss_read fss_write iki_read iki_write status_code" @@ -265,6 +269,10 @@ boostrap_process() { build_mode_extra_value_1= build_mode_extra_param_2= build_mode_extra_value_2= + build_mode_extra_param_3= + build_mode_extra_value_3= + build_mode_extra_param_4= + build_mode_extra_value_4= if [[ ${1} == "${mode_part}-individual" ]] ; then build_mode="individual" @@ -293,13 +301,23 @@ boostrap_process() { build_mode_extra_value_1=${mode_thread_value} fi + if [[ ${mode_part} == "fake" ]] ; then + build_mode_extra_param_3="-m" + build_mode_extra_value_3="time" + + if [[ ${build_mode} == "individual" ]] ; then + build_mode_extra_param_4="-m" + build_mode_extra_value_4="individual_time" + fi + fi + ${shell_command} build/scripts/package.sh ${verbose} ${color} rebuild ${mode_parameter} ${mode_value} && cd package/${mode_path}/${mode_part}-${version}/ && ${shell_command} ./bootstrap.sh clean ${verbose} ${color} && - ${shell_command} ./bootstrap.sh build ${verbose} ${color} ${shared} ${static} -w ${path_work} -m ${build_mode} ${mode_debug_param} ${mode_debug_value} ${build_mode_extra_param_1} ${build_mode_extra_value_1} ${build_mode_extra_param_2} ${build_mode_extra_value_2} ${mode_custom_param} ${mode_custom_value} ${mode_compiler_param} ${mode_compiler_value} && + ${shell_command} ./bootstrap.sh build ${verbose} ${color} ${shared} ${static} -w ${path_work} -m ${build_mode} ${mode_debug_param} ${mode_debug_value} ${build_mode_extra_param_1} ${build_mode_extra_value_1} ${build_mode_extra_param_2} ${build_mode_extra_value_2} ${build_mode_extra_param_3} ${build_mode_extra_value_3} ${build_mode_extra_param_4} ${build_mode_extra_value_4} ${mode_custom_param} ${mode_custom_value} ${mode_compiler_param} ${mode_compiler_value} && ${shell_command} ./install.sh ${verbose} ${color} ${shared} ${static} -w ${path_work} @@ -311,6 +329,10 @@ boostrap_process() { build_mode_extra_value_1= build_mode_extra_param_2= build_mode_extra_value_2= + build_mode_extra_param_3= + build_mode_extra_value_3= + build_mode_extra_param_4= + build_mode_extra_value_4= if [[ ${1} == "programs-individual" ]] ; then build_mode="individual" @@ -357,11 +379,26 @@ boostrap_process() { continue fi + if [[ ${i} == "fake-${version}" ]] ; then + build_mode_extra_param_3="-m" + build_mode_extra_value_3="time" + + if [[ ${build_mode} == "individual" ]] ; then + build_mode_extra_param_4="-m" + build_mode_extra_value_4="individual_time" + fi + else + build_mode_extra_param_3= + build_mode_extra_value_3= + build_mode_extra_param_4= + build_mode_extra_value_4= + fi + cd ${path_original}package/program/${i} && ${shell_command} ./bootstrap.sh clean ${verbose} ${color} && - ${shell_command} ./bootstrap.sh build ${verbose} ${color} ${shared} ${static} -w ${path_work} -m ${build_mode} ${mode_debug_param} ${mode_debug_value} ${build_mode_extra_param_1} ${build_mode_extra_value_1} ${build_mode_extra_param_2} ${build_mode_extra_value_2} ${mode_custom_param} ${mode_custom_value} ${mode_compiler_param} ${mode_compiler_value} && + ${shell_command} ./bootstrap.sh build ${verbose} ${color} ${shared} ${static} -w ${path_work} -m ${build_mode} ${mode_debug_param} ${mode_debug_value} ${build_mode_extra_param_1} ${build_mode_extra_value_1} ${build_mode_extra_param_2} ${build_mode_extra_value_2} ${build_mode_extra_param_3} ${build_mode_extra_value_3} ${build_mode_extra_param_4} ${build_mode_extra_value_4} ${mode_custom_param} ${mode_custom_value} ${mode_compiler_param} ${mode_compiler_value} && ${shell_command} ./install.sh ${verbose} ${color} ${shared} ${static} -w ${path_work} @@ -372,7 +409,7 @@ boostrap_process() { if [[ ${i} == "${j}-${version}" ]] ; then cd ${path_original}package/program/${i} && - fake clean make ${verbose} ${color} ${shared} ${static} -w ${path_work} -m ${build_mode} ${mode_debug_param} ${mode_debug_value} ${build_mode_extra_param_1} ${build_mode_extra_value_1} ${build_mode_extra_param_2} ${build_mode_extra_value_2} ${mode_custom_param} ${mode_custom_value} ${mode_compiler_param} ${mode_compiler_value} && + fake clean make ${verbose} ${color} ${shared} ${static} -w ${path_work} -m ${build_mode} ${mode_debug_param} ${mode_debug_value} ${build_mode_extra_param_1} ${build_mode_extra_value_1} ${build_mode_extra_param_2} ${build_mode_extra_value_2} ${build_mode_extra_param_3} ${build_mode_extra_value_3} ${build_mode_extra_param_4} ${build_mode_extra_value_4} ${mode_custom_param} ${mode_custom_value} ${mode_compiler_param} ${mode_compiler_value} && ${shell_command} ./install.sh ${verbose} ${color} ${shared} ${static} -w ${path_work} diff --git a/build/stand_alone/fake.config.h b/build/stand_alone/fake.config.h index 7ea22f192..f7929b22f 100644 --- a/build/stand_alone/fake.config.h +++ b/build/stand_alone/fake.config.h @@ -8,7 +8,7 @@ // // Example: // echo > /tmp/all.txt -// for i in f_type f_status f_memory f_type_array f_string f_utf f_abstruse f_account f_capability f_color f_compare f_console f_control_group f_conversion f_directory f_environment f_execute f_file f_fss f_iki f_limit f_network f_parse f_path f_pipe f_print f_rip f_serialize f_signal f_thread ; do grep -horP '\b_di_f_\w*\b' level_0/$i/c >> /tmp/all.txt ; grep -horP '\b_di_macro_\w*\b' level_0/$i/c >> /tmp/all.txt ; done +// for i in f_type f_status f_memory f_type_array f_string f_utf f_abstruse f_account f_capability f_color f_compare f_console f_control_group f_conversion f_directory f_environment f_execute f_file f_fss f_iki f_limit f_network f_parse f_path f_pipe f_print f_rip f_serialize f_signal f_time f_thread ; do grep -horP '\b_di_f_\w*\b' level_0/$i/c >> /tmp/all.txt ; grep -horP '\b_di_macro_\w*\b' level_0/$i/c >> /tmp/all.txt ; done // for i in fl_control_group fl_conversion fl_directory fl_environment fl_execute fl_fss fl_iki fl_path fl_print ; do grep -horP '\b_di_fl_\w*\b' level_1/$i/c >> /tmp/all.txt ; grep -horP '\b_di_macro_\w*\b' level_1/$i/c >> /tmp/all.txt ; done // for i in fll_error fll_execute fll_file fll_fss fll_print fll_program ; do grep -horP '\b_di_fll_\w*\b' level_2/$i/c >> /tmp/all.txt ; grep -horP '\b_di_macro_\w*\b' level_2/$i/c >> /tmp/all.txt ; done // sort /tmp/all.txt | uniq | sed -e 's|^_|#define &|g' > /tmp/sorted.txt @@ -1718,14 +1718,28 @@ #define _di_f_thread_spinss_destroy_callback_ #define _di_f_thread_spinss_t_ #define _di_f_thread_unlock_ -#define _di_f_time_part_t_ +#define _di_f_time_calendar_string_ +#define _di_f_time_calendar_string_part_ +#define _di_f_time_clock_get_ +#define _di_f_time_clock_precision_ +#define _di_f_time_clock_set_ +#define _di_f_time_d_ +//#define _di_f_time_epoch_get_ +//#define _di_f_time_local_get_ +#define _di_f_time_of_day_get_ +#define _di_f_time_of_day_set_ +//#define _di_f_time_part_t_ #define _di_f_time_simple_t_ #define _di_f_time_simples_t_ #define _di_f_time_simpless_delete_callback_ #define _di_f_time_simpless_destroy_callback_ #define _di_f_time_simpless_t_ +#define _di_f_time_sleep_spec_ +#define _di_f_time_spec_millisecond_ +#define _di_f_time_spec_nanosecond_ #define _di_f_time_spec_t_ #define _di_f_time_t_ +#define _di_f_time_utc_get_ #define _di_f_time_value_t_ //#define _di_f_type_d_ //#define _di_f_type_file_defaults_d_ diff --git a/build/stand_alone/fake.fakefile b/build/stand_alone/fake.fakefile index 82e36edb8..df64033a9 100644 --- a/build/stand_alone/fake.fakefile +++ b/build/stand_alone/fake.fakefile @@ -2,7 +2,7 @@ settings: fail exit - modes android clang coverage debug fanalyzer flex_arrays gcc pinephone test thread threadless + modes android clang coverage debug fanalyzer flex_arrays gcc pinephone test thread threadless time environment PATH LD_LIBRARY_PATH environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH diff --git a/build/stand_alone/fake.settings b/build/stand_alone/fake.settings index 0b340e135..7a96f19da 100644 --- a/build/stand_alone/fake.settings +++ b/build/stand_alone/fake.settings @@ -15,6 +15,7 @@ # - test: Compile for a test, such as unit testing. # - thread: Compile with thread support. # - threadless: Compile without thread support. +# - time: Support printing time on some cancellations and failures. # build_name fake @@ -26,8 +27,8 @@ version_micro 2 version_file micro version_target minor -modes android clang coverage debug fanalyzer flex_arrays gcc pinephone test thread threadless -modes_default debug gcc thread +modes android clang coverage debug fanalyzer flex_arrays gcc pinephone test thread threadless time +modes_default debug gcc thread time build_compiler gcc build_compiler-clang clang @@ -65,6 +66,7 @@ build_sources_program fll/level_0/rip.c fll/level_0/rip/utf.c fll/level_0/privat build_sources_program fll/level_0/signal.c build_sources_program fll/level_0/string.c fll/level_0/private-string.c fll/level_0/string/common.c build_sources_program fll/level_0/string/dynamic.c fll/level_0/string/dynamics.c fll/level_0/string/dynamicss.c fll/level_0/string/map.c fll/level_0/string/maps.c fll/level_0/string/mapss.c fll/level_0/string/map_multi.c fll/level_0/string/map_multis.c fll/level_0/string/map_multiss.c fll/level_0/string/static.c fll/level_0/string/statics.c fll/level_0/string/staticss.c fll/level_0/string/triple.c fll/level_0/string/triples.c fll/level_0/string/tripless.c +build_sources_program fll/level_0/time.c build_sources_program fll/level_0/type_array/cell.c fll/level_0/type_array/date.c fll/level_0/type_array/file.c fll/level_0/type_array/fll_id.c fll/level_0/type_array/int8.c fll/level_0/type_array/int16.c fll/level_0/type_array/int32.c fll/level_0/type_array/int64.c fll/level_0/type_array/int128.c fll/level_0/type_array/number_signed.c fll/level_0/type_array/number_unsigned.c fll/level_0/type_array/poll.c fll/level_0/type_array/quantity.c fll/level_0/type_array/quantitys.c fll/level_0/type_array/quantityss.c fll/level_0/type_array/range.c fll/level_0/type_array/ranges.c fll/level_0/type_array/rangess.c fll/level_0/type_array/state.c fll/level_0/type_array/status.c fll/level_0/type_array/time.c fll/level_0/type_array/uint8.c fll/level_0/type_array/uint16.c fll/level_0/type_array/uint32.c fll/level_0/type_array/uint64.c fll/level_0/type_array/uint128.c build_sources_program fll/level_0/utf.c fll/level_0/private-utf.c fll/level_0/private-utf_alphabetic.c fll/level_0/private-utf_combining.c fll/level_0/private-utf_control.c fll/level_0/private-utf_digit.c fll/level_0/private-utf_emoji.c fll/level_0/private-utf_joiner.c fll/level_0/private-utf_numeric.c fll/level_0/private-utf_phonetic.c fll/level_0/private-utf_private.c fll/level_0/private-utf_punctuation.c fll/level_0/private-utf_subscript.c fll/level_0/private-utf_superscript.c fll/level_0/private-utf_symbol.c fll/level_0/private-utf_unassigned.c fll/level_0/private-utf_valid.c fll/level_0/private-utf_whitespace.c fll/level_0/private-utf_wide.c fll/level_0/private-utf_word.c fll/level_0/private-utf_zero_width.c build_sources_program fll/level_0/utf/common.c fll/level_0/utf/convert.c fll/level_0/utf/dynamic.c fll/level_0/utf/dynamics.c fll/level_0/utf/dynamicss.c fll/level_0/utf/is.c fll/level_0/utf/is_character.c fll/level_0/utf/map.c fll/level_0/utf/maps.c fll/level_0/utf/mapss.c fll/level_0/utf/map_multi.c fll/level_0/utf/map_multis.c fll/level_0/utf/map_multiss.c fll/level_0/utf/static.c fll/level_0/utf/statics.c fll/level_0/utf/staticss.c fll/level_0/utf/string.c fll/level_0/utf/triple.c fll/level_0/utf/triples.c fll/level_0/utf/tripless.c @@ -127,6 +129,7 @@ defines-debug -D_en_f_status_debug_ defines-pinephone -D_di_f_thread_mutex_priority_ceiling_get_ -D_di_f_thread_mutex_priority_ceiling_set_ -D_di_f_thread_mutex_attribute_priority_ceiling_get_ -D_di_f_thread_mutex_attribute_priority_ceiling_set_ defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_ defines-threadless -D_di_thread_support_ +defines-time -D_en_print_time_on_cancel_ -D_en_print_time_on_failure_ flags -O2 -pipe -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces -Wno-main flags -fstack-clash-protection -fno-delete-null-pointer-checks diff --git a/level_3/fake/c/main/fake.h b/level_3/fake/c/main/fake.h index fe81d1f98..8277fd61e 100644 --- a/level_3/fake/c/main/fake.h +++ b/level_3/fake/c/main/fake.h @@ -77,6 +77,7 @@ #include #include #include +#include #ifndef _di_thread_support_ #include diff --git a/level_3/fake/c/main/print/error.c b/level_3/fake/c/main/print/error.c index 4bdf09dc3..ee4d32987 100644 --- a/level_3/fake/c/main/print/error.c +++ b/level_3/fake/c/main/print/error.c @@ -277,7 +277,38 @@ extern "C" { f_print_dynamic(fake_other_operation_skeleton_s, print->to); } - fl_print_format("%]%[' failed.%]%r", print->to, print->notable, print->context, print->context, f_string_eol_s); + #ifdef _en_print_time_on_failure_ + time_t time = 0; + + f_status_t status = f_time_epoch_get(&time); + + if (F_status_is_error_not(status)) { + f_time_part_t part = f_time_part_t_initialize; + + status = f_time_local_get(time, &part); + + if (F_status_is_error_not(status)) { + char now_string[100]; + const f_string_static_t now = macro_f_string_static_t_initialize_2(now_string, 100); + + memset(&now_string, 0, now.used); + + strftime(now_string, sizeof(now_string), "%Y-%m-%d %I:%M:%S%P %Z", &part); + + fl_print_format("%]%[' failed at%] ", print->to, print->notable, print->context, print->context); + fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, now, print->notable); + fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); + + status = F_okay; + } + } + + if (F_status_is_error(status)) { + fl_print_format("%]%[' failed.%]%r", print->to, print->notable, print->context, print->context, f_string_eol_s); + } + #else + fl_print_format("%]%[' failed.%]%r", print->to, print->notable, print->context, print->context, f_string_eol_s); + #endif // _en_print_time_on_failure_ f_file_stream_unlock(print->to); diff --git a/level_3/fake/c/main/print/operation.c b/level_3/fake/c/main/print/operation.c index 55cd00941..c8bfd331a 100644 --- a/level_3/fake/c/main/print/operation.c +++ b/level_3/fake/c/main/print/operation.c @@ -44,7 +44,38 @@ extern "C" { f_print_dynamic(fake_other_operation_skeleton_s, print->to); } - fl_print_format("%]%[' is cancelled.%]%r", print->to, print->notable, print->context, print->context, f_string_eol_s); + #ifdef _en_print_time_on_cancel_ + time_t time = 0; + + f_status_t status = f_time_epoch_get(&time); + + if (F_status_is_error_not(status)) { + f_time_part_t part = f_time_part_t_initialize; + + status = f_time_local_get(time, &part); + + if (F_status_is_error_not(status)) { + char now_string[100]; + const f_string_static_t now = macro_f_string_static_t_initialize_2(now_string, 100); + + memset(&now_string, 0, now.used); + + strftime(now_string, sizeof(now_string), "%Y-%m-%d %I:%M:%S%P %Z", &part); + + fl_print_format("%]%[' is cancelled at%] ", print->to, print->notable, print->context, print->context); + fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, now, print->notable); + fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); + + status = F_okay; + } + } + + if (F_status_is_error(status)) { + fl_print_format("%]%[' is cancelled.%]%r", print->to, print->notable, print->context, print->context, f_string_eol_s); + } + #else + fl_print_format("%]%[' is cancelled.%]%r", print->to, print->notable, print->context, print->context, f_string_eol_s); + #endif // _en_print_time_on_cancel_ f_file_stream_flush(print->to); f_file_stream_unlock(print->to); diff --git a/level_3/fake/data/build/defines b/level_3/fake/data/build/defines index 82abf48af..da1c43c72 100644 --- a/level_3/fake/data/build/defines +++ b/level_3/fake/data/build/defines @@ -3,6 +3,9 @@ _di_libcap_ Disable libcap support, allow for compiling and linking without libcap (-lcap). _di_thread_support_ Disables thread support. +_en_print_time_on_cancel_ Enables printing time on some cancellations. +_en_print_time_on_failure_ Enables printing time on some failures. + _libcap_legacy_only_ Disable functionality provided by later versions of libcap (2.43 and later). _pthread_attr_unsupported_ Disable non-portable functionality associated with pthread_attr. diff --git a/level_3/fake/data/build/dependencies b/level_3/fake/data/build/dependencies index bf212aa5a..5bb7412f3 100644 --- a/level_3/fake/data/build/dependencies +++ b/level_3/fake/data/build/dependencies @@ -28,6 +28,7 @@ f_print f_rip f_signal f_thread +f_time fl_control_group fl_conversion diff --git a/level_3/fake/data/build/fakefile b/level_3/fake/data/build/fakefile index c78f2cf57..b3c9457c9 100644 --- a/level_3/fake/data/build/fakefile +++ b/level_3/fake/data/build/fakefile @@ -2,7 +2,7 @@ settings: fail exit - modes android clang coverage debug fanalyzer flex_arrays gcc individual individual_thread level monolithic pinephone test thread threadless + modes android clang coverage debug fanalyzer flex_arrays gcc individual individual_thread individual_time level monolithic pinephone test thread threadless time environment PATH LD_LIBRARY_PATH environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH diff --git a/level_3/fake/data/build/settings b/level_3/fake/data/build/settings index dd3a0ee21..7146918ee 100644 --- a/level_3/fake/data/build/settings +++ b/level_3/fake/data/build/settings @@ -10,12 +10,14 @@ # - gcc: Use GCC specific settings. # - individual: Compile using per project (individual) libraries, does not handle thread or threadless cases. # - individual_thread: This is required when compiling in individual mode with "thread" mode. +# - individual_time: This is required when compiling in individual mode with "time" mode. # - level: Compile using per level libraries. # - monolithic: Compile using per monolithic libraries. # - pinephone: Compile on a pinephone system. # - test: Compile for a test, such as unit testing. # - thread: Compile with thread support. # - threadless: Compile without thread support. +# - time: Support printing time on some cancellations and failures. # build_name fake @@ -29,8 +31,8 @@ version_target minor process_pre process_pre.sh process_post process_post.sh -modes android clang coverage debug fanalyzer flex_arrays gcc individual individual_thread level monolithic pinephone test thread threadless -modes_default debug gcc monolithic thread +modes android clang coverage debug fanalyzer flex_arrays gcc individual individual_thread individual_time level monolithic pinephone test thread threadless time +modes_default debug gcc monolithic thread time build_compiler gcc build_compiler-clang clang @@ -41,7 +43,8 @@ build_language c build_libraries_shared -lc -lcap build_libraries_shared-individual -lfll_error -lfll_execute -lfll_file -lfll_fss -lfll_print -lfll_program build_libraries_shared-individual -lfl_control_group -lfl_conversion -lfl_directory -lfl_environment -lfl_fss -lfl_iki -lfl_path -lfl_print -build_libraries_shared-individual -lf_abstruse -lf_account -lf_capability -lf_color -lf_compare -lf_console -lf_control_group -lf_conversion -lf_directory -lf_environment -lf_execute -lf_file -lf_fss -lf_iki -lf_limit -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries_shared-individual -lf_abstruse -lf_account -lf_capability -lf_color -lf_compare -lf_console -lf_control_group -lf_conversion -lf_directory -lf_environment -lf_execute -lf_file -lf_fss -lf_iki -lf_limit -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries_shared-individual_time -lf_time build_libraries_shared-individual_thread -lf_thread build_libraries_shared-level -lfll_2 -lfll_1 -lfll_0 build_libraries_shared-monolithic -lfll @@ -49,8 +52,9 @@ build_libraries_shared-monolithic -lfll build_libraries_static -l:libc.a -l:libcap.a build_libraries_static-individual -l:libfll_error.a -l:libfll_execute.a -l:libfll_file.a -l:libfll_fss.a -l:libfll_print.a -l:libfll_program.a build_libraries_static-individual -l:libfl_control_group.a -l:libfl_conversion.a -l:libfl_directory.a -l:libfl_environment.a -l:libfl_fss.a -l:libfl_iki.a -l:libfl_path.a -l:libfl_print.a -build_libraries_static-individual -l:libf_abstruse.a -l:libf_account.a -l:libf_capability.a -l:libf_color.a -l:libf_compare.a -l:libf_console.a -l:libf_control_group.a -l:libf_conversion.a -l:libf_directory.a -l:libf_environment.a -l:libf_execute.a -l:libf_file.a -l:libf_fss.a -l:libf_iki.a -l:libf_limit.a -l:libf_memory.a -l:libf_parse.a -l:libf_path.a -l:libf_pipe.a -l:libf_print.a -l:libf_rip.a -l:libf_signal.a -l:libf_status_string.a -l:libf_string.a -l:libf_type_array.a -l:libf_utf.a +build_libraries_static-individual -l:libf_abstruse.a -l:libf_account.a -l:libf_capability.a -l:libf_color.a -l:libf_compare.a -l:libf_console.a -l:libf_control_group.a -l:libf_conversion.a -l:libf_directory.a -l:libf_environment.a -l:libf_execute.a -l:libf_file.a -l:libf_fss.a -l:libf_iki.a -l:libf_limit.a -l:libf_memory.a -l:libf_parse.a -l:libf_path.a -l:libf_pipe.a -l:libf_print.a -l:libf_rip.a -l:libf_signal.a -l:libf_status_string.a -l:libf_string.a -l:libf_type_array.a -l:libf_utf.a build_libraries_static-individual_thread -l:libf_thread.a +build_libraries_static-individual_time -l:libf_time.a build_libraries_static-level -l:libfll_2.a -l:libfll_1.a -l:libfll_0.a build_libraries_static-monolithic -l:libfll.a @@ -85,6 +89,7 @@ defines-debug -D_en_f_status_debug_ defines-pinephone -D_di_f_thread_mutex_priority_ceiling_get_ -D_di_f_thread_mutex_priority_ceiling_set_ -D_di_f_thread_mutex_attribute_priority_ceiling_get_ -D_di_f_thread_mutex_attribute_priority_ceiling_set_ defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_ defines-threadless -D_di_thread_support_ +defines-time -D_en_print_time_on_cancel_ -D_en_print_time_on_failure_ flags -O2 -pipe -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces -Wno-main flags -fstack-clash-protection -fno-delete-null-pointer-checks -- 2.52.0