Skip to content

runtime: use uname version check for 64-bit time on 32-bit arch codepaths#163

Merged
nickkhyl merged 1 commit intotailscale.go1.26from
bradfitz/runtime_time3264
Mar 25, 2026
Merged

runtime: use uname version check for 64-bit time on 32-bit arch codepaths#163
nickkhyl merged 1 commit intotailscale.go1.26from
bradfitz/runtime_time3264

Conversation

@bradfitz
Copy link
Copy Markdown
Member

The previous fallback-on-ENOSYS logic causes issues on forks of Linux.

Android: golang#77621 (CL 750040 added a workaround with a TODO,
this fixes that TODO)
Causes the OS to terminate the program when running on Android
versions <=10 since the seccomp jail does not know about the 64-bit
time syscall and is configured to terminate the program on any
unknown syscall.

Synology's Linux: golang#77930
On old versions of Synology's Linux they added custom vendor syscalls
without adding a gap in the syscall numbers, that means when we call
the newer Linux syscall which was added later, Synology's Linux
interprets it as a completely different vendor syscall.

Originally by Jorropo in CL 751340.

Fixes golang#77930
Updates #162
Originally https://go-review.googlesource.com/c/go/+/758902/2

Co-authored-by: Jorropo jorropo.pgm@gmail.com
Change-Id: I90e15495d9249fd7f6e112f9e3ae8ad1322f56e0

…aths

The previous fallback-on-ENOSYS logic causes issues on forks of Linux.

Android: golang#77621 (CL 750040 added a workaround with a TODO,
this fixes that TODO)
Causes the OS to terminate the program when running on Android
versions <=10 since the seccomp jail does not know about the 64-bit
time syscall and is configured to terminate the program on any
unknown syscall.

Synology's Linux: golang#77930
On old versions of Synology's Linux they added custom vendor syscalls
without adding a gap in the syscall numbers, that means when we call
the newer Linux syscall which was added later, Synology's Linux
interprets it as a completely different vendor syscall.

Originally by Jorropo in CL 751340.

Fixes golang#77930
Updates #162
Originally https://go-review.googlesource.com/c/go/+/758902/2

Co-authored-by: Jorropo <jorropo.pgm@gmail.com>
Change-Id: I90e15495d9249fd7f6e112f9e3ae8ad1322f56e0
@nickkhyl nickkhyl merged commit f4de14a into tailscale.go1.26 Mar 25, 2026
4 checks passed
@nickkhyl nickkhyl deleted the bradfitz/runtime_time3264 branch March 25, 2026 17:34
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 this pull request may close these issues.

runtime: regression Synology's Linux fork causes syscall conflict on older kernel versions

2 participants