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

SIGFPE Floating-point exception on armv7l #654

Closed
mced opened this issue Jun 14, 2024 · 3 comments · Fixed by #708
Closed

SIGFPE Floating-point exception on armv7l #654

mced opened this issue Jun 14, 2024 · 3 comments · Fixed by #708

Comments

@mced
Copy link

mced commented Jun 14, 2024

Context;
I'm on a constraint Linux environment without lddconfig.

$ uname -a
Linux 6.1.30 #1 SMP PREEMPT Tue Mar 26 09:25:25 UTC 2024 armv7l GNU/Linux
$ ./zrok version
-sh: ./zrok: not found

After reading those two links:
#642
https://openziti.discourse.group/t/zrok-share-failes-to-install-on-raspberry-pi-4/2198/8

I considered to symlink the file /lib/ld-linux-armhf.so.3 to /lib/ld-linux.so.3.

$ sudo ln -s /lib/ld-linux-armhf.so.3 /lib/ld-linux.so.3

But

$ ./zrok version
Floating point exception

$ strace ./zrok version
execve("./zrok", ["./zrok", "version"], 0xbee10de4 /* 13 vars */) = 0
brk(NULL)                               = 0x4995000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/libresolv.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\0\0\0\0004\0\0\0"..., 512) = 512
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=38528, ...}) = 0
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fb0000
mmap2(NULL, 51116, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6fa3000
mmap2(0xb6fac000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0xb6fac000
mmap2(0xb6fae000, 6060, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6fae000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\0\0\0\0004\0\0\0"..., 512) = 512
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=5404, ...}) = 0
mmap2(NULL, 8236, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6fa0000
mmap2(0xb6fa1000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xb6fa1000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\0\0\0\0004\0\0\0"..., 512) = 512
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=7584, ...}) = 0
mmap2(NULL, 8236, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6f9d000
mmap2(0xb6f9e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xb6f9e000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\271'\2\0004\0\0\0"..., 512) = 512
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=1069472, ...}) = 0
mmap2(NULL, 1106944, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6e8e000
mmap2(0xb6f90000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x101000) = 0xb6f90000
mmap2(0xb6f93000, 37888, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6f93000
close(3)                                = 0
openat(AT_FDCWD, "/lib/ld-linux.so.3", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0H\365\0\0004\0\0\0"..., 512) = 512
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=149332, ...}) = 0
mmap2(NULL, 125532, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6e6f000
mmap2(0xb6e8b000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b000) = 0xb6e8b000
close(3)                                = 0
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6e6d000
set_tls(0xb6e6d520)                     = 0
set_tid_address(0xb6e6d088)             = 26986
set_robust_list(0xb6e6d08c, 12)         = 0
rseq(0xb6e6d500, 0x20, 0, 0xe7f5def3)   = 0
mprotect(0xb6e8b000, 8192, PROT_READ)   = 0
mprotect(0xb6f90000, 8192, PROT_READ)   = 0
mprotect(0xb6f9e000, 4096, PROT_READ)   = 0
mprotect(0xb6fa1000, 4096, PROT_READ)   = 0
mprotect(0xb6fac000, 4096, PROT_READ)   = 0
mprotect(0x4853000, 8192, PROT_READ)    = 0
mprotect(0xb6fce000, 8192, PROT_READ)   = 0
ugetrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
gettid()                                = 26986
getpid()                                = 26986
tgkill(26986, 26986, SIGFPE)            = 0
--- SIGFPE {si_signo=SIGFPE, si_code=SI_TKILL, si_pid=26986, si_uid=0} ---
+++ killed by SIGFPE +++
Floating point exception
@michaelquigley
Copy link
Collaborator

You might need to build zrok specifically for your platform. If zrok version is failing, I would assume this is a significant binary incompatibility with your platform.

@vamtic
Copy link

vamtic commented Jul 12, 2024

same

@qrkourier
Copy link
Member

I'm looking for someone with this issue on a RasPi to build the 32bit zrok binary, copy it to the RasPi, and see if it works.

Build instructions: https://openziti.discourse.group/t/zrok-on-raspberry-says-floating-point-exception/2869/3?u=qrkourier

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

Successfully merging a pull request may close this issue.

4 participants