Another thing I found is that Termux uses clang instead of gcc.
I merged the changes suggested in comment #10. The compilation went a lot further with ECL 16.1.3. But it failed with two errors:
ld.lld: error: undefined symbol: getdtablesize
>>> referenced by run-program.c:106
>>> run-program.o:(closefrom_fallback)
>>> referenced by run-program.c:106
>>> run-program.o:(closefds_from)
ld.lld: error: undefined symbol: current_thread
>>> referenced by arm64-assem.S:147
>>> arm64-assem.o:(call_into_lisp)
>>> referenced by arm64-assem.S:148
>>> arm64-assem.o:(call_into_lisp)
clang-13: error: linker command failed with exit code 1 (use -v to see invocation)
It seems that getdtablesize is deprecated so they don't include it. I went to the run-program.c and force the call to
maxfd = sysconf(_SC_OPEN_MAX)-1;
instead, which got rid of one error. However, I don't know how to workaround the current_thread missing symbol.
Another thing I found is that Termux uses clang instead of gcc.
I merged the changes suggested in comment #10. The compilation went a lot further with ECL 16.1.3. But it failed with two errors: o:(closefrom_ fallback) o:(closefds_ from)
ld.lld: error: undefined symbol: getdtablesize
>>> referenced by run-program.c:106
>>> run-program.
>>> referenced by run-program.c:106
>>> run-program.
ld.lld: error: undefined symbol: current_thread o:(call_ into_lisp) o:(call_ into_lisp)
>>> referenced by arm64-assem.S:147
>>> arm64-assem.
>>> referenced by arm64-assem.S:148
>>> arm64-assem.
clang-13: error: linker command failed with exit code 1 (use -v to see invocation)
It seems that getdtablesize is deprecated so they don't include it. I went to the run-program.c and force the call to _SC_OPEN_ MAX)-1;
maxfd = sysconf(
instead, which got rid of one error. However, I don't know how to workaround the current_thread missing symbol.
Attached are the logs.