Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Termux compilation tips #48

Open
Manamama opened this issue May 17, 2024 · 1 comment
Open

Termux compilation tips #48

Manamama opened this issue May 17, 2024 · 1 comment

Comments

@Manamama
Copy link

Manamama commented May 17, 2024

I needed it for pytorch compilation. Spent half a day trying to compile this, as dependency. Tips for Termux users only:

  1. If you're compiling this code on Termux and encounter an error about the missing 'unistd.h' file, you might need to install the 'ndk-sysroot'. It has it natively, one of very few apt packages that does not get installed to /opt or .local/lib
  2. Remove this code security cruft first, as it gets stuck eith smth Google. Yes. Thus :
alias cmakeinstall='rm CMakeCache.txt && echo "Removing silly Werror 🪲 directives en masse..." & time find . -type f -exec sed -i "s/-Werror//g" {} \; && export CFLAGS="-fuse-ld=lld  -pthread -g -march=armv8-a -mtune=cortex-a53 -Wall -Wextra"  &&  echo "Starting compilation 👩‍💻 proper... "&& cmake -DCMAKE_INSTALL_PREFIX=$PREFIX . && time make -j4 && make install' 

is my newest one liner.

Ref:

~/downloads/pthreadpool $ uname -a            Linux localhost 4.14.186+ #1 SMP PREEMPT Thu Mar 17 16:28:22 CST 2022 aarch64 Android       ~/downloads/pthreadpool $

PS. You may test it with:

#include <stdio.h>                            #include <pthreadpool.h>                                                                    void task(void* arg, size_t i) {                  printf("Hello from task %zu\n", i);       }                                                                                           int main() {                                      pthreadpool_t pool = pthreadpool_create(4);                                                                                               pthreadpool_parallelize_1d(pool, (pthreadpool_task_1d_t)task, NULL, 10, 0);                                                               pthreadpool_destroy(pool);                    return 0;                                 }

with : gcc -o test4 test4.c -pthread -lpthreadpool :
~/.../pytorch/build $ ./test4 Hello from task 3 Hello from task 4 Hello from task 5 Hello from task 2 Hello from task 1 Hello from task 9 Hello from task 7 Hello from task 0 Hello from task 6 Hello from task 8 ~/.../pytorch/build $

...

@Manamama
Copy link
Author

And this is needed:
sed -i '3i set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=unused-but-set-variable")' CMakeLists.txt

To covert this fatal error into warning only:

/data/data/com.termux/files/home/downloads/pthreadpool/googlebenchmark-source/src/complexity.cc:85:10: warning: variable 'sigma_gn' set but not used [-Wunused-but-set-variable]
   85 |   double sigma_gn = 0.0;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant