]> Kevux Git Server - fll/commit
Feature: Add support for building under Android.
authorKevin Day <Kevin@kevux.org>
Wed, 4 Sep 2024 23:29:17 +0000 (18:29 -0500)
committerKevin Day <Kevin@kevux.org>
Wed, 4 Sep 2024 23:29:17 +0000 (18:29 -0500)
commitbb42ccf5677e2ae32f04af5c67bc23a5b9ff136c
treef14a451a0790d160561035222a4876a214d4ed7a
parentc6a9d5016061c37a849c931844ba241d22639df4
Feature: Add support for building under Android.

This is a forward port of the changes from the 0.6 branch without any testing.

This is not well tested or well supported.
This does have limited testing under the Termux project environment using CLang.

Add a new configuration option to build and run the project in an Android environment.

The test system had problems with text relocations but then required PIE.
This disables the relro in some spots (libraries) while enabling it in others (programs/executables).

Disable a lot of the functions that are not available or supported.

I have observed several warnings about `DT_FLAGS_1=0x41` being unsupported flag.
That is not a very helpful warning.
I have no idea what `0x41` is.
This causes a problem where the output of programs displays these warnings.
This can break programs that require I/O formatting and processing.

This has been tested to build using `bootstrap.sh` and then using `fake`.
Example build and install process:
# mkdir ~/software
# cd fll-0.6.X/
# ./bootstrap.sh build -m monolithic -m thread -m clang -m android && ./install.sh ~/software
# cd ../fake-0.6.X/
# ./bootstrap.sh build -m monolithic -m thread -m clang -m android -w ~/software && ./install.sh ~/software
# export LD_LIBRARY_PATH=~/software/libraries/shared
# export PATH=~/software/programs/shared
# cd ../byte_dump-0.6.X/
# fake -m monolithic -m thread -m clang -m android -w ~/software && ./install.sh ~/software

Example execution of `byte_dump` of `bash` program (this is a large dump).
# byte_dump -wt 7 $(type -p bash)
74 files changed:
build/level_0/settings
build/level_1/settings
build/level_2/settings
build/monolithic/settings
build/stand_alone/byte_dump.settings
build/stand_alone/example.settings
build/stand_alone/fake.settings
build/stand_alone/firewall.settings
build/stand_alone/utf8.settings
level_0/f_abstruse/data/build/settings
level_0/f_account/data/build/settings
level_0/f_capability/data/build/settings
level_0/f_color/data/build/settings
level_0/f_compare/data/build/settings
level_0/f_console/data/build/settings
level_0/f_control_group/data/build/settings
level_0/f_conversion/data/build/settings
level_0/f_directory/data/build/settings
level_0/f_environment/data/build/settings
level_0/f_execute/data/build/settings
level_0/f_file/data/build/settings
level_0/f_fss/data/build/settings
level_0/f_iki/data/build/settings
level_0/f_limit/data/build/settings
level_0/f_memory/data/build/settings
level_0/f_network/data/build/settings
level_0/f_parse/data/build/settings
level_0/f_path/data/build/settings
level_0/f_pipe/data/build/settings
level_0/f_print/data/build/settings
level_0/f_random/data/build/settings
level_0/f_rip/data/build/settings
level_0/f_serialize/data/build/settings
level_0/f_signal/data/build/settings
level_0/f_socket/data/build/settings
level_0/f_status/data/build/settings
level_0/f_status_string/data/build/settings
level_0/f_string/data/build/settings
level_0/f_thread/data/build/settings
level_0/f_time/data/build/settings
level_0/f_type/data/build/settings
level_0/f_type_array/data/build/settings
level_0/f_utf/data/build/settings
level_1/fl_control_group/data/build/settings
level_1/fl_conversion/data/build/settings
level_1/fl_directory/data/build/settings
level_1/fl_environment/data/build/settings
level_1/fl_execute/data/build/settings
level_1/fl_fss/data/build/settings
level_1/fl_iki/data/build/settings
level_1/fl_path/data/build/settings
level_1/fl_print/data/build/settings
level_1/fl_status_string/data/build/settings
level_1/fl_utf_file/data/build/settings
level_2/fll_control_group/data/build/settings
level_2/fll_error/data/build/settings
level_2/fll_execute/data/build/settings
level_2/fll_file/data/build/settings
level_2/fll_fss/data/build/settings
level_2/fll_fss_status_string/data/build/settings
level_2/fll_iki/data/build/settings
level_2/fll_print/data/build/settings
level_2/fll_program/data/build/settings
level_3/byte_dump/data/build/settings
level_3/example/data/build/settings
level_3/fake/data/build/settings
level_3/firewall/data/build/settings
level_3/fss_identify/data/build/settings
level_3/fss_read/data/build/settings
level_3/fss_write/data/build/settings
level_3/iki_read/data/build/settings
level_3/iki_write/data/build/settings
level_3/status_code/data/build/settings
level_3/utf8/data/build/settings