]> Kevux Git Server - controller/commitdiff
Workaround: The compiler and linker fail to understand that compiling statically...
authorKevin Day <Kevin@kevux.org>
Thu, 8 May 2025 04:52:33 +0000 (23:52 -0500)
committerKevin Day <Kevin@kevux.org>
Thu, 8 May 2025 04:52:33 +0000 (23:52 -0500)
This is a logic or design flaw that is just plain idiotic.
When compiling statically (passing `-static`), there cannot be any shared/dynamic linked data.

Rather than recognizing this, if there is a shared library during a static build then the shared library is linked to.

The compiler and linker, at least, supports explicitly forcing the point that a static library is to be linked.
This is done via `-l:libc.a` for libc linking rather than `-lc`.

This should not be necessary, but it unfortunately is.

data/build/settings
data/build/settings.controller
data/build/settings.init

index 12bd7b19950c56b5a07f6be1b13d611ab28d5d0a..fc94f7b010e1f3affebbf8f344f174211b20fe92 100644 (file)
@@ -33,14 +33,23 @@ build_indexer ar
 build_indexer_arguments rcs
 build_language c
 
-build_libraries -lc -lcap
-build_libraries-individual -lfll_control_group -lfll_error -lfll_execute -lfll_fss -lfll_print -lfll_program
-build_libraries-individual_thread -lf_thread
-build_libraries-individual -lfl_control_group -lfl_conversion -lfl_directory -lfl_environment -lfl_execute -lfl_fss -lfl_iki -lfl_path -lfl_print
-build_libraries-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_socket -lf_string -lf_time -lf_type_array -lf_utf
-build_libraries-individual_thread -lf_thread
-build_libraries-level -lfll_2 -lfll_1 -lfll_0
-build_libraries-monolithic -lfll
+build_libraries_shared -lc -lcap
+build_libraries_shared-individual -lfll_control_group -lfll_error -lfll_execute -lfll_fss -lfll_print -lfll_program
+build_libraries_shared-individual_thread -lf_thread
+build_libraries_shared-individual -lfl_control_group -lfl_conversion -lfl_directory -lfl_environment -lfl_execute -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_socket -lf_string -lf_time -lf_type_array -lf_utf
+build_libraries_shared-individual_thread -lf_thread
+build_libraries_shared-level -lfll_2 -lfll_1 -lfll_0
+build_libraries_shared-monolithic -lfll
+
+build_libraries_static -l:libc.a -l:libcap.a
+build_libraries_static-individual -l:libfll_control_group.a -l:libfll_error.a -l:libfll_execute.a -l:libfll_fss.a -l:libfll_print.a -l:libfll_program.a
+build_libraries_static-individual_thread -l:libf_thread.a
+build_libraries_static-individual -l:libfl_control_group.a -l:libfl_conversion.a -l:libfl_directory.a -l:libfl_environment.a -l:libfl_execute.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_socket.a -l:libf_string.a -l:libf_time.a -l:libf_type_array.a -l:libf_utf.a
+build_libraries_static-individual_thread -l:libf_thread.a
+build_libraries_static-level -l:libfll_2.a -l:libfll_1.a -l:libfll_0.a
+build_libraries_static-monolithic -l:libfll.a
 
 build_sources_library common.c common/define.c common/enumeration.c common/print.c common/string.c common/type.c
 build_sources_library common/type/cache.c common/type/control.c common/type/entry.c common/type/execute.c common/type/instance.c common/type/interrupt.c common/type/lock.c common/type/process.c common/type/rule.c common/type/thread.c
index 46bd75a16036a4b5bcfd0677253e39991b069f17..4b52fe77a6aeb6f7e7ca9ea8492505e32a1b88ad 100644 (file)
@@ -33,14 +33,23 @@ build_indexer ar
 build_indexer_arguments rcs
 build_language c
 
