95d0149704
* boinc: update to 7.16.11 * boinc: update patches for 7.16.11 * boinc: disable switcher termux/termux-packages#5668 * boinc: add oobe improvement patches * boinc: simplify disable-whetneon.patch termux/termux-packages#5795 The old patch is getting hard to maintain because someone think it is a good idea to support non-NEON Android devices in 2020. The new patch simplify things by only disable 32bit ARM host detection so that whetneon and whetvfp will not be built which can make the client too complex. Apply this patch and please dont use "-DANDROID" and "--host arm-linux*" * boinc: fix 32bit compatibility on 64bit Termux Remove blocking request 32bit executables and fix it instead. Add patch that unset LD_PRELOAD environment variable before running 32bit BOINC executables. This is applicable for 64bit Android devices running BOINC on Termux. No manual unset from user is needed. * boinc: simplify disable-whetneon.patch v2
38 lines
1.4 KiB
Diff
38 lines
1.4 KiB
Diff
diff -uNr boinc-client_release-7.16-7.16.11/client/app_start.cpp boinc-client_release-7.16-7.16.11.mod/client/app_start.cpp
|
|
--- boinc-client_release-7.16-7.16.11/client/app_start.cpp 2020-08-30 16:04:59.000000000 +0800
|
|
+++ boinc-client_release-7.16-7.16.11.mod/client/app_start.cpp 2020-09-13 21:35:44.960942100 +0800
|
|
@@ -94,6 +94,9 @@
|
|
|
|
#include "app.h"
|
|
|
|
+#ifdef __ANDROID__
|
|
+#include <stdlib.h> // getenv(), setenv(), unsetenv()
|
|
+#endif
|
|
|
|
#ifdef _WIN32
|
|
// Dynamically link to these functions at runtime;
|
|
@@ -1143,6 +1146,23 @@
|
|
//
|
|
umask(2);
|
|
retval = execv(switcher_path, argv);
|
|
+#ifdef __ANDROID__
|
|
+#if defined(__aarch64__)
|
|
+ } else if (strstr(exec_name, "arm-android-linux-gnu")) {
|
|
+#elif defined(__x86_64__)
|
|
+ } else if (strstr(exec_name, "x86-android-linux-gnu")) {
|
|
+#endif
|
|
+ // Fix Termux 32bit compatibility on 64bit devices
|
|
+ argv[0] = buf;
|
|
+ parse_command_line(cmdline, argv+1);
|
|
+ // backup and unset LD_PRELOAD var
|
|
+ char *old_env = getenv("LD_PRELOAD");
|
|
+ unsetenv("LD_PRELOAD");
|
|
+ retval = execv(buf, argv);
|
|
+ // set LD_PRELOAD var back
|
|
+ setenv("LD_PRELOAD", old_env, 1);
|
|
+ free(old_env);
|
|
+#endif // __ANDROID__
|
|
} else {
|
|
argv[0] = buf;
|
|
parse_command_line(cmdline, argv+1);
|