termux-pacman / glibc-packages Goto Github PK
View Code? Open in Web Editor NEWGlibc packages for termux
License: MIT License
Glibc packages for termux
License: MIT License
One of the basics of running pulseaudio and mesa
No response
https://gitlab.freedesktop.org/dbus/dbus
One of the basics of running pulseaudio and mesa
Building xfce4 requires this package
No response
https://download.gnome.org/sources/gobject-introspection/1.78/gobject-introspection-1.78.1.tar.xz
export LANG=zh_CN.UTF-8;
Running multilingual software still displays an English interface.
termux-info:
```gpkg-dev
file should be placed to glibc-2.38/sysdeps/unix/sysv/linux/aarch64/ucontext_i.h
also missing "-std=XX" in CFLAGS, I used gnu2x
I know that there's no release yeat.
termux-info:
Compile the demo I provided in the termux native and proot environment, the run is success, and the run prompt compiled in the glibc environment has no permission
testmprotect.c
`#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <malloc.h>
#include <sys/mman.h>
static void domp( void *, long );
static void domp( void *pmem, long psz ) {
if (mprotect( pmem, psz, PROT_READ | PROT_WRITE | PROT_EXEC ) == -1) {
perror( "mprotect failed" );
} else {
printf( "mprotect success\n" );
}
}
int main( int argc, char *argv[] ) {
long lpsz;
void *lmem;
lpsz = sysconf(_SC_PAGESIZE);
printf( "Page size is %ld\n", lpsz );
if ((lmem = memalign( lpsz, lpsz )) == NULL) {
perror( "memalign failed" );
exit (-1);
}
printf( "Memory allocated by memalign() at %p\n", lmem );
domp( lmem, lpsz );
return 0;
}
`
termux-info:
This error occurs when running glibc-based make
commands.
Error:
rt_sigprocmask(SIG_BLOCK, [HUP INT QUIT TERM XCPU XFSZ], NULL, 8) = 0
newfstatat(AT_FDCWD, "/data/data/com.termux/files/usr/glibc/bin/g++", {st_mode=S_IFREG|0755, st_size=1118312, ...}, 0) = 0
geteuid() = 10301
getegid() = 10301
getuid() = 10301
getgid() = 10301
faccessat(AT_FDCWD, "/data/data/com.termux/files/usr/glibc/bin/g++", X_OK) = 0
mmap(NULL, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x788b7a7000
rt_sigprocmask(SIG_BLOCK, ~[], [HUP INT QUIT TERM CHLD XCPU XFSZ], 8) = 0
clone(child_stack=0x788b7b0000, flags=CLONE_VM|CLONE_VFORK|SIGCHLD) = ?
+++ killed by SIGSYS +++
[1] 22714 invalid system call strace make
If you run with proot
then everything is ok. I'm trying to find the cause of this error, but so far to no avail.
The previous version of gpkg-dev had the header file hwcap.h, which is no longer present after the update.
termux-info:
```118
when trying to run glibc glxgears:
socket(AF_INET, SOCK_STREAM|SOCK_CLOEXEC, IPPROTO_TCP) = 3
setsockopt(3, SOL_TCP, TCP_NODELAY, [1], 4) = 0
setsockopt(3, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
connect(3, {sa_family=AF_INET, sin_port=htons(6000), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 ECONNREFUSED (Connection refused)
close(3) = 0
newfstatat(1, "", {st_mode=S_IFCHR|0600, st_rdev=makedev(0x88, 0), ...}, AT_EMPTY_PATH) = 0
write(1, "Error: couldn't open display :0\n", 32Error: couldn't open display :0
) = 32
getpid() = 32622
exit_group(-1) = ?
+++ exited with 255 +++
bionic glxgears run fine
tried multiple versions of termux-x11 (didn't try xvnc or xvfb)
proot didn't fix this issue
Termux Variables:
TERMUX_API_APP__VERSION_NAME=0.50.1
TERMUX_APP_PACKAGE_MANAGER=pacman TERMUX_APP__AM_SOCKET_SERVER_ENABLED=true
TERMUX_APP__APK_PATH=/data/app/~~9Egdt-B4sATprQx_dgjKfw==/com.termux-grKIc17STxXAPjq07w5bOA==/base.apk
TERMUX_APP__APK_RELEASE=GITHUB TERMUX_APP__FILES_DIR=/data/user/0/com.termux/files
TERMUX_APP__IS_DEBUGGABLE_BUILD=true
TERMUX_APP__IS_INSTALLED_ON_EXTERNAL_STORAGE=false TERMUX_APP__PACKAGE_MANAGER=apt
TERMUX_APP__PACKAGE_NAME=com.termux
TERMUX_APP__PACKAGE_VARIANT=apt-android-7 TERMUX_APP__PID=28363
TERMUX_APP__SE_FILE_CONTEXT=u:object_r:app_data_file:s0:c37,c257,c512,c768 TERMUX_APP__SE_INFO=default:targetSdkVersion=28:complete
TERMUX_APP__SE_PROCESS_CONTEXT=u:r:untrusted_app_27:s0:c37,c257,c512,c768 TERMUX_APP__TARGET_SDK=28
TERMUX_APP__UID=10293
TERMUX_APP__USER_ID=0 TERMUX_APP__VERSION_CODE=118
TERMUX_APP__VERSION_NAME=0.118.0+66a9495
TERMUX_MAIN_PACKAGE_FORMAT=pacman
TERMUX_VERSION=0.118.0+66a9495
Packages CPU architecture:
aarch64
Subscribed repositories:
# /data/data/com.termux/files/usr/etc/pacman.conf
[main]
Usage = All
Server = https://service.termux-pacman.dev/main/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/main/aarch64
[x11]
Usage = All
Server = https://service.termux-pacman.dev/x11/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/x11/aarch64 [root]
Usage = All
Server = https://service.termux-pacman.dev/root/aarch64 Server = https://s3.amazonaws.com/termux-pacman.us/root/aarch64
[tur]
Usage = All
Server = https://service.termux-pacman.dev/tur/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/tur/aarch64
[tur-continuous]
Usage = All
Server = https://service.termux-pacman.dev/tur-continuous/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/tur-continuous/aarch64
[tur-multilib]
Usage = All
Server = https://service.termux-pacman.dev/tur-multilib/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/tur-multilib/aarch64
[gpkg-dev]
Usage = All
Server = https://service.termux-pacman.dev/gpkg-dev/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/gpkg-dev/aarch64
Updatable packages:
command-not-found 2.2.0-2 -> 2.2.0-3
curl-glibc 8.0.1-2 -> 8.1.2-0
libcurl-compat-glibc 8.0.1-2 -> 8.1.2-0
proot-distro 3.12.0-0 -> 3.12.1-0
termux-tools version:
1.38.3
Android version:
12
Kernel build information:
Linux localhost 4.19.113-perf-ga58c646b5e75 #1 SMP PREEMPT Mon Dec 19 11:06:32 CST 2022 aarch64 Android
Device manufacturer:
Xiaomi
Device model:
M2007J17G
LD Variables:
LD_LIBRARY_PATH=
LD_PRELOAD=
Installed termux plugins:
com.termux.api versionCode:51
com.termux.x11 versionCode:11
Hi!
I was trying to run JetBrains IDEs (IDEA, Clion) and got following error (it's not my post but I have exactly the same issue):
https://youtrack.jetbrains.com/issue/IDEA-280178
java.lang.UnsatisfiedLinkError: /data/data/com.termux/files/home/.cache/JetBrains/IdeaIC2021.2/tmp/jna11597614846036822681.tmp: dlopen failed: library "libc.so.6" not found at java.base/jdk.internal.loader.NativeLibraries.load(Native Method) at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:384) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:228) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:170) at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2389) at java.base/java.lang.Runtime.load0(Runtime.java:751) at java.base/java.lang.System.load(System.java:1912) at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:1019) at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:989) at com.sun.jna.Native.<clinit>(Native.java:195) at com.intellij.jna.JnaLoader.load(JnaLoader.java:18) at com.intellij.idea.StartupUtil.loadSystemLibraries(StartupUtil.java:844) at com.intellij.idea.StartupUtil.lambda$start$8(StartupUtil.java:226) at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1395) at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
For my case it doesn't prevent the IDE running but it brakes some functions - eg debugging in Rust.
I created a minimal project to reproduce that issue:
jna_issue.zip
To run that need to install openjdk-17 and run:
java --class-path jna-5.13.0.jar JnaTest.java
And I installed glibc from pacman (this instruction https://wiki.termux.com/wiki/Switching_package_manager to use pacman, and pkg install glibc
to install glibc)
So, what I understood:
jna11597614846036822681.tmp - it's lib from jna.jar file, looks like this one (jar is a zip archive, you can open it as zip):
jna-5.13.0.jar!\com\sun\jna\linux-aarch64\libjnidispatch.so
Or you can run to keep tmp file:
java --class-path jna-5.13.0.jar -Djnidispatch.preserve=true JnaTest.java
So, when I run that and check ldd I see reasonable reason of the error:
~ $ ldd .cache/JNA/temp/jna15778412403556095583.tmp
libc.so.6 => not found
But after running in proot env:
proot-distro login archlinux
I see the same error:
[root@localhost home]# java --class-path jna-5.13.0.jar -Djnidispatch.preserve=true JnaTest.java /data/data/com.termux/files/usr/java/packages/lib:/data/data/com.termux/files/usr/lib Exception in thread "main" java.lang.UnsatisfiedLinkError: /data/data/com.termux/files/home/.cache/JNA/temp/jna15872201178952457224.tmp: dlopen failed: library "libc.so.6" not found: needed by /data/data/com.termux/files/home/.cache/JNA/temp/jna15872201178952457224.tmp in namespace (default) at java.base/jdk.internal.loader.NativeLibraries.load(Native Method) at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:384) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:228) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:170) at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2389) at java.base/java.lang.Runtime.load0(Runtime.java:751) at java.base/java.lang.System.load(System.java:1912) at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:1045) at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:1015) at com.sun.jna.Native.<clinit>(Native.java:221) at Main.main(JnaTest.java:7)
However ldd shows the lib:
[root@localhost home]# ldd /data/data/com.termux/files/home/.cache/JNA/temp/jna15872201178952457224.tmp ldd: warning: you do not have execution permission for
/data/data/com.termux/files/home/.cache/JNA/temp/jna15872201178952457224.tmp'
libc.so.6 => /usr/lib/libc.so.6 (0x0000007156210000)
/usr/lib/ld-linux-aarch64.so.1 (0x0000003000000000)
/usr/lib/ld-linux-aarch64.so.1 (0x0000003000000000)`
Could you pls take a look? Maybe you have any idea how to fix that. It would be good to have ability to run JetBrains IDEs in Termux - they have a lot of good IDEs, not only for Java.
termux-info:
Mesa dependencies
No response
https://gitlab.freedesktop.org/glvnd/libglvnd
Mesa dependencies
Dependencies pulseaudio
No response
https://github.com/alsa-project/alsa-lib
Dependencies pulseaudio
glibc 32
test_egl libhybris is compiled through glibc for termux, there will be a tls conflict, and the android library cannot be modified, is there a way to call the android native library by modifying glibc for termux with libhybris implementation
termux-info:
the error occurred when running server.c using the glib for termux native package and GCC compiler. The program crashes with this error because accept method throws it internally. The error is always present and consistent every time the program is run.
This is a demo that is certain to occur.
`#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <getopt.h>
//#define PORT 9988
void printf_usage(char *progname)
{
printf("%s usage: \n",progname);
printf("-p(--port): sepcify server port \n");
printf("-h(--help): print this help information \n");
}
int main(int argc, char **argv)
{
int socket_fd = -1, client_fd = -1;
int rv = -1, rv1 = -1;
struct sockaddr_in serveraddr, clientaddr;
char buf[1024];
socklen_t clientaddr_len = sizeof(struct sockaddr);
int port;
int ch;
int index;
struct option opts[] = {
{"port", required_argument, NULL, 'p'},
{"help", no_argument, NULL, 'h'},
{NULL, 0, NULL, 0}
};
while((ch = getopt_long(argc, argv, "p:h", opts, NULL)) != -1)
{
switch(ch)
{
case 'p':
port = atoi(optarg);
break;
case 'h':
printf_usage(argv[0]);
return 0;
}
}
while(argc < 2)
{
printf("please input %s [port] \n",argv[0]);
return -1;
}
socket_fd = socket(AF_INET, SOCK_STREAM, 0);
if(socket_fd < 0)
{
printf("create socket failure : %s \n", strerror(errno));
return -2;
}
port = atoi(argv[1]);
serveraddr.sin_family = AF_INET;
serveraddr.sin_port = htons(port); //操作系统的字节序为小端,所以需要转换成网络大端字节序
serveraddr.sin_addr.s_addr = htonl(INADDR_ANY); //ip地址为4个字节,用htonl;INADDR_ANY(实际上是0)可以自动选择服务器的ip,使用有线网卡就用有线ip,使用无线网卡就用无线ip。
if(bind(socket_fd, (struct sockaddr *)&serveraddr, sizeof(serveraddr)) < 0)
{
printf("create server failure : %s \n", strerror(errno));
return -3;
}
printf("socket [%d] bind on port[%d] for all IP address succesfully !", socket_fd, port);
listen(socket_fd, 10); //监听socket,等待客户端连接,10为正在连接服务端的最大数,超过就不能连入服务器。
while(1)
{
printf("\n Start waiting and accept new client connect...\n");
client_fd = accept(socket_fd, (struct sockaddr *)&clientaddr, &clientaddr_len); //一般来说不关心addr的长度大小,这个数据不重要;地址为ipv4类型,需要保持一致;内核返回的值为新的socket描述符,用来服务某个接入的客户端。
if(client_fd < 0)
{
printf("accept new socket failture : %s\n", strerror(errno));
return -4;
}
printf("accept new client[%d] socket[%s:%d]\n",client_fd, inet_ntoa(clientaddr.sin_addr), ntohs(clientaddr.sin_port));//inet_ntoa函数为整型转字符型,ntohs函数为大端转小端。
while(1)
{
memset(buf, 0, sizeof(buf));
rv = read(client_fd, buf, sizeof(buf));
if(rv < 0)
{
printf("read data from client [%d] failure : %s\n", client_fd, strerror(errno));
close(client_fd);
break;
}
else if(rv == 0)
{
printf("%d \n",rv);
printf("client [%d] disconnected \n", client_fd);
close(client_fd);
break;
}
printf("read %d bytes data from client[%d] and the data is : %s \n", rv , client_fd, buf);
rv1 = write(client_fd, buf, rv);
if(rv1 < 0)
{
printf("write data back to client[%d] failure: %s \n", client_fd, strerror(errno));
close(client_fd);
break;
}
}
sleep(1);
}
close(socket_fd);
}`
termux-info:
```[glibc packages for termux 2022-07-11](https://github.com/termux-pacman/glibc-packages/releases/tag/20220711)
Warning reported while extracting /data/data/com.termux/files/usr/glic/bin/gcc-ranlib during the installation of arrch glibc-for-termux on termux 0.118 arch64. This has caused the failure in running grun --shell and some files were not installed to the glibc directory.
termux-info:
Attempting to connect to an ip via its domain name errors, however using it's pre-resolved ip works perfectly.
It seems that in the case of curl, it is trying to open /etc/nsswitch.conf, which it does not have permission to.
Box64 fails very fast with segmentation fault on latest glibc. On earlier version of glibc it survives for about 30 secs then fails. I guess it's still related to mprotect(but I'm not sure).
~ $ box64 wine winecfg
Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS PageSize:4096 Running on Unknown CPU with 8 Cores
Box64 with Dynarec v0.2.3 da098cc1 built on Jul 25 2023 00:16:43
BOX64: Wine64 detected, WINEPRELOADRESERVE=""
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 32 Env var
Looking for wine
argv[1]="winecfg"
Rename process to "wine"
Using native(wrapped) libdl.so.2
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux-x86-64.so.2
Using native(wrapped) libpthread.so.0
Using native(wrapped) libutil.so.1
Using native(wrapped) librt.so.1
refreshProtection(0x101801000): 0x101801000/0x7 (ret=0/ok)
Using emulated /data/data/com.termux/files/usr/glibc/bin/../lib/wine/x86_64-unix/ntdll.so
Using native(wrapped) libunwind.so.8
refreshProtection(0x10201a000): 0x10201a000/0x7 (ret=0/ok)
refreshProtection(0x10201b000): 0x10201b000/0x7 (ret=0/ok)
refreshProtection(0x102038000): 0x102038000/0x7 (ret=0/ok)
refreshProtection(0x102034000): 0x102034000/0x7 (ret=0/ok)
refreshProtection(0x102035000): 0x102035000/0x7 (ret=0/ok)
refreshProtection(0x102039000): 0x102039000/0x7 (ret=0/ok)
Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS PageSize:4096 Running on Unknown CPU with 8 Cores
Box64 with Dynarec v0.2.3 da098cc1 built on Jul 25 2023 00:16:43
BOX64: Wine preloader detected, loading "/data/data/com.termux/files/usr/glibc/bin/wine" directly
BOX64: Wine64 detected, WINEPRELOADRESERVE=""
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 34 Env var
Looking for /data/data/com.termux/files/usr/glibc/bin/wine
argv[1]="winecfg"
Rename process to "wine"
Using native(wrapped) libdl.so.2
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux-x86-64.so.2
Using native(wrapped) libpthread.so.0
Using native(wrapped) libutil.so.1
Using native(wrapped) librt.so.1
refreshProtection(0x101801000): 0x101801000/0x7 (ret=0/ok)
Using emulated /data/data/com.termux/files/usr/glibc/bin/../lib/wine/x86_64-unix/ntdll.so
Using native(wrapped) libunwind.so.8
refreshProtection(0x10201a000): 0x10201a000/0x7 (ret=0/ok)
refreshProtection(0x10201b000): 0x10201b000/0x7 (ret=0/ok)
refreshProtection(0x102038000): 0x102038000/0x7 (ret=0/ok)
refreshProtection(0x102034000): 0x102034000/0x7 (ret=0/ok)
refreshProtection(0x102035000): 0x102035000/0x7 (ret=0/ok)
refreshProtection(0x10206c000): 0x10206c000/0x7 (ret=0/ok)
refreshProtection(0x102067000): 0x102067000/0x7 (ret=0/ok)
refreshProtection(0x102065000): 0x102065000/0x7 (ret=0/ok)
refreshProtection(0x102023000): 0x102023000/0x7 (ret=0/ok)
refreshProtection(0x102020000): 0x102020000/0x7 (ret=0/ok)
refreshProtection(0x10201f000): 0x10201f000/0x7 (ret=0/ok)
refreshProtection(0x10206e000): 0x10206e000/0x7 (ret=0/ok)
refreshProtection(0x102066000): 0x102066000/0x7 (ret=0/ok)
refreshProtection(0x10201e000): 0x10201e000/0x7 (ret=0/ok)
refreshProtection(0x10206b000): 0x10206b000/0x7 (ret=0/ok)
refreshProtection(0x102046000): 0x102046000/0x7 (ret=0/ok)
refreshProtection(0x10206a000): 0x10206a000/0x7 (ret=0/ok)
refreshProtection(0x102068000): 0x102068000/0x7 (ret=0/ok)
FillBlock triggered a segfault at 0x102069000 from 0x7423991f30
FillBlock at 0x102068ef0 triggered a segfault, cancelling
FillBlock triggered a segfault at 0x102069000 from 0x7423991f30
FillBlock at 0x102068ef0 triggered a segfault, cancelling
FillBlock triggered a segfault at 0x102069000 from 0x7423991f30
FillBlock at 0x102068f25 triggered a segfault, cancelling
FillBlock triggered a segfault at 0x102069000 from 0x7423991f30
FillBlock at 0x102068f65 triggered a segfault, cancelling
FillBlock triggered a segfault at 0x102069000 from 0x7423991f30
FillBlock at 0x102068f72 triggered a segfault, cancelling
FillBlock triggered a segfault at 0x102069000 from 0x7423991f30
FillBlock at 0x102068fab triggered a segfault, cancelling
FillBlock triggered a segfault at 0x102069000 from 0x7423991f30
FillBlock at 0x102068fcb triggered a segfault, cancelling
FillBlock triggered a segfault at 0x102069000 from 0x7423991f30
FillBlock at 0x102068fe1 triggered a segfault, cancelling
refreshProtection(0x102069000): 0x102069000/0x7 (ret=0/ok)
32093|SIGSEGV @0x74236ee278 (???(0x74236ee278)) (x64pc=0x102069001//data/data/com.termux/files/usr/glibc/bin/../lib/wine/x86_64-unix/ntdll.so:"/data/data/com.termux/files/usr/glibc/bin/../lib/wine/x86_64-unix/ntdll.so + 0x59001", rsp=0x10200e940, stack=0x101810000:0x102010000 own=(nil) fp=0x1022d0008), for accessing 0x1 (code=1/prot=0), db=0x7423806f90(0x74236ee278:0x74236f6ae8/0x102069001:0x10206a00e//data/data/com.termux/files/usr/glibc/bin/../lib/wine/x86_64-unix/ntdll.so + 0x59001:clean, hash:dc380df5/dc380df5) handler=(nil)
RAX:0x0000000000000001 RCX:0x0000000000000000 RDX:0x00000001022d0000 RBX:0x00000001022d0000
RSP:0x000000010200e940 RBP:0x00000001022d0008 RSI:0x0000000000000000 RDI:0x000000010200ea48
R8:0x00000000ffffffff R9:0x0000000000000000 R10:0x0000000000000021 R11:0x0000000000000000
R12:0x0000000000001000 R13:0x000000007ffe0000 R14:0x000000007ffe1000 R15:0x0000000102084650
ES:0x002b CS:0x0033 SS:0x002b DS:0x002b FS:0x0043 GS:0x0053
RSP-0x20:0x000000002dc5d2d0 RSP-0x18:0x0000000064bf32f8 RSP-0x10:0x000000002dc5d2d0 RSP-0x08:0x0000000000000000
RSP+0x00:0x0000000000000000 RSP+0x08:0x0000002100000000 RSP+0x10:0x0000000100000021 RSP+0x18:0x000000010200ea48
Segmentation fault
A more detailed log here
log.txt
termux-info:
Termux Variables:
TERMUX_APK_RELEASE=GITHUB
TERMUX_APP_PACKAGE_MANAGER=pacman
TERMUX_APP_PID=31633
TERMUX_IS_DEBUGGABLE_BUILD=1
TERMUX_MAIN_PACKAGE_FORMAT=pacman
TERMUX_VERSION=0.118.0
Packages CPU architecture:
aarch64
Subscribed repositories:
# /data/data/com.termux/files/usr/etc/pacman.conf
[main]
Usage = All
Server = https://service.termux-pacman.dev/main/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/main/aarch64
[x11]
Usage = All
Server = https://service.termux-pacman.dev/x11/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/x11/aarch64
[root]
Usage = All
Server = https://service.termux-pacman.dev/root/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/root/aarch64
[tur]
Usage = All
Server = https://service.termux-pacman.dev/tur/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/tur/aarch64
[tur-continuous]
Usage = All
Server = https://service.termux-pacman.dev/tur-continuous/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/tur-continuous/aarch64
[tur-multilib]
Usage = All
Server = https://service.termux-pacman.dev/tur-multilib/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/tur-multilib/aarch64
[gpkg-dev]
Usage = All
Server = https://service.termux-pacman.dev/gpkg-dev/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/gpkg-dev/aarch64
Updatable packages:
All packages up to date
termux-tools version:
1.38.3
Android version:
13
Kernel build information:
Linux localhost 5.10.136-android12-9-722251-abX700ZCU4BWD4 #1 SMP PREEMPT Fri Apr 21 02:30:29 UTC 2023 aarch64 Android
Device manufacturer:
samsung
Device model:
SM-X700
LD Variables:
LD_LIBRARY_PATH=
LD_PRELOAD=
Installed termux plugins:
com.termux.x11 versionCode:12
I switched my main package manager to pacman,
When I try to install glibc as explained in the image I get error
As an additional informations I installed the bootstrap of arm as explained in the
termux-info:
Termux Variables:
TERMUX_APK_RELEASE=GITHUB
TERMUX_APP_PACKAGE_MANAGER=pacman
TERMUX_APP_PID=6750
TERMUX_IS_DEBUGGABLE_BUILD=1
TERMUX_MAIN_PACKAGE_FORMAT=pacman
TERMUX_VERSION=0.118.0
Packages CPU architecture:
arm
Subscribed repositories:
# /data/data/com.termux/files/usr/etc/pacman.conf
[main]
Usage = All
Server = https://service.termux-pacman.dev/main/arm
Server = https://s3.amazonaws.com/termux-pacman.us/main/arm
[x11]
Usage = All
Server = https://service.termux-pacman.dev/x11/arm
Server = https://s3.amazonaws.com/termux-pacman.us/x11/arm
[root]
Usage = All
Server = https://service.termux-pacman.dev/root/arm
Server = https://s3.amazonaws.com/termux-pacman.us/root/arm
[tur]
Usage = All
Server = https://service.termux-pacman.dev/tur/arm
Server = https://s3.amazonaws.com/termux-pacman.us/tur/arm
[tur-continuous]
Usage = All
Server = https://service.termux-pacman.dev/tur-continuous/arm
Server = https://s3.amazonaws.com/termux-pacman.us/tur-continuous/arm
[tur-multilib]
Usage = All
Server = https://service.termux-pacman.dev/tur-multilib/arm
Server = https://s3.amazonaws.com/termux-pacman.us/tur-multilib/arm
[gpkg-dev]
Usage = All
Server = https://service.termux-pacman.dev/gpkg-dev/arm
Server = https://s3.amazonaws.com/termux-pacman.us/gpkg-dev/arm
Updatable packages:
command-not-found 2.3.0-1 -> 2.3.0-2
termux-tools version:
1.39.0
Android version:
11
Kernel build information:
Linux localhost 4.14.186-24267853 #1 SMP PREEMPT Thu Mar 9 11:32:03 +07 2023 armv7l Android
Device manufacturer:
samsung
Device model:
SM-A022F
LD Variables:
LD_LIBRARY_PATH=
LD_PRELOAD=/data/data/com.termux/files/usr/lib/libtermux-exec.so
I installed glibc successfully, then I removed LD_PRELOAD
variable, and reset the PATH
variable to PATH=$PREFIX/glibc/bin:$PATH
,
But I get these errors when running locale
command:
termux-info:
Termux Variables:
TERMUX_APK_RELEASE=GITHUB
TERMUX_APP_PACKAGE_MANAGER=pacman
TERMUX_APP_PID=19570
TERMUX_IS_DEBUGGABLE_BUILD=1
TERMUX_MAIN_PACKAGE_FORMAT=pacman
TERMUX_VERSION=0.118.0
Packages CPU architecture:
arm
Subscribed repositories:
# /data/data/com.termux/files/usr/etc/pacman.conf
[main]
Usage = All
Server = https://service.termux-pacman.dev/main/arm
Server = https://s3.amazonaws.com/termux-pacman.us/main/arm
[x11]
Usage = All
Server = https://service.termux-pacman.dev/x11/arm
Server = https://s3.amazonaws.com/termux-pacman.us/x11/arm
[root]
Usage = All
Server = https://service.termux-pacman.dev/root/arm
Server = https://s3.amazonaws.com/termux-pacman.us/root/arm
[tur]
Usage = All
Server = https://service.termux-pacman.dev/tur/arm
Server = https://s3.amazonaws.com/termux-pacman.us/tur/arm
[tur-continuous]
Usage = All
Server = https://service.termux-pacman.dev/tur-continuous/arm
Server = https://s3.amazonaws.com/termux-pacman.us/tur-continuous/arm
[tur-multilib]
Usage = All
Server = https://service.termux-pacman.dev/tur-multilib/arm
Server = https://s3.amazonaws.com/termux-pacman.us/tur-multilib/arm
[gpkg-dev]
Usage = All
Server = https://service.termux-pacman.dev/gpkg-dev/arm
Server = https://s3.amazonaws.com/termux-pacman.us/gpkg-dev/arm
Updatable packages:
command-not-found 2.3.0-1 -> 2.3.0-2
termux-tools version:
1.39.0
Android version:
11
Kernel build information:
Linux localhost 4.14.186-24267853 #1 SMP PREEMPT Thu Mar 9 11:32:03 +07 2023 armv7l Android
Device manufacturer:
samsung
Device model:
SM-A022F
LD Variables:
LD_LIBRARY_PATH=
LD_PRELOAD=
Got this issue while running flutter doctor.
This issue seem to appear randomly. It does work few times and gives this error other times
termux-info:
Termux Variables:
TERMUX_APK_RELEASE=F_DROID
TERMUX_APP_PACKAGE_MANAGER=pacman
TERMUX_APP_PID=1298
TERMUX_IS_DEBUGGABLE_BUILD=0
TERMUX_MAIN_PACKAGE_FORMAT=pacman
TERMUX_VERSION=0.118.0
Packages CPU architecture:
aarch64
Subscribed repositories:
# /data/data/com.termux/files/usr/etc/pacman.conf
[main]
Usage = All
Server = https://service.termux-pacman.dev/main/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/main/aarch64
[x11]
Usage = All
Server = https://service.termux-pacman.dev/x11/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/x11/aarch64
[root]
Usage = All
Server = https://service.termux-pacman.dev/root/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/root/aarch64
[tur]
Usage = All
Server = https://service.termux-pacman.dev/tur/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/tur/aarch64
[tur-continuous]
Usage = All
Server = https://service.termux-pacman.dev/tur-continuous/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/tur-continuous/aarch64
[tur-multilib]
Usage = All
Server = https://service.termux-pacman.dev/tur-multilib/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/tur-multilib/aarch64
[gpkg-dev]
Usage = All
Server = https://service.termux-pacman.dev/gpkg-dev/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/gpkg-dev/aarch64
Updatable packages:
All packages up to date
termux-tools version:
1.38.5
Android version:
13
Kernel build information:
Linux localhost 4.14.206-perf+ #1 SMP PREEMPT Sun Aug 13 20:01:11 UTC 2023 aarch64 Android
Device manufacturer:
Xiaomi
Device model:
POCO X3 NFC
LD Variables:
LD_LIBRARY_PATH=
LD_PRELOAD=
When i extract tar file , the tar is not install correctly. It was installed at loacl path instaed of installing /data/data/com.termux/files/usr
It is very important
No response
https://gitlab.freedesktop.org/fontconfig/fontconfig
very important
i have two questions and i hope you to be patient with my unprofessional questions. because i have zero knowledge of programming or even scripting.
i haven't started learning programming yet. just trying to be familiar with basic linux environments before i start learning things. so while playing with it -
/usr/bin
fine, in the usual way of grun ./file
but when i add that path to the grun file and change to --shell mode, only binaries you provided can be launched. i tried a simple program like nushell
installed in my proot distro. so while i'm in shell mode i ldded the binary to see if ld.so is not available and shared libs are missing. but they are not missing. then i ldded your binaries, like gcc
and it's the same. your binaries are working. so why is that? is it because vdso
not properly mapped into the address space of these programs?$ARCH_PREFIX/usr/lib.
i'm trying to use the programs downloaded with TermuxArchlinux's pacman and their shared objects are not always available in your dynamic linker's default path? if not normal way, can you add this path to it, rebuild and give it to me?thanks!
termux-info:
.../glibc/lib $ ldd libarchive.so
linux-vdso.so.1 (0x0000007549625000)
libcrypto.so.3 => /data/data/com.termux/files/usr/glibc/lib/libcrypto.so.3 (0x00000075490c0000)
libacl.so.1 => not found
libexpat.so.1 => not found
liblzma.so.5 => not found
libzstd.so.1 => /data/data/com.termux/files/usr/glibc/lib/libzstd.so.1 (0x0000007548f10000)
liblz4.so.1 => not found
libbz2.so.1.0 => not found
libz.so.1 => /data/data/com.termux/files/usr/glibc/lib/libz.so.1 (0x0000007548ee0000)
libc.so.6 => /data/data/com.termux/files/usr/glibc/lib/libc.so.6 (0x0000007548d30000)
/data/data/com.termux/files/usr/glibc/lib/ld-linux-aarch64.so.1 (0x0000003000000000)
installing every -glibc package did not help, installing those packages from termux repos did not help, building those packages (acl, expat, lzma, lz4) manually helped
termux-info:
Termux Variables:
TERMUX_API_VERSION=0.50.1
TERMUX_APK_RELEASE=GITHUB
TERMUX_APP_PACKAGE_MANAGER=pacman
TERMUX_APP_PID=11131
TERMUX_IS_DEBUGGABLE_BUILD=1
TERMUX_MAIN_PACKAGE_FORMAT=pacman
TERMUX_VERSION=0.118.0
Packages CPU architecture:
aarch64
Subscribed repositories:
# /data/data/com.termux/files/usr/etc/pacman.conf
[main]
Usage = All
Server = https://s3.amazonaws.com/termux-pacman.us/main/aarch64
[x11]
Usage = All
Server = https://s3.amazonaws.com/termux-pacman.us/x11/aarch64
[root]
Usage = All
Server = https://s3.amazonaws.com/termux-pacman.us/root/aarch64
[tur]
Usage = All
Server = https://s3.amazonaws.com/termux-pacman.us/tur/aarch64
[tur-continuous]
Usage = All
Server = https://s3.amazonaws.com/termux-pacman.us/tur-continuous/aarch64
[tur-multilib]
Usage = All
Server = https://s3.amazonaws.com/termux-pacman.us/tur-multilib/aarch64
[gpkg-dev]
Usage = All
Server = https://s3.amazonaws.com/termux-pacman.us/gpkg-dev/aarch64
Updatable packages:
All packages up to date
termux-tools version:
1.38.1
Android version:
12
Kernel build information:
Linux localhost 4.19.113-perf-ga58c646b5e75 #1 SMP PREEMPT Mon Dec 19 11:06:32 CST 2022 aarch64 Android
Device manufacturer:
Xiaomi
Device model:
M2007J17G
LD Variables:
LD_LIBRARY_PATH=
LD_PRELOAD=
my main termux environment is polluted with make install
s (have everything except libacl and libexpat installed) so i am checking this in a clean proot with termux-pacman
As proot have significent performance cost, fakechroot can give the user a faster and better experience. The origin dex4er/fakechroot branch have _STAT_VER related errors and not supported by new glibc versions. However, josch patched branch have already fixed that, so maybe it can be used to compile fakechroot on termux.
https://github.com/dex4er/fakechroot
https://github.com/josch/fakechroot/tree/debian
I think there are no other needs, but the faakchroot script seems not working and use LD_PRELOAD
manually would be a better choice : )
i fully switched to pacman,
then installed needed tools by runing pacman -Sy gpkg-dev.
all binaries in /glibc/bin
are complaining shared libraries are missing though they are there.
i'm really a newbie to all these things. i'm trying to learn things and i don't have a pc. i thought by using this, i can finally run some aarch64 (ARM) Linux binaries
on Termux without using those slow proot-distros
like java here:
termux-info:
Termux Variables: TERMUX_APK_RELEASE=GITHUB
TERMUX_APP_PACKAGE_MANAGER=pacman TERMUX_APP_PID=29878 TERMUX_IS_DEBUGGABLE_BUILD=1 TERMUX_MAIN_PACKAGE_FORMAT=pacman
TERMUX_VERSION=0.118.0
Packages CPU architecture: aarch64
Subscribed repositories: # /data/data/com.termux/files/usr/etc/pacman.conf
[main] Usage = All
Server = https://service.termux-pacman.dev/main/aarch64 Server = https://s3.amazonaws.com/termux-pacman.us/main/aarch64 [x11]
Usage = All
Server = https://service.termux-pacman.dev/x11/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/x11/aarch64
[root]
Usage = All
Server = https://service.termux-pacman.dev/root/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/root/aarch64
[tur]
Usage = All
Server = https://service.termux-pacman.dev/tur/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/tur/aarch64
[tur-continuous]
Usage = All
Server = https://service.termux-pacman.dev/tur-continuous/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/tur-continuous/aarch64
[tur-multilib]
Usage = All
Server = https://service.termux-pacman.dev/tur-multilib/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/tur-multilib/aarch64
[gpkg-dev]
Usage = All
Server = https://service.termux-pacman.dev/gpkg-dev/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/gpkg-dev/aarch64
Updatable packages:
All packages up to date
termux-tools version:
1.38.3
Android version:
9
Kernel build information:
Linux localhost 4.4.111-22376662 #1 SMP PREEMPT Thu Sep 16 20:22:46 KST 2021 aarch64 Android
Device manufacturer:
samsung
Device model:
SM-A730F
LD Variables:
LD_LIBRARY_PATH=
LD_PRELOAD=/data/data/com.termux/files/usr/lib/libtermux-exec.so
Installed termux plugins:
com.termux.tasker versionCode:6
com.termux.window versionCode:15
Opens up more options in packages
Opens up more options in packages
When running gcc or g++ it shows a bad system call error.
gcc:
clone(child_stack=0x7ff615e140, flags=CLONE_VM|CLONE_VFORK|SIGCHLD) = 9118
close(4) = 0
read(3, "", 16) = 0
close(3) = 0
wait4(9118, collect2: fatal error: ld terminated with signal 31 [Bad system call]
compilation terminated.
[{WIFEXITED(s) && WEXITSTATUS(s) == 1}], 0, NULL) = 9118
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=9118, si_uid=10301, si_status=1, si_utime=0, si_stime=0} ---
g++:
clone(child_stack=0x7ffa08fdc0, flags=CLONE_VM|CLONE_VFORK|SIGCHLD) = 9361
close(4) = 0
read(3, "", 16) = 0
close(3) = 0
wait4(9361, [{WIFSIGNALED(s) && WTERMSIG(s) == SIGSYS}], 0, NULL) = 9361
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED, si_pid=9361, si_uid=10301, si_status=SIGSYS, si_utime=1, si_stime=0} ---
Perhaps this error is due to glibc.
Everything works with proot.
It's actually not a real package request. I managed to build some dependencies of wine, they built successfully on my machine but failed to build on github action. I guess it's kinda improper to directly initiate a PR when there's still problems in a repo, so I initiate this request, just to remind you that you can refer to my repo to port these packages with less pain.
No response
https://github.com/500InternalError/glibc-packages
I haven't tried on device build
No device requirements
Hello
I installed the pacman Termux
And then I added the glibc repository to the configs
Then I updated the repositories
And then I tried to install glibc
But the glibc directory is placed in /usr and nothing else happens
What should I do!?
termux-info:
Termux Variables:
TERMUX_APK_RELEASE=GITHUB
TERMUX_APP_PACKAGE_MANAGER=apt
TERMUX_APP_PID=18867
TERMUX_IS_DEBUGGABLE_BUILD=1
TERMUX_MAIN_PACKAGE_FORMAT=debian
TERMUX_VERSION=0.118.0
Packages CPU architecture:
arm
Subscribed repositories:
# sources.list
deb https://mirror.bardia.tech/termux/termux-main stable main
Updatable packages:
All packages up to date
termux-tools version:
1.38.3
Android version:
7.1.2
Kernel build information:
Linux localhost 3.4.0-Lineage #1 SMP PREEMPT Wed May 2 23:03:33 IST 2018 armv7l Android
Device manufacturer:
samsung
Device model:
SM-G7102
LD Variables:
LD_LIBRARY_PATH=
LD_PRELOAD=/data/data/com.termux/files/usr/lib/libtermux-exec.so
I want to try to compile gobject-introspection which seems requires python. May I ask why it is disabled and how could I get it?(cant manage to cross compile python on my computer)
termux-info:
tar: ./var/lib/proot-distro/installed-rootfs/debian/dev: Cannot open: Permission denied
tar: Exiting with failure status due to previous errors
data/data/com.termux/files/usr/var/log/pacman.log
which already exists in filesystem, so they cannot be installed$PREFIX/glibc
and breaks pacmannon-glibc packages do support on-device building, so maybe it should also be possible for glibc packages?
running strace box64 mesa-utils/glxgears
gives this:
shmget(IPC_PRIVATE, 409600, IPC_CREAT|0600) = 0
--- SIGSYS {si_signo=SIGSYS, si_code=SYS_SECCOMP, si_call_addr=0x74f97096e4, si_syscall=__NR_shmget, si_arch=AUDIT_ARCH_AARCH64} ---
+++ killed by SIGSYS +++
Bad system call
did not try with native aarch64 glxgears, but i think it won't be different
while running under proot everything works as expected (i didn't pass --sysvipc
flag because everything works without it somehow)
termux-info:
Termux Variables:
TERMUX_API_APP__VERSION_NAME=0.50.1
TERMUX_APP_PACKAGE_MANAGER=pacman
TERMUX_APP__AM_SOCKET_SERVER_ENABLED=true
TERMUX_APP__APK_PATH=/data/app/~~9Egdt-B4sATprQx_dgjKfw==/com.termux-grKIc17STxXAPjq07w5bOA==/base.apk
TERMUX_APP__APK_RELEASE=GITHUB
TERMUX_APP__FILES_DIR=/data/user/0/com.termux/files
TERMUX_APP__IS_DEBUGGABLE_BUILD=true
TERMUX_APP__IS_INSTALLED_ON_EXTERNAL_STORAGE=false
TERMUX_APP__PACKAGE_MANAGER=apt TERMUX_APP__PACKAGE_NAME=com.termux
TERMUX_APP__PACKAGE_VARIANT=apt-android-7
TERMUX_APP__PID=13140 TERMUX_APP__SE_FILE_CONTEXT=u:object_r:app_data_file:s0:c37,c257,c512,c768
TERMUX_APP__SE_INFO=default:targetSdkVersion=28:complete TERMUX_APP__SE_PROCESS_CONTEXT=u:r:untrusted_app_27:s0:c37,c257,c512,c768
TERMUX_APP__TARGET_SDK=28 TERMUX_APP__UID=10293
TERMUX_APP__USER_ID=0
TERMUX_APP__VERSION_CODE=118
TERMUX_APP__VERSION_NAME=0.118.0+66a9495
TERMUX_MAIN_PACKAGE_FORMAT=pacman
TERMUX_VERSION=0.118.0+66a9495
Packages CPU architecture:
aarch64
Subscribed repositories:
# /data/data/com.termux/files/usr/etc/pacman.conf
[main]
Usage = All
Server = https://s3.amazonaws.com/termux-pacman.us/main/aarch64
[x11]
Usage = All
Server = https://s3.amazonaws.com/termux-pacman.us/x11/aarch64
[root]
Usage = All
Server = https://s3.amazonaws.com/termux-pacman.us/root/aarch64
[tur]
Usage = All
Server = https://s3.amazonaws.com/termux-pacman.us/tur/aarch64
[tur-continuous]
Usage = All
Server = https://s3.amazonaws.com/termux-pacman.us/tur-continuous/aarch64
[tur-multilib]
Usage = All
Server = https://s3.amazonaws.com/termux-pacman.us/tur-multilib/aarch64
[gpkg-dev]
Usage = All
Server = https://s3.amazonaws.com/termux-pacman.us/gpkg-dev/aarch64
Updatable packages:
All packages up to date
termux-tools version:
1.38.3
Android version:
12
Kernel build information:
Linux localhost 4.19.113-perf-ga58c646b5e75 #1 SMP PREEMPT Mon Dec 19 11:06:32 CST 2022 aarch64 Android
Device manufacturer:
Xiaomi
Device model:
M2007J17G
LD Variables:
LD_LIBRARY_PATH=
LD_PRELOAD=
Installed termux plugins:
com.termux.api versionCode:51
com.termux.x11 versionCode:12
Dependencies
No response
https://gitlib.freedbook.org/wiland/wiland
DependenciesDependencies
It is very important
No response
https://gitlab.freedesktop.org/fontconfig/fontconfig
very important
In order to work stably with some programs
No response
https://www.freedesktop.org/wiki/Software/PulseAudio/
Dependencies
dbus
libasyncns
libsndfile
box86
can't be installed with pacman. ldconfig
resulting segmentation fault
.
termux-info:
Termux Variables:
TERMUX_API_APP__VERSION_NAME=0.50.1 TERMUX_APP_PACKAGE_MANAGER=pacman
TERMUX_APP__AM_SOCKET_SERVER_ENABLED=true TERMUX_APP__APK_PATH=/data/app/com.termux-HHNr_AuO9XfO1D0mJAVWww==/base.apk
TERMUX_APP__APK_RELEASE=GITHUB TERMUX_APP__FILES_DIR=/data/user/0/com.termux/files
TERMUX_APP__IS_DEBUGGABLE_BUILD=true TERMUX_APP__IS_INSTALLED_ON_EXTERNAL_STORAGE=false
TERMUX_APP__PACKAGE_MANAGER=apt TERMUX_APP__PACKAGE_NAME=com.termux
TERMUX_APP__PACKAGE_VARIANT=apt-android-7 TERMUX_APP__PID=6669
TERMUX_APP__SE_FILE_CONTEXT=u:object_r:app_data_file:s0:c156,c260,c512,c768 TERMUX_APP__SE_INFO=untrusted:targetSdkVersion=28:complete
TERMUX_APP__SE_PROCESS_CONTEXT=u:r:untrusted_app:s0:c156,c260,c512,c768 TERMUX_APP__TARGET_SDK=28
TERMUX_APP__UID=11180 TERMUX_APP__USER_ID=0
TERMUX_APP__VERSION_CODE=118 TERMUX_APP__VERSION_NAME=0.118.0+6461df4
TERMUX_MAIN_PACKAGE_FORMAT=pacman TERMUX_VERSION=0.118.0+6461df4
Packages CPU architecture: aarch64
Subscribed repositories: # /data/data/com.termux/files/usr/etc/pacman.conf
[main] Usage = All
Server = https://service.termux-pacman.dev/main/aarch64 Server = https://s3.amazonaws.com/termux-pacman.us/main/aarch64
[x11] Usage = All
Server = https://service.termux-pacman.dev/x11/aarch64 Server = https://s3.amazonaws.com/termux-pacman.us/x11/aarch64
[root] Usage = All
Server = https://service.termux-pacman.dev/root/aarch64 Server = https://s3.amazonaws.com/termux-pacman.us/root/aarch64
[tur] Usage = All
Server = https://service.termux-pacman.dev/tur/aarch64 Server = https://s3.amazonaws.com/termux-pacman.us/tur/aarch64
[tur-continuous] Usage = All
Server = https://service.termux-pacman.dev/tur-continuous/aarch64 Server = https://s3.amazonaws.com/termux-pacman.us/tur-continuous/aarch64 [tur-multilib]
Usage = All Server = https://service.termux-pacman.dev/tur-multilib/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/tur-multilib/aarch64
[gpkg]
Usage = All
Server = https://service.termux-pacman.dev/gpkg/aarch64
Server = https://s3.amazonaws.com/termux-pacman.us/gpkg/aarch64
Updatable packages:
All packages up to date
termux-tools version:
1.39.3
Android version:
9
Kernel build information:
Linux localhost 4.4.111-22376662 #1 SMP PREEMPT Mon Apr 17 17:06:17 KST 2023 aarch64 Android
Device manufacturer:
samsung
Device model:
SM-A730F
LD Variables:
LD_LIBRARY_PATH= LD_PRELOAD=
Installed termux plugins:
com.termux.api versionCode:51
mesa's llvmpipe and zink depend on this, and wine depends on mesa for displaying graphics
https://github.com/llvm/llvm-project
builds fine with archlinux pkgbuild (but the version is ancient, 15.0.7)
Something necessary to complete a good experience
https://gitlab.freedesktop.org/Danil/mesa
https://gitlab.freedesktop.org/Danil/mesa
Thank you
src:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/wait.h>
typedef struct _str
{
int num;
char string[20];
}Str;
int main(int argc, char* argv[])
{
if(argc < 2)
{
printf("not found mapfile\n");
return -1;
}
int fd = open(argv[1], O_RDWR | O_CREAT | O_TRUNC, 0644); /OTRUNC文件清0/
int st_len = sizeof(Str);
ftruncate(fd, st_len); /扩展文件和结构体一样大/
Str* str = mmap(NULL, st_len, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); /往映射区写入的内容是结构体,mmap()的返回值是一个缓冲区地址,所以要根据写入内容的类型来决定/
if(str == MAP_FAILED)
{
perror("mmap err");
return -1;
}
int count = 1;
while(1)
{
str->num = count;
sprintf(str->string, "string-%04d", count++);
sleep(1); /每隔一秒修改一次映射区内容/
}
munmap(str, st_len);
close(fd);
return 0;
}
gcc compile run bad system call,termux native is ok
termux-info:
```armv8
In the cgt
section for x86_64
, compilers use the wrong include directory.
$ /data/data/com.termux/cgct/x86_64/bin/x86_64-linux-gnu-gcc -E -Wp,-v -
ignoring nonexistent directory "/data/data/com.termux/cgct/x86_64/lib/gcc/x86_64-linux-gnu/13.2.0/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/data/data/com.termux/cgct/x86_64/lib/gcc/x86_64-linux-gnu/13.2.0/include
/data/data/com.termux/cgct/x86_64/include
/data/data/com.termux/cgct/x86_64/lib/gcc/x86_64-linux-gnu/13.2.0/include-fixed
/usr/include
End of search list.
Compilers in other sections use the correct directory.
On a Linux distribution
System dependencies
No response
https://gitlab.freedesktop.org/fontconfig/fontconfig
System dependencies
Important to build some pkg
https://github.com/llvm/llvm-project
https://github.com/llvm/llvm-project
Important to build some pkg
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.