# - individual_thread: This is required when compiling in individual mode with "thread" mode.
# - level: Compile using per level libraries.
# - monolithic: Compile using per monolithic libraries.
-# - clang: Use clang rather than the default, which is generally gcc.
+# - clang: Use clang rather than the default, which is generally gcc
# - test: Compile for a test, such as unit testing.
# - fanalyzer: Compile using GCC's -fanalyzer compile time option.
+# - coverage: Compile for building coverage.
# - thread: Compile with thread support.
# - threadless: Compile without thread support.
#
version_file micro
version_target minor
-modes individual individual_thread level monolithic clang test fanalyzer thread threadless
+modes individual individual_thread level monolithic clang test fanalyzer coverage thread threadless
modes_default monolithic thread
build_compiler gcc
defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
defines-individual_thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
-flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags -O2 -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses
+flags -fstack-clash-protection -fno-delete-null-pointer-checks -fstrict-flex-arrays=3
+flags -D_FORTIFY_SOURCE=3
+flags -Wl,-z,nodlopen -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now
flags-thread -pthread
flags-clang -Wno-logical-op-parentheses
-flags-test -O0 -fstack-protector -Wall
+flags-test -O0 -fstack-protector-strong -Wall
flags-fanalyzer -fanalyzer
flags-coverage -O0 --coverage -fprofile-abs-path -fprofile-dir=build/coverage/
fl_print_format(f_string_format_Q_single_s.string, print->to, print->set->notable, network, print->set->notable);
fl_print_format("%[' with file '%]", print->to, print->set->error, print->set->error, f_string_eol_s);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->set->notable, name, print->set->notable);
- fl_print_format("%['.%]%r", print->to, print->set->error, print->set->error, f_string_eol_s);
+ fl_print_format(f_string_format_sentence_end_quote_s.string, print->to, print->set->error, print->set->error, f_string_eol_s);
f_file_stream_unlock(print->to);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->set->notable, network, print->set->notable);
fl_print_format("%[' failed to receive data or write to file '%]", print->to, print->set->error, print->set->error, f_string_eol_s);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->set->notable, name, print->set->notable);
- fl_print_format("%['.%]%r", print->to, print->set->error, print->set->error, f_string_eol_s);
+ fl_print_format(f_string_format_sentence_end_quote_s.string, print->to, print->set->error, print->set->error, f_string_eol_s);
f_file_stream_unlock(print->to);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->set->notable, network, print->set->notable);
fl_print_format("%[' failed to send data or read from file '%]", print->to, print->set->error, print->set->error, f_string_eol_s);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->set->notable, name, print->set->notable);
- fl_print_format("%['.%]%r", print->to, print->set->error, print->set->error, f_string_eol_s);
+ fl_print_format(f_string_format_sentence_end_quote_s.string, print->to, print->set->error, print->set->error, f_string_eol_s);
f_file_stream_unlock(print->to);
fl_print_format(f_string_format_Q_range_single_s.string, print->to, print->set->notable, buffer, content, print->set->notable);
fl_print_format("%[' with a status code of %]", print->to, print->set->error, print->set->error, f_string_eol_s);
fl_print_format(f_string_format_ul_single_s.string, print->to, print->set->notable, status, print->set->notable);
- fl_print_format("%[.%]%r", print->to, print->set->error, print->set->error, f_string_eol_s);
+ fl_print_format(f_string_format_sentence_end_s.string, print->to, print->set->error, print->set->error, f_string_eol_s);
f_file_stream_unlock(print->to);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->set->notable, on, print->set->notable);
fl_print_format(" %[buffer for '%]", print->to, print->set->error, print->set->error, f_string_eol_s);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->set->notable, network, print->set->notable);
- fl_print_format("%['.%]%r", print->to, print->set->error, print->set->error, f_string_eol_s);
+ fl_print_format(f_string_format_sentence_end_quote_s.string, print->to, print->set->error, print->set->error, f_string_eol_s);
f_file_stream_unlock(print->to);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->set->notable, set->network, print->set->notable);
fl_print_format("%[' with file '%]", print->to, print->set->error, print->set->error, f_string_eol_s);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->set->notable, set->name, print->set->notable);
- fl_print_format("%['.%]%r", print->to, print->set->error, print->set->error, f_string_eol_s);
+ fl_print_format(f_string_format_sentence_end_quote_s.string, print->to, print->set->error, print->set->error, f_string_eol_s);
f_file_stream_unlock(print->to);
fl_print_format(f_string_format_Q_range_single_s.string, print->to, print->set->notable, address, range, print->set->notable);
fl_print_format(" %[from the address '%]", print->to, print->set->error, print->set->error, f_string_eol_s);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->set->notable, address, print->set->notable);
- fl_print_format("%['.%]%r", print->to, print->set->error, print->set->error, f_string_eol_s);
+ fl_print_format(f_string_format_sentence_end_quote_s.string, print->to, print->set->error, print->set->error, f_string_eol_s);
f_file_stream_unlock(print->to);
fl_print_format("%[%ul%]", print->to, print->set->notable, protocol, print->set->notable);
fl_print_format(" %[while processing '%]", print->to, print->set->error, print->set->error, f_string_eol_s);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->set->notable, name, print->set->notable);
- fl_print_format("%['.%]%r", print->to, print->set->error, print->set->error, f_string_eol_s);
+ fl_print_format(f_string_format_sentence_end_quote_s.string, print->to, print->set->error, print->set->error, f_string_eol_s);
f_file_stream_unlock(print->to);