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

eventfd is not available on FreeBSD 12 #716

Closed
Nilstrieb opened this issue Jul 1, 2023 · 1 comment · Fixed by #717
Closed

eventfd is not available on FreeBSD 12 #716

Nilstrieb opened this issue Jul 1, 2023 · 1 comment · Fixed by #717

Comments

@Nilstrieb
Copy link

20c13d4 added support for eventfd on FreeBSD. FreeBSD has eventfd in FreeBSD 13, but not in FreeBSD 12. FreeBSD 12 is still supported upstream and therefore rustc builds its distribution builds using FreeBSD 12, which fails because of the rustix change. rustix::backend::syscalls::eventfd gets linked into librustc_driver.so despite not being used (I'm not sure why, maybe something weird around dylibs?) and then it fails to link with the main binary because of the undefined symbol.

See rust-lang/rust#113046 (comment)

sunfishcode added a commit that referenced this issue Jul 2, 2023
`eventfd` was introduced in FreeBSD 13, so it isn't in FreeBSD 12. Use
`weakcall` to call it on FreeBSD so that we don't have a link-time
dependency on it.

Fixes #716.
sunfishcode added a commit that referenced this issue Jul 2, 2023
`eventfd` was introduced in FreeBSD 13, so it isn't in FreeBSD 12. Use
`weakcall` to call it on FreeBSD so that we don't have a link-time
dependency on it.

Fixes #716.
sunfishcode added a commit that referenced this issue Jul 2, 2023
* Use `weakcall` for `eventfd` on FreeBSD.

`eventfd` was introduced in FreeBSD 13, so it isn't in FreeBSD 12. Use
`weakcall` to call it on FreeBSD so that we don't have a link-time
dependency on it.

Fixes #716.

* Re-introduce FreeBSD 12 in the Cirrus CI config.

FreeBSD 12 was origally removed in #517 due to problems with `curl`,
however those were fixed by removing the `pkg install -y curl` in #643,
so we can now re-enable FreeBSD 12 testing.

* Use `weakcall!` for `ptsname_r` on FreeBSD too.

FreeBSD 12 lacks `ptsname_r`.

* Relax a test to accept `NOSYS` from `eventfd` on FreeBSD.

* Relax some `procctl` tests on FreeBSD too.

* Fix the `openpty` tests for FreeBSD 12.
sunfishcode added a commit that referenced this issue Jul 2, 2023
* Use `weakcall` for `eventfd` on FreeBSD.

`eventfd` was introduced in FreeBSD 13, so it isn't in FreeBSD 12. Use
`weakcall` to call it on FreeBSD so that we don't have a link-time
dependency on it.

Fixes #716.

* Re-introduce FreeBSD 12 in the Cirrus CI config.

FreeBSD 12 was origally removed in #517 due to problems with `curl`,
however those were fixed by removing the `pkg install -y curl` in #643,
so we can now re-enable FreeBSD 12 testing.

* Use `weakcall!` for `ptsname_r` on FreeBSD too.

FreeBSD 12 lacks `ptsname_r`.

* Relax a test to accept `NOSYS` from `eventfd` on FreeBSD.

* Relax some `procctl` tests on FreeBSD too.

* Fix the `openpty` tests for FreeBSD 12.
@sunfishcode
Copy link
Member

This is now fixed in #718 and #717, and released in 0.38.2 and 0.37.22. I've also now re-enabled FreeBSD 12 testing, and fixed a few other additional minor issues that turned up.

bors added a commit to rust-lang-ci/rust that referenced this issue Jul 9, 2023
RalfJung pushed a commit to RalfJung/miri that referenced this issue Jul 10, 2023
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.

2 participants