Open flesti opened 2 years ago
Requires:libkmod, libi2c, i2c-tools, libudev(systemd) It is not presesnt in termux root or official packages. Dependencies:
apt install x11* doxygen libtool* -y
apt install libdrm libusb* libxrandr* xorgproto docbook* xslt* glib* gtk* -y
pip install cython
Compile i2c-tools:
cd $HOME
wget https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/i2c-tools-4.3.tar.xz &&
tar xvf i2c-tools-4.3.tar.xz &&
cd i2c-tools-4.3 &&
make &&
make install &&
cd $HOME && rm -rf i2c-tools*
Compile hwdata
cd $HOME
git clone https://github.com/vcrhonek/hwdata
cd hwdata
sed 's|^prefix=/usr|prefix=/data/data/com.termux/files/usr|' configure -i
./configure
make install
Compile kmod:
cd $HOME
git clone https://github.com/kmod-project/kmod &&
cd kmod
./autogen.sh &&
cd $HOME/kmod/tools &&
fgrep 'program_invocation_' -r | cut -f1 -d : | xargs sed "/#include \"kmod.h\"/ s/#include \"kmod.h\"/#include \"kmod.h\"\nchar *program_invocation_name, *program_invocation_short_name;/" -i &&
fgrep 'program_invocation_' -r | cut -f1 -d : | xargs gawk -i inplace 'NR==1,/#include/{sub(/#include/, "#define _GNU_SOURCE\n#include")} 1' &&
cd ..
cd $HOME/kmod/shared &&
sed "s/#include <unistd.h>/#include <unistd.h>\nchar *getcwd();/" util.c -i &&
gawk -i inplace 'NR==1,/#include/{sub(/#include/, "#define _GNU_SOURCE\n#include")} 1' util.c &&
sed 's|cwd = get_current_dir_name()\;|char *buf\;\nbuf=(char *)malloc(100*sizeof(char))\;\ncwd = getcwd(buf, 100)\;|' util.c -i &&
cd $HOME/kmod && ./configure CFLAGS='-g -O2 -fcommon' --prefix=$PREFIX --enable-debug --enable-python --with-zstd --with-xz --with-zlib --with-openssl &&
make -j8 &&
make install
Compile ddcutil:
git clone -b 1.2.1-dev --single https://github.com/rockowitz/ddcutil &&
cd ddcutil &&
echo $HOME/ddcutil/src/util/{multi_level_map.h,edid.h,device_id_util.h} $HOME/ddcutil/src/base/feature_metadata.h $HOME/ddcutil/src/app_sysenv/query_sysenv_sysfs_common.{c,h} | tr ' ' '\n' | xargs -I %% sh -c "sed \"\$(sed -n '/^#include/=' %% | tail -n1)\"' s/$/\ntypedef unsigned short ushort\;/' %% -i" &&
sed "$(sed -n '/^#include/=' $HOME/ddcutil/src/base/core.h | tail -n1)"' s/$/\nvoid __assert_fail()\;/' $HOME/ddcutil/src/base/core.h -i &&
sed '/#ifndef SYSENV_ACCESS_H_/ s/SYSENV/QUERY_SYSENV/' $HOME/ddcutil/src/app_sysenv/query_sysenv_access.h -i &&
sed '/if ( !(businfo->flags & (I2C_BUS_EDP||I2C_BUS_LVDS)) )/ s/I2C/!!I2C/g' $HOME/ddcutil/src/i2c/i2c_bus_core.c -i &&
./autogen.sh
./configure --enable-drm=yes --enable-udev=no --prefix=$PREFIX CFLAGS='-fcommon -D_LINUX_IN6_H -Dindex=strchr -Drindex=strrchr' LDFLAGS='-landroid-wordexp' &&
make -j8
make all-recursive
make[1]: Entering directory '/data/data/com.termux/files/home/ddcutil'
Making all in src
make[2]: Entering directory '/data/data/com.termux/files/home/ddcutil/src'
Making all in util
make[3]: Entering directory '/data/data/com.termux/files/home/ddcutil/src/util'
CC data_structures.lo
CC ddcutil_config_file.lo
CC debug_util.lo
CC edid.lo
CC error_info.lo
CC file_util.lo
CC file_util_base.lo
CC glib_util.lo
CC glib_string_util.lo
CC i2c_util.lo
CC linux_util.lo
CC multi_level_map.lo
CC output_sink.lo
CC report_util.lo
CC simple_ini_file.lo
CC string_util.lo
CC sysfs_util.lo
CC subprocess_util.lo
CC timestamp.lo
CC utilrpt.lo
CC xdg_util.lo
CC sysfs_i2c_util.lo
CC device_id_util.lo
CC x11_util.lo
CC libdrm_util.lo
CCLD libutil.la
CCLD libutilaux.la
make[3]: Leaving directory '/data/data/com.termux/files/home/ddcutil/src/util'
Making all in usb_util
make[3]: Entering directory '/data/data/com.termux/files/home/ddcutil/src/usb_util'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/data/data/com.termux/files/home/ddcutil/src/usb_util'
Making all in base
make[3]: Entering directory '/data/data/com.termux/files/home/ddcutil/src/base'
CC base_init.lo
CC core.lo
CC build_info.lo
CC ddc_errno.lo
CC core_per_thread_settings.lo
CC ddc_packets.lo
CC dynamic_features.lo
CC dynamic_sleep.lo
core.c:834:24: warning: format specifies type 'void *' but the argument has type 'va_list' (aka '__builtin_va_list') [-Wformat]
ap);
^~
core.c:835:47: warning: format specifies type 'void *' but the argument has type 'va_list' (aka '__builtin_va_list') [-Wformat]
printf(" &ap=%p, ap=%p\n", &ap, ap);
~~ ^~
core.c:961:62: warning: format specifies type 'void *' but the argument has type 'va_list' (aka '__builtin_va_list') [-Wformat]
printf("(%s) &args=%p, args=%p\n", __func__, &args, args);
~~ ^~~~
core.c:1000:62: warning: format specifies type 'void *' but the argument has type 'va_list' (aka '__builtin_va_list') [-Wformat]
printf("(%s) &args=%p, args=%p\n", __func__, &args, args);
~~ ^~~~
core.c:1037:62: warning: format specifies type 'void *' but the argument has type 'va_list' (aka '__builtin_va_list') [-Wformat]
printf("(%s) &args=%p, args=%p\n", __func__, &args, args);
~~ ^~~~
core.c:1078:62: warning: format specifies type 'void *' but the argument has type 'va_list' (aka '__builtin_va_list') [-Wformat]
printf("(%s) &args=%p, args=%p\n", __func__, &args, args);
~~ ^~~~
CC displays.lo
6 warnings generated.
CC execution_stats.lo
CC feature_lists.lo
CC feature_metadata.lo
CC feature_sets.lo
CC last_io_event.lo
CC linux_errno.lo
CC monitor_model_key.lo
CC per_thread_data.lo
CC rtti.lo
CC sleep.lo
CC thread_retry_data.lo
CC thread_sleep_data.lo
CC tuned_sleep.lo
CC status_code_mgt.lo
CC vcp_version.lo
CCLD libbase.la
make[3]: Leaving directory '/data/data/com.termux/files/home/ddcutil/src/base'
Making all in vcp
make[3]: Entering directory '/data/data/com.termux/files/home/ddcutil/src/vcp'
CC ddc_command_codes.lo
CC parse_capabilities.lo
CC parsed_capabilities_feature.lo
CC persistent_capabilities.lo
CC vcp_feature_codes.lo
CC vcp_feature_values.lo
CC vcp_feature_set.lo
CCLD libvcp.la
make[3]: Leaving directory '/data/data/com.termux/files/home/ddcutil/src/vcp'
Making all in i2c
make[3]: Entering directory '/data/data/com.termux/files/home/ddcutil/src/i2c'
CC i2c_execute.lo
CC i2c_bus_core.lo
CC i2c_bus_selector.lo
CC i2c_strategy_dispatcher.lo
CC i2c_sysfs.lo
CCLD libi2c.la
make[3]: Leaving directory '/data/data/com.termux/files/home/ddcutil/src/i2c'
Making all in usb
make[3]: Entering directory '/data/data/com.termux/files/home/ddcutil/src/usb'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/data/data/com.termux/files/home/ddcutil/src/usb'
Making all in dynvcp
make[3]: Entering directory '/data/data/com.termux/files/home/ddcutil/src/dynvcp'
CC dyn_feature_set.lo
CC dyn_parsed_capabilities.lo
CC dyn_feature_files.lo
CC dyn_feature_codes.lo
CCLD libdynvcp.la
make[3]: Leaving directory '/data/data/com.termux/files/home/ddcutil/src/dynvcp'
Making all in ddc
make[3]: Entering directory '/data/data/com.termux/files/home/ddcutil/src/ddc'
CC ddc_async.lo
CC common_init.lo
CC ddc_displays.lo
CC ddc_display_lock.lo
CC ddc_dumpload.lo
CC ddc_multi_part_io.lo
CC ddc_output.lo
CC ddc_packet_io.lo
CC ddc_read_capabilities.lo
CC ddc_services.lo
common_init.c:43:26: warning: CC ddc_strategy.lo
use of logical '&&' with constant operand [-Wconstant-logical-operand]
if (parsed_cmd->flags && (CMD_FLAG_SYSLOG|CMD_FLAG_F3))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
common_init.c:43:26: note: use '&' for a bitwise operation
if (parsed_cmd->flags && (CMD_FLAG_SYSLOG|CMD_FLAG_F3))
^~
&
common_init.c:43:26: note: remove constant to silence this warning
if (parsed_cmd->flags && (CMD_FLAG_SYSLOG|CMD_FLAG_F3))
~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
CC ddc_vcp.lo
CC ddc_vcp_version.lo
CC ddc_try_stats.lo
CC ddc_watch_displays.lo
CCLD libddc.la
make[3]: Leaving directory '/data/data/com.termux/files/home/ddcutil/src/ddc'
Making all in test
make[3]: Entering directory '/data/data/com.termux/files/home/ddcutil/src/test'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/data/data/com.termux/files/home/ddcutil/src/test'
Making all in app_sysenv
make[3]: Entering directory '/data/data/com.termux/files/home/ddcutil/src/app_sysenv'
CC query_sysenv.lo
CC query_sysenv_access.lo
CC query_sysenv_base.lo
CC query_sysenv_i2c.lo
CC query_sysenv_dmidecode.lo
CC query_sysenv_logs.lo
CC query_sysenv_modules.lo
CC query_sysenv_procfs.lo
CC query_sysenv_sysfs_common.lo
CC query_sysenv_original_sys_scans.lo
CC query_sysenv_detailed_bus_pci_devices.lo
CC query_sysenv_simplified_sys_bus_pci_devices.lo
CC query_sysenv_sysfs.lo
CC query_sysenv_xref.lo
CC query_sysenv_drm.lo
CCLD libappsysenv.la
make[3]: Leaving directory '/data/data/com.termux/files/home/ddcutil/src/app_sysenv'
Making all in cmdline
make[3]: Entering directory '/data/data/com.termux/files/home/ddcutil/src/cmdline'
CC cmd_parser_aux.lo
CC cmd_parser_goption.lo
CC parsed_cmd.lo
CCLD libcmdline.la
make[3]: Leaving directory '/data/data/com.termux/files/home/ddcutil/src/cmdline'
Making all in .
make[3]: Entering directory '/data/data/com.termux/files/home/ddcutil/src'
CCLD libapp.la
CCLD libcommon.la
CC app_ddcutil/main.o
CC app_ddcutil/app_capabilities.o
CC app_ddcutil/app_dumpload.o
CC app_ddcutil/app_dynamic_features.o
CC app_ddcutil/app_experimental.o
CC app_ddcutil/app_getvcp.o
CC app_ddcutil/app_probe.o
CC app_ddcutil/app_setvcp.o
CC app_ddcutil/app_vcpinfo.o
CC app_ddcutil/app_interrogate.o
CC test/testcase_mock_table.o
CC libmain/api_base.lo
CC libmain/api_displays.lo
CC libmain/api_error_info_internal.lo
CC libmain/api_metadata.lo
CC libmain/api_feature_access.lo
CC libmain/api_capabilities.lo
libmain/api_displays.c:293:7: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
WITH_VALIDATED_DR3(ddca_dref, psc,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:56:10: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^
libmain/api_displays.c:294:10: note: '{' token is here
{
^
./libmain/api_displays_internal.h:56:11: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^~~~~~~
libmain/api_displays.c:297:10: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
}
^
./libmain/api_displays_internal.h:56:11: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^~~~~~~
libmain/api_displays.c:293:7: note: ')' token is here
WITH_VALIDATED_DR3(ddca_dref, psc,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:56:18: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^
libmain/api_displays.c:670:32: warning: unknown warning group '-Wstringop-truncation', ignored [-Wunknown-warning-option]
#pragma GCC diagnostic ignored "-Wstringop-truncation"
^
libmain/api_displays.c:704:4: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
WITH_VALIDATED_DR3(
^~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:56:10: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^
libmain/api_displays.c:706:10: note: '{' token is here
{
^
./libmain/api_displays_internal.h:56:11: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^~~~~~~
CC libmain/api_services_internal.lo
libmain/api_displays.c:711:10: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
}
^
./libmain/api_displays_internal.h:56:11: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^~~~~~~
libmain/api_displays.c:704:4: note: ')' token is here
WITH_VALIDATED_DR3(
^~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:56:18: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^
5 warnings generated.
libmain/api_feature_access.c:92:4: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
WITH_VALIDATED_DH2(ddca_dh, {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:72:10: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
libmain/api_feature_access.c:92:33: note: '{' token is here
WITH_VALIDATED_DH2(ddca_dh, {
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^~~~~~
libmain/api_feature_access.c:119:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
} );
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^~~~~~
libmain/api_feature_access.c:92:4: note: ')' token is here
WITH_VALIDATED_DH2(ddca_dh, {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:72:17: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
libmain/api_feature_access.c:135:4: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
WITH_VALIDATED_DH2(ddca_dh,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:72:10: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
libmain/api_feature_access.c:136:7: note: '{' token is here
{
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^~~~~~
libmain/api_feature_access.c:160:7: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
}
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^~~~~~
libmain/api_feature_access.c:135:4: note: ')' token is here
WITH_VALIDATED_DH2(ddca_dh,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:72:17: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
libmain/api_feature_access.c:180:4: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
WITH_VALIDATED_DH2(ddca_dh,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:72:10: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
libmain/api_feature_access.c:181:10: note: '{' token is here
{
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^~~~~~
libmain/api_feature_access.c:188:10: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
}
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^~~~~~
libmain/api_feature_access.c:180:4: note: ')' token is here
WITH_VALIDATED_DH2(ddca_dh,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:72:17: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
libmain/api_feature_access.c:365:4: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
WITH_VALIDATED_DH2(ddca_dh,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:72:10: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
libmain/api_feature_access.c:366:10: note: '{' token is here
{
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^~~~~~
libmain/api_metadata.c:191:4: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
WITH_VALIDATED_DR3(
^~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:56:10: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^
libmain/api_metadata.c:193:10: note: '{' token is here
{
^
./libmain/api_displays_internal.h:56:11: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^~~~~~~
libmain/api_feature_access.c:419:10: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
}
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^~~~~~
libmain/api_feature_access.c:365:4: note: ')' token is here
WITH_VALIDATED_DH2(ddca_dh,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:72:17: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
libmain/api_metadata.c:244:10: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
}
^
./libmain/api_displays_internal.h:56:11: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^~~~~~~
libmain/api_metadata.c:191:4: note: ')' token is here
WITH_VALIDATED_DR3(
^~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:56:18: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^
libmain/api_feature_access.c:514:4: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
WITH_VALIDATED_DR3(ddca_dref, ddcrc,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:56:10: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^
libmain/api_feature_access.c:515:10: note: '{' token is here
{
^
./libmain/api_displays_internal.h:56:11: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^~~~~~~
libmain/api_feature_access.c:529:10: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
}
^
./libmain/api_displays_internal.h:56:11: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^~~~~~~
libmain/api_feature_access.c:514:4: note: ')' token is here
WITH_VALIDATED_DR3(ddca_dref, ddcrc,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:56:18: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^
libmain/api_feature_access.c:588:4: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
WITH_VALIDATED_DR3(ddca_dref, ddcrc,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:56:10: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^
libmain/api_feature_access.c:589:10: note: '{' token is here
{
^
./libmain/api_displays_internal.h:56:11: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^~~~~~~
libmain/api_feature_access.c:602:10: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
}
^
./libmain/api_displays_internal.h:56:11: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^~~~~~~
libmain/api_feature_access.c:588:4: note: ')' token is here
WITH_VALIDATED_DR3(ddca_dref, ddcrc,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:56:18: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^
libmain/api_feature_access.c:642:4: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
WITH_VALIDATED_DR3(ddca_dref, ddcrc,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:56:10: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^
libmain/api_feature_access.c:643:10: note: '{' token is here
{
^
./libmain/api_displays_internal.h:56:11: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^~~~~~~
libmain/api_feature_access.c:655:10: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
}
^
./libmain/api_displays_internal.h:56:11: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^~~~~~~
libmain/api_feature_access.c:642:4: note: ')' token is here
WITH_VALIDATED_DR3(ddca_dref, ddcrc,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:56:18: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^
libmain/api_feature_access.c:675:7: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
WITH_VALIDATED_DH2(ddca_dh, {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:72:10: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
libmain/api_feature_access.c:675:36: note: '{' token is here
WITH_VALIDATED_DH2(ddca_dh, {
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^~~~~~
libmain/api_feature_access.c:680:10: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
} );
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^~~~~~
libmain/api_feature_access.c:675:7: note: ')' token is here
WITH_VALIDATED_DH2(ddca_dh, {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:72:17: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
libmain/api_metadata.c:521:4: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
WITH_VALIDATED_DR3(
^~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:56:10: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^
libmain/api_metadata.c:523:10: note: '{' token is here
{
^
./libmain/api_displays_internal.h:56:11: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^~~~~~~
libmain/api_feature_access.c:963:4: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
WITH_VALIDATED_DH2(ddca_dh,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:72:10: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
libmain/api_feature_access.c:964:7: note: '{' token is here
{
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^~~~~~
libmain/api_metadata.c:535:10: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
}
^
./libmain/api_displays_internal.h:56:11: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^~~~~~~
libmain/api_metadata.c:libmain/api_feature_access.c:971:7: 521warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]:
4: note: ')' token is here
}
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
WITH_VALIDATED_DR3( ^~~~~~
^~~~~~~~~~~~~~~~~~~
libmain/api_feature_access.c:963:4: note: ')' token is here
./libmain/api_displays_internal.h:56 WITH_VALIDATED_DH2(ddca_dh,:
^~~~~~~~~~~~~~~~~~~~~~~~~~~18
: ./libmain/api_displays_internal.h:note: 72:expanded from macro 'WITH_VALIDATED_DR3'17:
note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
(_action); \
^
libmain/api_feature_access.c:985:4: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
WITH_VALIDATED_DH2(ddca_dh,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:72:10: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
libmain/api_feature_access.c:986:7: note: '{' token is here
{
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^~~~~~
libmain/api_feature_access.c:995:7: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
}
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^~~~~~
libmain/api_feature_access.c:985:4: note: ')' token is here
WITH_VALIDATED_DH2(ddca_dh,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:72:17: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
libmain/api_feature_access.c:1018:4: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
WITH_VALIDATED_DH2(ddca_dh,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:72:10: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
libmain/api_feature_access.c:1019:8: note: '{' token is here
{
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^~~~~~
libmain/api_feature_access.c:1024:8: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
}
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^~~~~~
libmain/api_feature_access.c:1018:4: note: ')' token is here
WITH_VALIDATED_DH2(ddca_dh,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:72:17: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
libmain/api_metadata.c:557:4: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
WITH_VALIDATED_DH2(
^~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:72:10: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
libmain/api_metadata.c:559:10: note: '{' token is here
{
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^~~~~~
libmain/api_metadata.c:580:10: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
}
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^~~~~~
libmain/api_metadata.c:557:4: note: ')' token is here
WITH_VALIDATED_DH2(
^~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:72:17: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
libmain/api_metadata.c:655:4: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
WITH_VALIDATED_DR3(ddca_dref, psc,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:56:10: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^
libmain/api_metadata.c:656:10: note: '{' token is here
{
^
./libmain/api_displays_internal.h:56:11: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^~~~~~~
libmain/api_metadata.c:663:10: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
}
^
./libmain/api_displays_internal.h:56:11: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^~~~~~~
libmain/api_metadata.c:655:4: note: ')' token is here
WITH_VALIDATED_DR3(ddca_dref, psc,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:56:18: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^
libmain/api_metadata.c:883:4: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
WITH_VALIDATED_DR3(ddca_dref, psc,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:56:10: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^
libmain/api_metadata.c:884:7: note: '{' token is here
{
^
./libmain/api_displays_internal.h:56:11: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^~~~~~~
libmain/api_metadata.c:892:7: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
}
^
./libmain/api_displays_internal.h:56:11: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^~~~~~~
libmain/api_metadata.c:883:4: note: ')' token is here
WITH_VALIDATED_DR3(ddca_dref, psc,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:56:18: note: expanded from macro 'WITH_VALIDATED_DR3'
(_action); \
^
libmain/api_metadata.c:903:4: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
WITH_VALIDATED_DH2(ddca_dh,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:72:10: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
libmain/api_metadata.c:904:7: note: '{' token is here
{
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^~~~~~
libmain/api_metadata.c:911:7: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
}
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^~~~~~
libmain/api_metadata.c:903:4: note: ')' token is here
WITH_VALIDATED_DH2(ddca_dh,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:72:17: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
22 warnings generated.
12 warnings generated.
libmain/api_capabilities.c:62:4: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
WITH_VALIDATED_DH2(ddca_dh,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:72:10: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
libmain/api_capabilities.c:63:7: note: '{' token is here
{
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^~~~~~
libmain/api_capabilities.c:79:7: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
}
^
./libmain/api_displays_internal.h:72:11: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^~~~~~
libmain/api_capabilities.c:62:4: note: ')' token is here
WITH_VALIDATED_DH2(ddca_dh,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
./libmain/api_displays_internal.h:72:17: note: expanded from macro 'WITH_VALIDATED_DH2'
(action); \
^
2 warnings generated.
CCLD libddcutil.la
CCLD ddcutil
ld.lld: error: undefined symbol: __assert_fail
>>> referenced by ddc_displays.c
>>> ddc_displays.o:(ddc_initial_checks_by_dh) in archive ./.libs/libcommon.a
>>> referenced by ddc_displays.c
>>> ddc_displays.o:(ddc_initial_checks_by_dh) in archive ./.libs/libcommon.a
>>> referenced by ddc_displays.c
>>> ddc_displays.o:(ddc_initial_checks_by_dh) in archive ./.libs/libcommon.a
>>> referenced 45 more times
clang-13: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [Makefile:881: ddcutil] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/data/data/com.termux/files/home/ddcutil/src'
make[2]: *** [Makefile:978: all-recursive] Error 1
make[2]: Leaving directory '/data/data/com.termux/files/home/ddcutil/src'
make[1]: *** [Makefile:549: all-recursive] Error 1
make[1]: Leaving directory '/data/data/com.termux/files/home/ddcutil'
make: *** [Makefile:456: all] Error 2
To solve above: make clean && make -j8 CC=gcc-10
Just add -fcommon
to compiler flags...
not
To solve above: make clean && make -j8 CC=gcc-10
Just add
-fcommon
to compiler flags...
Not Working
-fcommon
is meant to resolve only ld.lld: error: duplicate symbol: program_invocation_name
.
As for others, avoid using gcc
- it is not compatible with the latest NDK headers.
For resolving error: use of undeclared identifier 'program_invocation_short_name'
, try patch similar to:
https://github.com/termux/termux-packages/blob/3311cc5f5e3f4ec5b639baaab8486309474fd7af/packages/libelf/system.h.patch#L7-L9
Much more complicated than I thought it would be, even the ddcutil people find it quite unlikely. If there's no else interest about it, might as well close this.
wordexp.h This header file is missing on some platforms: OpenBSD 6.7, Minix 3.1.8, Cygwin 1.5.x, mingw, MSVC 14, Android 9.0.
Seems termux has patch https://github.com/termux/termux-packages/blob/34916a6f65207e41ced26f3bedb16fc371a0dc12/packages/renameutils/add-missing-functions.patch But still error
CC error_info.lo
CC libmain/api_error_info_internal.lo
ld.lld: error: undefined symbol: __assert_fail
ld.lld: error: undefined symbol: index
ld.lld: error: undefined symbol: wordexp
clang-13: error: linker command failed with exit code 1 (use -v to see invocation)
HELP SOLVE ABOVE ERROR https://github.com/termux/termux-packages/issues/7936#issuecomment-968610964
See rockowitz/ddcutil#234 for comments
kmod installs properly but when running causes segmentation fault. Any way to resolve it
kmod installs properly but when running causes segmentation fault. Any way to resolve it
Why do you need kmod? Disabling whatever feature that needs it is most certainly a better way forward.
In any case, there is no universal way to fix a segmentation fault, it depends on what causes the fault
any solution for ddcutil related erros after building from dev branch
kmod strace debug:
execve("/data/data/com.termux/files/usr/bin/kmod", ["kmod"], 0x7fecac8cd0 /* 24 vars */) = 0
getpid() = 29462
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bbde7000
set_tid_address(0x75bbf04ef8) = 29462
faccessat(AT_FDCWD, "/dev/urandom", R_OK) = 0
futex(0x75bbf01040, FUTEX_WAKE_PRIVATE, 2147483647) = 0
getrandom("\xc3\xe9\x8b\x4d\x3e\x8c\xa9\x84\x80\xe1\x15\x89\xd6\x48\xfe\xc9\xf6\xd8\x90\x26\xdc\x33\x14\xc1\x42\x7d\x41\x5a\x71\x55\x9b\x34"..., 40, GRND_NONBLOCK) = 40
mmap(NULL, 1104, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bbde6000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bbde6000, 1104, "arc4random data") = 0
sched_getscheduler(0) = 0 (SCHED_OTHER)
mmap(NULL, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bbddd000
mprotect(0x75bbddd000, 4096, PROT_NONE) = 0
sigaltstack({ss_sp=0x75bbdde000, ss_flags=0, ss_size=32768}, NULL) = 0
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bbdde000, 32768, "thread signal stack") = 0
mmap(NULL, 16777216, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75baddd000
mprotect(0x75bb076000, 8192, PROT_READ|PROT_WRITE) = 0
mprotect(0x75bbef5000, 28672, PROT_READ) = 0
mprotect(0x75bbf03000, 4096, PROT_READ) = 0
mprotect(0x75bbf03000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x75bbf03000, 4096, PROT_READ) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75baddc000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75baddc000, 4096, "atexit handlers") = 0
mprotect(0x75baddc000, 4096, PROT_READ) = 0
mprotect(0x75baddc000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x75baddc000, 4096, PROT_READ) = 0
mprotect(0x75baddc000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x75baddc000, 4096, PROT_READ) = 0
mprotect(0x75baddc000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x75baddc000, 4096, PROT_READ) = 0
mprotect(0x75baddc000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x75baddc000, 4096, PROT_READ) = 0
mprotect(0x75baddc000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x75baddc000, 4096, PROT_READ) = 0
mprotect(0x75baddc000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x75baddc000, 4096, PROT_READ) = 0
mprotect(0x75baddc000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x75baddc000, 4096, PROT_READ) = 0
mprotect(0x75baddc000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x75baddc000, 4096, PROT_READ) = 0
mprotect(0x75baddc000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x75baddc000, 4096, PROT_READ) = 0
mprotect(0x75baddc000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x75baddc000, 4096, PROT_READ) = 0
mprotect(0x75baddc000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x75baddc000, 4096, PROT_READ) = 0
mprotect(0x75baddc000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x75baddc000, 4096, PROT_READ) = 0
mprotect(0x75baddc000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x75baddc000, 4096, PROT_READ) = 0
mprotect(0x75baddc000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x75baddc000, 4096, PROT_READ) = 0
futex(0x75bbf01040, FUTEX_WAKE_PRIVATE, 2147483647) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75baddb000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75baddb000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75badda000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75badda000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 409600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bad76000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bad76000, 409600, "linker_alloc") = 0
mprotect(0x75bad76000, 409600, PROT_READ|PROT_WRITE) = 0
openat(AT_FDCWD, "/dev/null", O_RDWR) = 3
fcntl(0, F_GETFL) = 0x20002 (flags O_RDWR|O_LARGEFILE)
fcntl(1, F_GETFL) = 0x1 (flags O_WRONLY)
fcntl(2, F_GETFL) = 0x1 (flags O_WRONLY)
close(3) = 0
newfstatat(AT_FDCWD, "/dev/__properties__", {st_mode=S_IFDIR|0711, st_size=3800, ...}, 0) = 0
faccessat(AT_FDCWD, "/dev/__properties__/property_info", R_OK) = 0
openat(AT_FDCWD, "/dev/__properties__/property_info", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=37416, ...}) = 0
mmap(NULL, 37416, PROT_READ, MAP_SHARED, 3, 0) = 0x75bad6c000
close(3) = 0
mmap(NULL, 7440, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bad6a000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bad6a000, 7440, "System property context nodes") = 0
openat(AT_FDCWD, "/dev/__properties__/properties_serial", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=196608, ...}) = 0
mmap(NULL, 196608, PROT_READ, MAP_SHARED, 3, 0) = 0x75bad3a000
close(3) = 0
mmap(NULL, 12288, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bad37000
mprotect(0x75bad38000, 4096, PROT_READ|PROT_WRITE) = 0
rt_sigaction(SIGABRT, {sa_handler=0x75bbe4105c, sa_mask=~[], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGBUS, {sa_handler=0x75bbe4105c, sa_mask=~[], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGFPE, {sa_handler=0x75bbe4105c, sa_mask=~[], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGILL, {sa_handler=0x75bbe4105c, sa_mask=~[], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGSEGV, {sa_handler=0x75bbe4105c, sa_mask=~[], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGSTKFLT, {sa_handler=0x75bbe4105c, sa_mask=~[], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGSYS, {sa_handler=0x75bbe4105c, sa_mask=~[], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGTRAP, {sa_handler=0x75bbe4105c, sa_mask=~[], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_3, {sa_handler=0x75bbe4105c, sa_mask=~[], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
prctl(PR_GET_DUMPABLE) = 1 (SUID_DUMP_USER)
futex(0x75bbf01040, FUTEX_WAKE_PRIVATE, 2147483647) = 0
openat(AT_FDCWD, "/dev/__properties__/u:object_r:debug_prop:s0", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=196608, ...}) = 0
mmap(NULL, 196608, PROT_READ, MAP_SHARED, 3, 0) = 0x75bad07000
close(3) = 0
futex(0x75bbf01040, FUTEX_WAKE_PRIVATE, 2147483647) = 0
newfstatat(AT_FDCWD, "/proc/self/exe", {st_mode=S_IFREG|0755, st_size=655712, ...}, 0) = 0
readlinkat(AT_FDCWD, "/proc/self/exe", "/data/data/com.termux/files/usr/"..., 4096) = 40
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bad06000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bad06000, 4096, "bionic_alloc_small_objects") = 0
mprotect(0x75baddc000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x75baddc000, 4096, PROT_READ) = 0
futex(0x75bbf01040, FUTEX_WAKE_PRIVATE, 2147483647) = 0
mmap(NULL, 409600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75baca2000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75baca2000, 409600, "linker_alloc") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75baca1000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75baca1000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75baca0000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75baca0000, 4096, "bionic_alloc_small_objects") = 0
newfstatat(AT_FDCWD, "/system/etc/ld.config.arm64.txt", 0x7fcced0a00, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/dev/__properties__/u:object_r:default_prop:s0", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=196608, ...}) = 0
mmap(NULL, 196608, PROT_READ, MAP_SHARED, 3, 0) = 0x75bac70000
close(3) = 0
newfstatat(AT_FDCWD, "/system/etc/ld.config.vndk_lite.txt", {st_mode=S_IFREG|0644, st_size=27871, ...}, 0) = 0
openat(AT_FDCWD, "/system/etc/ld.config.vndk_lite.txt", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=27871, ...}) = 0
mmap(NULL, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bac69000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bac69000, 28672, "bionic_alloc_lob") = 0
read(3, "# Copyright (C) 2017 The Android"..., 1024) = 1024
read(3, "se.\n# This must be last.\ndir.sys"..., 1024) = 1024
read(3, "${LIB}\nnamespace.default.asan.se"..., 1024) = 1024
read(3, " += libicui18n.so\nnamespace.defa"..., 1024) = 1024
read(3, "rue\nnamespace.runtime.visible = "..., 1024) = 1024
read(3, "nk.default.shared_libs = libEGL"..., 1024) = 1024
read(3, "################################"..., 1024) = 1024
read(3, "arch.paths = /apex/com.android.r"..., 1024) = 1024
read(3, "cifying\n# that they should be se"..., 1024) = 1024
read(3, "espace.sphal.asan.permitted.path"..., 1024) = 1024
read(3, "ibclang_rt.tsan-aarch64-android."..., 1024) = 1024
read(3, "################################"..., 1024) = 1024
read(3, "aths += /odm/${LIB}/vn"..., 1024) = 1024
read(3, "aarch64-android.so:libclang_rt.a"..., 1024) = 1024
read(3, "d.hardware.renderscript@1.0.so:a"..., 1024) = 1024
read(3, "/${LIB}/hw\nnamespace.vndk.permit"..., 1024) = 1024
read(3, " /odm/${LIB}/egl\nnamespace.vndk"..., 1024) = 1024
read(3, ".so:libvulkan.so:libz.so\nnamespa"..., 1024) = 1024
read(3, "ult.search.paths += /vendor/${LI"..., 1024) = 1024
read(3, "aths += /vendor/${LIB}"..., 1024) = 1024
read(3, "e.shared_libs += libicui18n.so\nn"..., 1024) = 1024
read(3, "ce.runtime.link.default.allow_al"..., 1024) = 1024
read(3, "space.default.asan.search.paths "..., 1024) = 1024
read(3, "ce\n#\n# This namespace exposes ex"..., 1024) = 1024
read(3, "rch.paths = /apex/com.android.me"..., 1024) = 1024
read(3, "################################"..., 1024) = 1024
read(3, "###########################\nname"..., 1024) = 1024
read(3, "################################"..., 1024) = 223
read(3, "", 1024) = 0
close(3) = 0
faccessat(AT_FDCWD, "/system/bin", R_OK) = -1 EACCES (Permission denied)
faccessat(AT_FDCWD, "/system/xbin", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/product/bin", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/odm/bin", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/vendor/bin", R_OK) = 0
newfstatat(AT_FDCWD, "/vendor", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/vendor/bin", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
faccessat(AT_FDCWD, "/data/nativetest/odm", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/data/nativetest64/odm", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/data/benchmarktest/odm", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/data/benchmarktest64/odm", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/data/nativetest/vendor", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/data/nativetest64/vendor", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/data/benchmarktest/vendor", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/data/benchmarktest64/vendor", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/data/nativetest/unrestricted", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/data/nativetest64/unrestricted", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/data/local/tmp", R_OK) = -1 EACCES (Permission denied)
faccessat(AT_FDCWD, "/postinstall", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/data", R_OK) = -1 EACCES (Permission denied)
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bac68000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bac68000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bac67000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bac67000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bac66000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bac66000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bac65000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bac65000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bac64000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bac64000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bac63000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bac63000, 4096, "bionic_alloc_small_objects") = 0
munmap(0x75bac69000, 28672) = 0
mprotect(0x75baddc000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x75baddc000, 4096, PROT_READ) = 0
futex(0x75bbf01040, FUTEX_WAKE_PRIVATE, 2147483647) = 0
newfstatat(AT_FDCWD, "/odm", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/odm/lib64", 0x7fccecb370, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/odm/lib64/vndk-sp", 0x7fccece4f0, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/vendor", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/vendor/lib64", {st_mode=S_IFDIR|0755, st_size=8192, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/vendor/lib64/vndk-sp", 0x7fccecb370, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/vendor/lib64/vndk-sp", 0x7fccece4f0, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/system", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/system/lib64", {st_mode=S_IFDIR|0755, st_size=28672, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/system/lib64/vndk-sp-29", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/system/lib64/vndk-sp-29", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bac6f000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bac6f000, 4096, "bionic_alloc_small_objects") = 0
newfstatat(AT_FDCWD, "/odm", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/odm/lib64", 0x7fccecb370, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/odm/lib64", 0x7fccece4f0, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/vendor", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/vendor/lib64", {st_mode=S_IFDIR|0755, st_size=8192, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/vendor/lib64", {st_mode=S_IFDIR|0755, st_size=8192, ...}, 0) = 0
newfstatat(AT_FDCWD, "/vendor", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/vendor/lib64", {st_mode=S_IFDIR|0755, st_size=8192, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/vendor/lib64/hw", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/vendor/lib64/hw", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bac6e000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bac6e000, 4096, "bionic_alloc_small_objects") = 0
newfstatat(AT_FDCWD, "/odm", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/odm/lib64", 0x7fccecb370, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/odm/lib64/vndk-sp", 0x7fccece4f0, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/vendor", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/vendor/lib64", {st_mode=S_IFDIR|0755, st_size=8192, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/vendor/lib64/vndk-sp", 0x7fccecb370, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/vendor/lib64/vndk-sp", 0x7fccece4f0, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/system", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/system/lib64", {st_mode=S_IFDIR|0755, st_size=28672, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/system/lib64/vndk-sp-29", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/system/lib64/vndk-sp-29", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
newfstatat(AT_FDCWD, "/odm", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/odm/lib64", 0x7fccecb370, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/odm/lib64", 0x7fccece4f0, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/vendor", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/vendor/lib64", {st_mode=S_IFDIR|0755, st_size=8192, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/vendor/lib64", {st_mode=S_IFDIR|0755, st_size=8192, ...}, 0) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bac6d000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bac6d000, 4096, "bionic_alloc_small_objects") = 0
newfstatat(AT_FDCWD, "/apex", {st_mode=S_IFDIR|0755, st_size=280, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/apex/com.android.resolv", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/apex/com.android.resolv/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/apex/com.android.resolv/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
newfstatat(AT_FDCWD, "/apex", {st_mode=S_IFDIR|0755, st_size=280, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/apex/com.android.runtime", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/apex/com.android.runtime/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/apex/com.android.runtime/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
newfstatat(AT_FDCWD, "/apex", {st_mode=S_IFDIR|0755, st_size=280, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/apex/com.android.media", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/apex/com.android.media/lib64", 0x7fccecb370, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/apex/com.android.media/lib64", 0x7fccece4f0, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/apex", {st_mode=S_IFDIR|0755, st_size=280, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/apex/com.android.conscrypt", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/apex/com.android.conscrypt/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/apex/com.android.conscrypt/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
newfstatat(AT_FDCWD, "/system", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/system/lib64", {st_mode=S_IFDIR|0755, st_size=28672, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/system/lib64", {st_mode=S_IFDIR|0755, st_size=28672, ...}, 0) = 0
newfstatat(AT_FDCWD, "/odm", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/odm/lib64", 0x7fccecb370, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/odm/lib64", 0x7fccece4f0, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/vendor", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/vendor/lib64", {st_mode=S_IFDIR|0755, st_size=8192, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/vendor/lib64", {st_mode=S_IFDIR|0755, st_size=8192, ...}, 0) = 0
newfstatat(AT_FDCWD, "/product", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/product/lib64", 0x7fccecb370, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/product/lib64", 0x7fccece4f0, 0) = -1 ENOENT (No such file or directory)
munmap(0x75baca1000, 4096) = 0
munmap(0x75bac67000, 4096) = 0
mmap(NULL, 409600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75babff000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75babff000, 409600, "linker_alloc") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75baca1000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75baca1000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bac6c000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bac6c000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bac6b000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bac6b000, 4096, "bionic_alloc_lob") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bac6a000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bac6a000, 4096, "bionic_alloc_small_objects") = 0
munmap(0x75bac6b000, 4096) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bac6b000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bac6b000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bac69000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bac69000, 4096, "bionic_alloc_lob") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bac67000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bac67000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75babfe000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75babfe000, 4096, "bionic_alloc_small_objects") = 0
munmap(0x75bac69000, 4096) = 0
newfstatat(AT_FDCWD, "/data", {st_mode=S_IFDIR|0771, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data", {st_mode=S_IFDIR|0771, st_size=32768, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, 0) = 0
mmap(NULL, 409600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bab9a000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bab9a000, 409600, "linker_alloc") = 0
faccessat(AT_FDCWD, "/system/lib/libTcpOptimizer.mobiledata.samsung.so", F_OK) = -1 ENOENT (No such file or directory)
mmap(NULL, 409600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bab36000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bab36000, 409600, "linker_alloc") = 0
openat(AT_FDCWD, "/data/data/com.termux/files/usr/lib/libtermux-exec.so", O_RDONLY|O_CLOEXEC) = 3
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bab34000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bab34000, 8192, "bionic_alloc_lob") = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bab32000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bab32000, 8192, "bionic_alloc_lob") = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/data/data/com.termux/files/usr/"..., 4096) = 53
munmap(0x75bab32000, 8192) = 0
munmap(0x75bab34000, 8192) = 0
fstat(3, {st_mode=S_IFREG|0600, st_size=10032, ...}) = 0
fstatfs(3, {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=13696364, f_bfree=8172040, f_bavail=8137992, f_files=1732608, f_ffree=1632831, f_fsid={val=[0x6b97b642, 0x8c5d4f77]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_NOSUID|ST_NODEV|ST_NOATIME}) = 0
pread64(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 64, 0) = 64
mmap(NULL, 520, PROT_READ, MAP_PRIVATE, 3, 0) = 0x75bac69000
mmap(NULL, 2272, PROT_READ, MAP_PRIVATE, 3, 0x2000) = 0x75bab35000
mmap(NULL, 7264, PROT_READ, MAP_PRIVATE, 3, 0x1000) = 0x75bab33000
mmap(NULL, 2809, PROT_READ, MAP_PRIVATE, 3, 0) = 0x75bab32000
newfstatat(AT_FDCWD, "/data", {st_mode=S_IFDIR|0771, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data", {st_mode=S_IFDIR|0771, st_size=32768, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, 0) = 0
openat(AT_FDCWD, "/data/data/com.termux/files/usr/lib/libzstd.so.1", O_RDONLY|O_CLOEXEC) = 4
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bab30000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bab30000, 8192, "bionic_alloc_lob") = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bab2e000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bab2e000, 8192, "bionic_alloc_lob") = 0
readlinkat(AT_FDCWD, "/proc/self/fd/4", "/data/data/com.termux/files/usr/"..., 4096) = 52
munmap(0x75bab2e000, 8192) = 0
munmap(0x75bab30000, 8192) = 0
fstat(4, {st_mode=S_IFREG|0700, st_size=1140672, ...}) = 0
fstatfs(4, {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=13696364, f_bfree=8172030, f_bavail=8137982, f_files=1732608, f_ffree=1632831, f_fsid={val=[0x6b97b642, 0x8c5d4f77]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_NOSUID|ST_NODEV|ST_NOATIME}) = 0
pread64(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 64, 0) = 64
mmap(NULL, 520, PROT_READ, MAP_PRIVATE, 4, 0) = 0x75bab31000
mmap(NULL, 2432, PROT_READ, MAP_PRIVATE, 4, 0x116000) = 0x75bab30000
mmap(NULL, 6608, PROT_READ, MAP_PRIVATE, 4, 0x115000) = 0x75bab2e000
mmap(NULL, 8023, PROT_READ, MAP_PRIVATE, 4, 0x1000) = 0x75bab2c000
newfstatat(AT_FDCWD, "/data", {st_mode=S_IFDIR|0771, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data", {st_mode=S_IFDIR|0771, st_size=32768, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, 0) = 0
openat(AT_FDCWD, "/data/data/com.termux/files/usr/lib/liblzma.so.5", O_RDONLY|O_CLOEXEC) = 5
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bab2a000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bab2a000, 8192, "bionic_alloc_lob") = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bab28000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bab28000, 8192, "bionic_alloc_lob") = 0
readlinkat(AT_FDCWD, "/proc/self/fd/5", "/data/data/com.termux/files/usr/"..., 4096) = 52
munmap(0x75bab28000, 8192) = 0
munmap(0x75bab2a000, 8192) = 0
fstat(5, {st_mode=S_IFREG|0600, st_size=133008, ...}) = 0
fstatfs(5, {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=13696364, f_bfree=8172024, f_bavail=8137976, f_files=1732608, f_ffree=1632831, f_fsid={val=[0x6b97b642, 0x8c5d4f77]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_NOSUID|ST_NODEV|ST_NOATIME}) = 0
pread64(5, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 64, 0) = 64
mmap(NULL, 520, PROT_READ, MAP_PRIVATE, 5, 0) = 0x75bab2b000
mmap(NULL, 2464, PROT_READ, MAP_PRIVATE, 5, 0x20000) = 0x75bab2a000
mmap(NULL, 6096, PROT_READ, MAP_PRIVATE, 5, 0x1f000) = 0x75bab28000
mmap(NULL, 10246, PROT_READ, MAP_PRIVATE, 5, 0) = 0x75bab25000
newfstatat(AT_FDCWD, "/data", {st_mode=S_IFDIR|0771, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data", {st_mode=S_IFDIR|0771, st_size=32768, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, 0) = 0
openat(AT_FDCWD, "/data/data/com.termux/files/usr/lib/libz.so.1", O_RDONLY|O_CLOEXEC) = 6
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bab23000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bab23000, 8192, "bionic_alloc_lob") = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bab21000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bab21000, 8192, "bionic_alloc_lob") = 0
readlinkat(AT_FDCWD, "/proc/self/fd/6", "/data/data/com.termux/files/usr/"..., 4096) = 50
munmap(0x75bab21000, 8192) = 0
munmap(0x75bab23000, 8192) = 0
fstat(6, {st_mode=S_IFREG|0600, st_size=133008, ...}) = 0
fstatfs(6, {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=13696364, f_bfree=8172023, f_bavail=8137975, f_files=1732608, f_ffree=1632831, f_fsid={val=[0x6b97b642, 0x8c5d4f77]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_NOSUID|ST_NODEV|ST_NOATIME}) = 0
pread64(6, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 64, 0) = 64
mmap(NULL, 520, PROT_READ, MAP_PRIVATE, 6, 0) = 0x75bab24000
mmap(NULL, 2464, PROT_READ, MAP_PRIVATE, 6, 0x20000) = 0x75bab23000
mmap(NULL, 7072, PROT_READ, MAP_PRIVATE, 6, 0x1f000) = 0x75bab21000
mmap(NULL, 8267, PROT_READ, MAP_PRIVATE, 6, 0) = 0x75bab1e000
newfstatat(AT_FDCWD, "/data", {st_mode=S_IFDIR|0771, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data", {st_mode=S_IFDIR|0771, st_size=32768, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, 0) = 0
openat(AT_FDCWD, "/data/data/com.termux/files/usr/lib/libcrypto.so.1.1", O_RDONLY|O_CLOEXEC) = 7
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bab1c000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bab1c000, 8192, "bionic_alloc_lob") = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bab1a000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bab1a000, 8192, "bionic_alloc_lob") = 0
readlinkat(AT_FDCWD, "/proc/self/fd/7", "/data/data/com.termux/files/usr/"..., 4096) = 52
munmap(0x75bab1a000, 8192) = 0
munmap(0x75bab1c000, 8192) = 0
fstat(7, {st_mode=S_IFREG|0700, st_size=2125480, ...}) = 0
fstatfs(7, {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=13696364, f_bfree=8172018, f_bavail=8137970, f_files=1732608, f_ffree=1632831, f_fsid={val=[0x6b97b642, 0x8c5d4f77]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_NOSUID|ST_NODEV|ST_NOATIME}) = 0
pread64(7, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 64, 0) = 64
mmap(NULL, 520, PROT_READ, MAP_PRIVATE, 7, 0) = 0x75bab1d000
mmap(NULL, 5904, PROT_READ, MAP_PRIVATE, 7, 0x206000) = 0x75bab1b000
mmap(NULL, 8256, PROT_READ, MAP_PRIVATE, 7, 0x203000) = 0x75bab18000
mmap(NULL, 93653, PROT_READ, MAP_PRIVATE, 7, 0x1a000) = 0x75bab01000
newfstatat(AT_FDCWD, "/data", {st_mode=S_IFDIR|0771, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data", {st_mode=S_IFDIR|0771, st_size=32768, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, 0) = 0
openat(AT_FDCWD, "/data/data/com.termux/files/usr/lib/libc.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/system/lib64/libc.so", O_RDONLY|O_CLOEXEC) = 8
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75baaff000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75baaff000, 8192, "bionic_alloc_lob") = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75baafd000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75baafd000, 8192, "bionic_alloc_lob") = 0
readlinkat(AT_FDCWD, "/proc/self/fd/8", "/apex/com.android.runtime/lib64/"..., 4096) = 46
munmap(0x75baafd000, 8192) = 0
munmap(0x75baaff000, 8192) = 0
fstat(8, {st_mode=S_IFREG|0644, st_size=1240744, ...}) = 0
fstatfs(8, {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=965354, f_bfree=45029, f_bavail=45029, f_files=245280, f_ffree=240111, f_fsid={val=[0x50816e5d, 0x90ad978f]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RDONLY|ST_RELATIME}) = 0
pread64(8, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\20\4\0\0\0\0\0"..., 64, 0) = 64
mmap(NULL, 632, PROT_READ, MAP_PRIVATE, 8, 0) = 0x75bab00000
mmap(NULL, 5712, PROT_READ, MAP_PRIVATE, 8, 0x12e000) = 0x75baafe000
mmap(NULL, 1552, PROT_READ, MAP_PRIVATE, 8, 0xf1000) = 0x75baafd000
mmap(NULL, 17235, PROT_READ, MAP_PRIVATE, 8, 0xb000) = 0x75baaf8000
openat(AT_FDCWD, "/data/data/com.termux/files/usr/lib/libdl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/system/lib64/libdl.so", O_RDONLY|O_CLOEXEC) = 9
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75baaf6000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75baaf6000, 8192, "bionic_alloc_lob") = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75baaf4000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75baaf4000, 8192, "bionic_alloc_lob") = 0
readlinkat(AT_FDCWD, "/proc/self/fd/9", "/apex/com.android.runtime/lib64/"..., 4096) = 47
munmap(0x75baaf4000, 8192) = 0
munmap(0x75baaf6000, 8192) = 0
fstat(9, {st_mode=S_IFREG|0644, st_size=14016, ...}) = 0
fstatfs(9, {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=965354, f_bfree=45029, f_bavail=45029, f_files=245280, f_ffree=240111, f_fsid={val=[0x50816e5d, 0x90ad978f]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RDONLY|ST_RELATIME}) = 0
pread64(9, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\20\0\0\0\0\0\0"..., 64, 0) = 64
mmap(NULL, 632, PROT_READ, MAP_PRIVATE, 9, 0) = 0x75baaf7000
mmap(NULL, 2368, PROT_READ, MAP_PRIVATE, 9, 0x3000) = 0x75baaf6000
mmap(NULL, 272, PROT_READ, MAP_PRIVATE, 9, 0x2000) = 0x75baaf5000
mmap(NULL, 3594, PROT_READ, MAP_PRIVATE, 9, 0) = 0x75baaf4000
mmap(NULL, 3665920, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75ba775000
munmap(0x75ba775000, 118784) = 0
munmap(0x75baa9c000, 360448) = 0
mmap(0x75ba792000, 263092, PROT_READ, MAP_PRIVATE|MAP_FIXED, 8, 0) = 0x75ba792000
mmap(0x75ba7d3000, 684288, PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 8, 0x41000) = 0x75ba7d3000
mmap(0x75ba87b000, 38704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 8, 0xe9000) = 0x75ba87b000
mmap(0x75ba885000, 2191360, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x75ba885000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75ba885000, 2191360, ".bss") = 0
mmap(NULL, 520192, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75ba713000
munmap(0x75ba713000, 286720) = 0
munmap(0x75ba75c000, 221184) = 0
mmap(0x75ba759000, 4928, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x75ba759000
mmap(0x75ba75b000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1000) = 0x75ba75b000
mmap(NULL, 2617344, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75ba4da000
munmap(0x75ba4da000, 372736) = 0
munmap(0x75ba740000, 102400) = 0
mmap(0x75ba535000, 1949816, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 7, 0) = 0x75ba535000
mmap(0x75ba712000, 173728, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 7, 0x1dc000) = 0x75ba712000
mmap(0x75ba73d000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x75ba73d000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75ba73d000, 12288, ".bss") = 0
mmap(NULL, 520192, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75ba4b6000
munmap(0x75ba4b6000, 94208) = 0
munmap(0x75ba4fe000, 225280) = 0
mmap(0x75ba4cd000, 68979, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 6, 0) = 0x75ba4cd000
mmap(0x75ba4fc000, 4104, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 6, 0x1f000) = 0x75ba4fc000
mmap(NULL, 520192, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75ba44e000
munmap(0x75ba44e000, 237568) = 0
munmap(0x75ba4b9000, 81920) = 0
mmap(0x75ba488000, 115880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 5, 0) = 0x75ba488000
mmap(0x75ba4b7000, 4104, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0x1f000) = 0x75ba4b7000
mmap(NULL, 1568768, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75ba309000
munmap(0x75ba309000, 241664) = 0
munmap(0x75ba45c000, 180224) = 0
mmap(0x75ba344000, 1136948, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 4, 0) = 0x75ba344000
mmap(0x75ba45a000, 4104, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0x115000) = 0x75ba45a000
mmap(NULL, 520192, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75ba2c5000
munmap(0x75ba2c5000, 323584) = 0
munmap(0x75ba318000, 180224) = 0
mmap(0x75ba314000, 2916, PROT_READ, MAP_PRIVATE|MAP_FIXED, 9, 0) = 0x75ba314000
mmap(0x75ba315000, 672, PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 9, 0x1000) = 0x75ba315000
mmap(0x75ba316000, 384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 9, 0x2000) = 0x75ba316000
mmap(0x75ba317000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x75ba317000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75ba317000, 4096, ".bss") = 0
newfstatat(AT_FDCWD, "/data", {st_mode=S_IFDIR|0771, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data", {st_mode=S_IFDIR|0771, st_size=32768, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, 0) = 0
newfstatat(AT_FDCWD, "/data", {st_mode=S_IFDIR|0771, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data", {st_mode=S_IFDIR|0771, st_size=32768, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, 0) = 0
newfstatat(AT_FDCWD, "/data", {st_mode=S_IFDIR|0771, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data", {st_mode=S_IFDIR|0771, st_size=32768, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, 0) = 0
newfstatat(AT_FDCWD, "/data", {st_mode=S_IFDIR|0771, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data", {st_mode=S_IFDIR|0771, st_size=32768, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, 0) = 0
newfstatat(AT_FDCWD, "/data", {st_mode=S_IFDIR|0771, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data", {st_mode=S_IFDIR|0771, st_size=32768, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr", {st_mode=S_IFDIR|0700, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}, 0) = 0
mmap(NULL, 409600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75ba2b0000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75ba2b0000, 409600, "linker_alloc") = 0
mprotect(0x5f7bd71000, 12288, PROT_READ) = 0
mprotect(0x75ba75b000, 4096, PROT_READ) = 0
mprotect(0x75ba45a000, 4096, PROT_READ) = 0
mprotect(0x75ba4b7000, 4096, PROT_READ) = 0
mprotect(0x75ba4fc000, 4096, PROT_READ) = 0
mprotect(0x75ba712000, 167936, PROT_READ) = 0
mprotect(0x75ba87e000, 28672, PROT_READ) = 0
mprotect(0x75ba316000, 4096, PROT_READ) = 0
close(3) = 0
close(4) = 0
close(5) = 0
close(6) = 0
close(7) = 0
close(8) = 0
close(9) = 0
munmap(0x75baaf8000, 17235) = 0
munmap(0x75baafd000, 1552) = 0
munmap(0x75baafe000, 5712) = 0
munmap(0x75bab00000, 632) = 0
munmap(0x75bab1e000, 8267) = 0
munmap(0x75bab21000, 7072) = 0
munmap(0x75bab23000, 2464) = 0
munmap(0x75bab24000, 520) = 0
munmap(0x75bab25000, 10246) = 0
munmap(0x75bab28000, 6096) = 0
munmap(0x75bab2a000, 2464) = 0
munmap(0x75bab2b000, 520) = 0
munmap(0x75baaf4000, 3594) = 0
munmap(0x75baaf5000, 272) = 0
munmap(0x75baaf6000, 2368) = 0
munmap(0x75baaf7000, 632) = 0
munmap(0x75bab2c000, 8023) = 0
munmap(0x75bab2e000, 6608) = 0
munmap(0x75bab30000, 2432) = 0
munmap(0x75bab31000, 520) = 0
munmap(0x75bab01000, 93653) = 0
munmap(0x75bab18000, 8256) = 0
munmap(0x75bab1b000, 5904) = 0
munmap(0x75bab1d000, 520) = 0
munmap(0x75bab32000, 2809) = 0
munmap(0x75bab33000, 7264) = 0
munmap(0x75bab35000, 2272) = 0
munmap(0x75bac69000, 520) = 0
mmap(NULL, 20480, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x75bab31000
mprotect(0x75bab32000, 12288, PROT_READ|PROT_WRITE) = 0
rt_sigprocmask(SIG_BLOCK, ~[RT_1 RT_2 RT_3 RT_4 RT_5], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
munmap(0x75bbde7000, 12288) = 0
mprotect(0x75ba889000, 4096, PROT_READ) = 0
mprotect(0x75ba889000, 4096, PROT_READ|PROT_WRITE) = 0
faccessat(AT_FDCWD, "/dev/urandom", R_OK) = 0
getrandom("\x30\xf7\xe0\xfa\x9c\xea\xaa\xc8\xfd\x08\x93\x99\xed\x15\xef\x44\x50\x61\x36\x8e\x23\x7c\x35\x62\x66\x18\xed\x2e\xb6\xff\x65\xed"..., 40, GRND_NONBLOCK) = 40
mmap(NULL, 1104, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bbde9000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bbde9000, 1104, "arc4random data") = 0
mprotect(0x75ba889000, 4096, PROT_READ) = 0
openat(AT_FDCWD, "/sys/kernel/mm/transparent_hugepage/enabled", O_RDONLY) = -1 ENOENT (No such file or directory)
mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75ba0b0000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75ba0b0000, 2097152, "libc_malloc") = 0
munmap(0x75ba0b0000, 2097152) = 0
mmap(NULL, 4190208, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75b9eb1000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75b9eb1000, 4190208, "libc_malloc") = 0
munmap(0x75b9eb1000, 1372160) = 0
munmap(0x75ba200000, 720896) = 0
mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75b9e00000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75b9e00000, 2097152, "libc_malloc") = 0
mmap(NULL, 4194304, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75b9a00000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75b9a00000, 4194304, "libc_malloc") = 0
madvise(0x75b9e05000, 4096, MADV_DONTNEED) = 0
newfstatat(AT_FDCWD, "/dev/__properties__", {st_mode=S_IFDIR|0711, st_size=3800, ...}, 0) = 0
faccessat(AT_FDCWD, "/dev/__properties__/property_info", R_OK) = 0
openat(AT_FDCWD, "/dev/__properties__/property_info", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=37416, ...}) = 0
mmap(NULL, 37416, PROT_READ, MAP_SHARED, 3, 0) = 0x75bab27000
close(3) = 0
mmap(NULL, 7440, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bbde7000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bbde7000, 7440, "System property context nodes") = 0
openat(AT_FDCWD, "/dev/__properties__/properties_serial", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=196608, ...}) = 0
mmap(NULL, 196608, PROT_READ, MAP_SHARED, 3, 0) = 0x75baaf7000
close(3) = 0
openat(AT_FDCWD, "/dev/__properties__/u:object_r:debug_prop:s0", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=196608, ...}) = 0
mmap(NULL, 196608, PROT_READ, MAP_SHARED, 3, 0) = 0x75baac7000
close(3) = 0
mprotect(0x75ba889000, 4096, PROT_READ|PROT_WRITE) = 0
openat(AT_FDCWD, "/dev/__properties__/u:object_r:default_prop:s0", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=196608, ...}) = 0
mmap(NULL, 196608, PROT_READ, MAP_SHARED, 3, 0) = 0x75ba762000
close(3) = 0
openat(AT_FDCWD, "/dev/__properties__/u:object_r:heapprofd_prop:s0", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=196608, ...}) = 0
mmap(NULL, 196608, PROT_READ, MAP_SHARED, 3, 0) = 0x75ba505000
close(3) = 0
rt_sigaction(SIGRT_4, {sa_handler=0x75ba7d43b4, sa_mask=[], sa_flags=0}, NULL, 8) = 0
mprotect(0x75ba889000, 4096, PROT_READ) = 0
getuid() = 10272
prctl(PR_GET_DUMPABLE) = 1 (SUID_DUMP_USER)
openat(AT_FDCWD, "/system/lib64/libnetd_client.so", O_RDONLY|O_CLOEXEC) = 3
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75baac5000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75baac5000, 8192, "bionic_alloc_lob") = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75baac3000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75baac3000, 8192, "bionic_alloc_lob") = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/system/lib64/libnetd_client.so", 4096) = 31
munmap(0x75baac3000, 8192) = 0
munmap(0x75baac5000, 8192) = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=24064, ...}) = 0
fstatfs(3, {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=965354, f_bfree=45029, f_bavail=45029, f_files=245280, f_ffree=240111, f_fsid={val=[0x50816e5d, 0x90ad978f]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RDONLY|ST_NODEV|ST_RELATIME}) = 0
pread64(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0 \0\0\0\0\0\0"..., 64, 0) = 64
mmap(NULL, 632, PROT_READ, MAP_PRIVATE, 3, 0) = 0x75bac69000
mmap(NULL, 5632, PROT_READ, MAP_PRIVATE, 3, 0x5000) = 0x75baac5000
mmap(NULL, 480, PROT_READ, MAP_PRIVATE, 3, 0x5000) = 0x75baac4000
mmap(NULL, 6730, PROT_READ, MAP_PRIVATE, 3, 0) = 0x75baac2000
openat(AT_FDCWD, "/system/lib64/libc++.so", O_RDONLY|O_CLOEXEC) = 4
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75baac0000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75baac0000, 8192, "bionic_alloc_lob") = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75baabe000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75baabe000, 8192, "bionic_alloc_lob") = 0
readlinkat(AT_FDCWD, "/proc/self/fd/4", "/system/lib64/libc++.so", 4096) = 23
munmap(0x75baabe000, 8192) = 0
munmap(0x75baac0000, 8192) = 0
fstat(4, {st_mode=S_IFREG|0644, st_size=841832, ...}) = 0
fstatfs(4, {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=965354, f_bfree=45029, f_bavail=45029, f_files=245280, f_ffree=240111, f_fsid={val=[0x50816e5d, 0x90ad978f]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RDONLY|ST_NODEV|ST_RELATIME}) = 0
pread64(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\5\0\0\0\0\0"..., 64, 0) = 64
mmap(NULL, 632, PROT_READ, MAP_PRIVATE, 4, 0) = 0x75baac1000
mmap(NULL, 2576, PROT_READ, MAP_PRIVATE, 4, 0xcd000) = 0x75baac0000
mmap(NULL, 6720, PROT_READ, MAP_PRIVATE, 4, 0xc9000) = 0x75baabe000
mmap(NULL, 104547, PROT_READ, MAP_PRIVATE, 4, 0x12000) = 0x75baaa4000
openat(AT_FDCWD, "/system/lib64/libm.so", O_RDONLY|O_CLOEXEC) = 5
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75baaa2000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75baaa2000, 8192, "bionic_alloc_lob") = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75baaa0000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75baaa0000, 8192, "bionic_alloc_lob") = 0
readlinkat(AT_FDCWD, "/proc/self/fd/5", "/apex/com.android.runtime/lib64/"..., 4096) = 46
munmap(0x75baaa0000, 8192) = 0
munmap(0x75baaa2000, 8192) = 0
fstat(5, {st_mode=S_IFREG|0644, st_size=229376, ...}) = 0
fstatfs(5, {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=965354, f_bfree=45029, f_bavail=45029, f_files=245280, f_ffree=240111, f_fsid={val=[0x50816e5d, 0x90ad978f]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RDONLY|ST_RELATIME}) = 0
pread64(5, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0 \1\0\0\0\0\0"..., 64, 0) = 64
mmap(NULL, 632, PROT_READ, MAP_PRIVATE, 5, 0) = 0x75baaa3000
mmap(NULL, 6592, PROT_READ, MAP_PRIVATE, 5, 0x37000) = 0x75baaa1000
mmap(NULL, 464, PROT_READ, MAP_PRIVATE, 5, 0x37000) = 0x75baaa0000
mmap(NULL, 6305, PROT_READ, MAP_PRIVATE, 5, 0x2000) = 0x75baa9e000
mmap(NULL, 1306624, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75b98c1000
munmap(0x75b98c1000, 319488) = 0
munmap(0x75b99de000, 139264) = 0
mmap(0x75b990f000, 325652, PROT_READ, MAP_PRIVATE|MAP_FIXED, 4, 0) = 0x75b990f000
mmap(0x75b995f000, 463152, PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 4, 0x50000) = 0x75b995f000
mmap(0x75b99d1000, 36800, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0xc2000) = 0x75b99d1000
mmap(0x75b99da000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x75b99da000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75b99da000, 16384, ".bss") = 0
mmap(NULL, 520192, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75ba231000
munmap(0x75ba231000, 81920) = 0
munmap(0x75ba27e000, 204800) = 0
mmap(0x75ba245000, 69956, PROT_READ, MAP_PRIVATE|MAP_FIXED, 5, 0) = 0x75ba245000
mmap(0x75ba257000, 143728, PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 5, 0x12000) = 0x75ba257000
mmap(0x75ba27b000, 4808, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0x36000) = 0x75ba27b000
mmap(0x75ba27d000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x75ba27d000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75ba27d000, 4096, ".bss") = 0
mmap(NULL, 520192, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75b9890000
munmap(0x75b9890000, 323584) = 0
munmap(0x75b98e6000, 167936) = 0
mmap(0x75b98df000, 7124, PROT_READ, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x75b98df000
mmap(0x75b98e1000, 7600, PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0x2000) = 0x75b98e1000
mmap(0x75b98e3000, 4952, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x4000) = 0x75b98e3000
mmap(0x75b98e5000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x75b98e5000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75b98e5000, 4096, ".bss") = 0
mprotect(0x75b98e4000, 4096, PROT_READ) = 0
mprotect(0x75b99d2000, 32768, PROT_READ) = 0
mprotect(0x75ba27c000, 4096, PROT_READ) = 0
close(3) = 0
close(4) = 0
close(5) = 0
munmap(0x75baa9e000, 6305) = 0
munmap(0x75baaa0000, 464) = 0
munmap(0x75baaa1000, 6592) = 0
munmap(0x75baaa3000, 632) = 0
munmap(0x75baaa4000, 104547) = 0
munmap(0x75baabe000, 6720) = 0
munmap(0x75baac0000, 2576) = 0
munmap(0x75baac1000, 632) = 0
munmap(0x75baac2000, 6730) = 0
munmap(0x75baac4000, 480) = 0
munmap(0x75baac5000, 5632) = 0
munmap(0x75bac69000, 632) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99da030, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99dd080, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99da030, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x75b99da030, FUTEX_WAKE_PRIVATE, 2147483647) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x75bac69000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x75bac69000, 4096, "atexit handlers") = 0
mprotect(0x75bac69000, 4096, PROT_READ) = 0
munmap(0x75bab36000, 409600) = 0
prctl(PR_GET_DUMPABLE) = 1 (SUID_DUMP_USER)
prctl(PR_GET_DUMPABLE) = 1 (SUID_DUMP_USER)
prctl(PR_GET_DUMPABLE) = 1 (SUID_DUMP_USER)
prctl(PR_GET_DUMPABLE) = 1 (SUID_DUMP_USER)
prctl(PR_GET_DUMPABLE) = 1 (SUID_DUMP_USER)
futex(0x75ba885618, FUTEX_WAKE_PRIVATE, 2147483647) = 0
rt_sigprocmask(SIG_SETMASK, ~[ILL TRAP BUS FPE SEGV RT_1 RT_2 RT_3 RT_4 RT_5], [RTMIN], 8) = 0
rt_sigaction(SIGILL, {sa_handler=0x75ba5b9e68, sa_mask=~[ILL TRAP BUS FPE SEGV], sa_flags=0}, {sa_handler=0x75bbe4105c, sa_mask=~[KILL STOP], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, 8) = 0
rt_sigprocmask(0xba73c6b8 /* SIG_??? */, NULL, ~[ILL TRAP BUS FPE KILL SEGV STOP RT_1 RT_2 RT_3 RT_4 RT_5], 8) = 0
rt_sigaction(SIGILL, {sa_handler=0x75bbe4105c, sa_mask=~[KILL STOP], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], ~[ILL TRAP BUS FPE KILL SEGV STOP RT_1 RT_2 RT_3 RT_4 RT_5], 8) = 0
mprotect(0x75baca2000, 409600, PROT_READ) = 0
mprotect(0x75bad76000, 409600, PROT_READ) = 0
mprotect(0x75babff000, 409600, PROT_READ) = 0
mprotect(0x75bab9a000, 409600, PROT_READ) = 0
mprotect(0x75bac69000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x75bac69000, 4096, PROT_READ) = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=NULL} ---
rt_sigaction(SIGSEGV, NULL, {sa_handler=0x75bbe4105c, sa_mask=~[KILL STOP], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, 8) = 0
prctl(PR_GET_NO_NEW_PRIVS, 0, 0, 0, 0) = 0
prctl(PR_GET_NAME, "kmod") = 0
getpid() = 29462
openat(AT_FDCWD, "/proc/self/comm", O_RDONLY|O_CLOEXEC) = 3
read(3, "kmod\n", 17) = 5
close(3) = 0
gettid() = 29462
socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3
openat(AT_FDCWD, "/dev/__properties__/u:object_r:wifi_log_prop:s0", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 4
fstat(4, {st_mode=S_IFREG|0444, st_size=196608, ...}) = 0
mmap(NULL, 196608, PROT_READ, MAP_SHARED, 4, 0) = 0x75bab6a000
close(4) = 0
connect(3, {sa_family=AF_UNIX, sun_path="/dev/socket/logdw"}, 110) = 0
writev(3, [{iov_base="\4", iov_len=1}, {iov_base="\26s", iov_len=2}, {iov_base="\371\6\226a>\5\2622", iov_len=8}, {iov_base="\7", iov_len=1}, {iov_base="libc\0", iov_len=5}, {iov_base="Fatal signal 11 (SIGSEGV), code "..., iov_len=102}], 6) = 119
close(3) = 0
gettid() = 29462
prctl(PR_SET_DUMPABLE, SUID_DUMP_USER) = 0
prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY) = -1 EINVAL (Invalid argument)
clone(child_stack=0x75bad38fe0, flags=CLONE_VM|CLONE_SIGHAND|CLONE_THREAD|CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID, child_tidptr=0x75bbde4c24) = 29463
futex(0x75bbde4c24, FUTEX_WAIT, 4294967295, NULL) = 0
futex(0x75bbde4c24, FUTEX_WAIT, 29463, NULL) = -1 EAGAIN (Try again)
rt_sigaction(SIGSEGV, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTART}, {sa_handler=0x75bbe4105c, sa_mask=~[KILL STOP], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, 8) = 0
rt_sigaction(SIGSEGV, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTART}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTART}, 8) = 0
getpid() = 29462
gettid() = 29462
rt_tgsigqueueinfo(29462, 29462, SIGSEGV, {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=NULL}) = 0
rt_sigreturn({mask=[RTMIN]}) = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=NULL} ---`
+++ killed by SIGSEGV +++
any solution for ddcutil related erros after building from dev branch
What errors was that? The ones you posted in a comment earlier?
It is hard to help without any context. I don't know if you have applied any patches, or how you are building package
The index error can probably be fixed by substituting it for strchr, and the wordexp error by adding a dependency and linking against libandroid-wordexp
any solution for ddcutil related erros after building from dev branch
What errors was that? The ones you posted in a comment earlier?
It is hard to help without any context. I don't know if you have applied any patches, or how you are building package
The index error can probably be fixed by substituting it for strchr, and the wordexp error by adding a dependency and linking against libandroid-wordexp
Index error solved after your suggestion Below contains new errors after using dev branch https://github.com/termux/termux-packages/issues/7936#issuecomment-968610964
Some tips from developer https://github.com/rockowitz/ddcutil/issues/234
I ain't programmer. How to linking against libandroid-wordexp
The last error, ld.lld: error: undefined symbol: __assert_fail
seem to be due to ddcutil using a glibc specific function (__assert_fail
). I don't know what the proper fix for that would be.
I ain't programmer. How to linking against libandroid-wordexp
Look at existing packages to see how they do it: https://github.com/termux/termux-packages/search?q=wordexp
ld.lld error undefined symbol: __assert_fail. This is a Linux specific function used, in Linux, by the C header file macros assert() etc. Trying to use assert() within macro TRACED_ASSERT() etc. does not work. If you can't find an equivalent function in termux, I suggest you use abort() to unconditionally kill the application.
What does above mean
Re libkmod:
valgrind output is much easier to read than strace. Can you provide it?
libkmod is not strictly necessary. It is used only in the initial courtesy check at ddcutil startup that i2c-dev is loaded. Failures because it isn't loaded proved confusing to some users. In fact, it is iftested out in the BSD code. See src/app_ddcutil/main.c at approximately lines 174/235. See rockowitz/ddcutil#178 for the history.
Re: index()
I have replaced it with strchr(), which is portable.
Re: __assert_fail()
Patching the code to use abort() will work just as well for you.
If you can indeed get ddcutil to work on termux I will provide a macro TARGET_TERMUX in the code, similar to TARGET_LINUX and TARGET_BSD, for your changes. However, I remain unconvinced that ddcutil will do anything useful in termux. Have you verified that your video driver provides a /dev/i2c device for DDC communication? The simplest way to check is to use i2cdetect from package i2c-tools. As I said earlier, you need for both slave addresses x50 (EDID) and x37 (DDC) to be active.
Lastly, I would suggest that long program output be put in an attachment than included in the comments themselves. For me at least it makes long comment chains like this easier to digest.
Transfer this package to root packages as i2c devices are only accesible on rooted device.i dont have rooted phone so i will not be able to continue to build this package
Package description
ddcutil is a Linux program for querying and changing monitor settings, such as brightness and color levels. Indisposable on Android when it comes to change settings on external monitors and especially with raspberry pi.
Home page URL
www.ddcutil.com
Source code URL
https://github.com/rockowitz/ddcutil
Packaging policy acknowledgement
Additional information
not familiar with compiling