-build_libraries -lc -lcap -lcontroller
-build_libraries-individual -lfll_control_group -lfll_error -lfll_execute -lfll_fss -lfll_print -lfll_program
-build_libraries-individual_thread -lf_thread
-build_libraries-individual -lfl_control_group -lfl_conversion -lfl_directory -lfl_environment -lfl_execute -lfl_fss -lfl_iki -lfl_path -lfl_print
-build_libraries-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_socket -lf_string -lf_time -lf_type_array -lf_utf
-build_libraries-individual_thread -lf_thread
-build_libraries-level -lfll_2 -lfll_1 -lfll_0
-build_libraries-monolithic -lfll
+build_libraries_shared -lc -lcap -lcontroller
+build_libraries_shared-individual -lfll_control_group -lfll_error -lfll_execute -lfll_fss -lfll_print -lfll_program
+build_libraries_shared-individual_thread -lf_thread
+build_libraries_shared-individual -lfl_control_group -lfl_conversion -lfl_directory -lfl_environment -lfl_execute -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_socket -lf_string -lf_time -lf_type_array -lf_utf
+build_libraries_shared-individual_thread -lf_thread
+build_libraries_shared-level -lfll_2 -lfll_1 -lfll_0
+build_libraries_shared-monolithic -lfll
+
+build_libraries_static -l:libc.a -l:libcap.a -l:libcontroller.a
+build_libraries_static-individual -l:libfll_control_group.a -l:libfll_error.a -l:libfll_execute.a -l:libfll_fss.a -l:libfll_print.a -l:libfll_program.a
+build_libraries_static-individual_thread -l:libf_thread.a
+build_libraries_static-individual -l:libfl_control_group.a -l:libfl_conversion.a -l:libfl_directory.a -l:libfl_environment.a -l:libfl_execute.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_socket.a -l:libf_string.a -l:libf_time.a -l:libf_type_array.a -l:libf_utf.a
+build_libraries_static-individual_thread -l:libf_thread.a
+build_libraries_static-level -l:libfll_2.a -l:libfll_1.a -l:libfll_0.a
+build_libraries_static-monolithic -l:libfll.a
 
 build_sources_program config.c main.c controller.c string.c
 
index 33fd4d75eee3f9027ce3a7044ef030fc80e24aff..c4085bcf0ca4d05d2d91483b867424ac4d068a58 100644 (file)
@@ -33,14 +33,23 @@ build_indexer ar
 build_indexer_arguments rcs
 build_language c
 
-build_libraries -lc -lcap -lcontroller
-build_libraries-individual -lfll_control_group -lfll_error -lfll_execute -lfll_fss -lfll_print -lfll_program
-build_libraries-individual_thread -lf_thread
-build_libraries-individual -lfl_control_group -lfl_conversion -lfl_directory -lfl_environment -lfl_execute -lfl_fss -lfl_iki -lfl_path -lfl_print
-build_libraries-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_socket -lf_string -lf_time -lf_type_array -lf_utf
-build_libraries-individual_thread -lf_thread
-build_libraries-level -lfll_2 -lfll_1 -lfll_0
-build_libraries-monolithic -lfll
+build_libraries_shared -lc -lcap -lcontroller
+build_libraries_shared-individual -lfll_control_group -lfll_error -lfll_execute -lfll_fss -lfll_print -lfll_program
+build_libraries_shared-individual_thread -lf_thread
+build_libraries_shared-individual -lfl_control_group -lfl_conversion -lfl_directory -lfl_environment -lfl_execute -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_socket -lf_string -lf_time -lf_type_array -lf_utf
+build_libraries_shared-individual_thread -lf_thread
+build_libraries_shared-level -lfll_2 -lfll_1 -lfll_0
+build_libraries_shared-monolithic -lfll
+
+build_libraries_static -l:libc.a -l:libcap.a -l:libcontroller.a
+build_libraries_static-individual -l:libfll_control_group.a -l:libfll_error.a -l:libfll_execute.a -l:libfll_fss.a -l:libfll_print.a -l:libfll_program.a
+build_libraries_static-individual_thread -l:libf_thread.a
+build_libraries_static-individual -l:libfl_control_group.a -l:libfl_conversion.a -l:libfl_directory.a -l:libfl_environment.a -l:libfl_execute.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_socket.a -l:libf_string.a -l:libf_time.a -l:libf_type_array.a -l:libf_utf.a
+build_libraries_static-individual_thread -l:libf_thread.a
+build_libraries_static-level -l:libfll_2.a -l:libfll_1.a -l:libfll_0.a
+build_libraries_static-monolithic -l:libfll.a
 
 build_sources_program config.c main.c init.c string.c