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

syscall: dropping FreeBSD 11 compatibility code in go1.20 #53280

Open
dmgk opened this issue Jun 7, 2022 · 5 comments
Open

syscall: dropping FreeBSD 11 compatibility code in go1.20 #53280

dmgk opened this issue Jun 7, 2022 · 5 comments
Labels
NeedsInvestigation OS-FreeBSD
Milestone

Comments

@dmgk
Copy link
Member

@dmgk dmgk commented Jun 7, 2022

Go 1.18 release notes state that Go 1.18 will be the last release that still supports FreeBSD 11.x, which reached EOL on September 30, 2021. Yet there's still FreeBSD 11.x compatibility code in the tree introduced by e.g. dc6eb20 and golang/sys@5535b4e which still requires COMPAT_FREEBSD11 in the kernel.

It's probably too late for 1.19, but are there any plans to remove this 11.x compat code in 1.20 and drop COMPAT_FREEBSD11 requirement?

@ianlancetaylor
Copy link
Contributor

@ianlancetaylor ianlancetaylor commented Jun 7, 2022

CC @paulzhol @golang/freebsd

@ianlancetaylor ianlancetaylor changed the title Dropping FreeBSD 11 compatibility code in go1.20 syscall: dropping FreeBSD 11 compatibility code in go1.20 Jun 7, 2022
@ianlancetaylor ianlancetaylor added OS-FreeBSD NeedsInvestigation labels Jun 7, 2022
@ianlancetaylor ianlancetaylor added this to the Go1.20 milestone Jun 7, 2022
@paulzhol
Copy link
Member

@paulzhol paulzhol commented Jun 8, 2022

Hi, yes sorry I'll try to get around doing that this weekend.
IIRC the 64-bit inode code in syscall and sys/unix does a runtime detection. So on FreeBSD 12.0 and up, the new syscalls are used. The new structs are always used, even in FreeBSD 11 with a compatibility hack to convert the old layout to the new.

The only user of COMPAT_FREEBSD11 is the runtime package for the kevent syscall in the poller which has an extra argument uint64_t ext[4] field in FreeBSD 12. And it is not dynamic. Also COMPAT_FREEBSD11 is still part of the GENERIC kernel, even on arm64.

On a related note, how do I get Gerrit credentials to trigger the build bots?

@ianlancetaylor
Copy link
Contributor

@ianlancetaylor ianlancetaylor commented Jun 8, 2022

On a related note, how do I get Gerrit credentials to trigger the build bots?

See https://go.dev/wiki/GerritAccess.

@gopherbot
Copy link

@gopherbot gopherbot commented Jun 11, 2022

Change https://go.dev/cl/411596 mentions this issue: syscall: remove FreeBSD 11 and below 64bit inode compatibility shims

@gopherbot
Copy link

@gopherbot gopherbot commented Jun 18, 2022

Change https://go.dev/cl/413174 mentions this issue: runtime: switch FreeBSD to use the non-COMPAT_FREEBSD11 version of the kevent syscall

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

No branches or pull requests

4 participants