-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
give BSDs some attention #13699
give BSDs some attention #13699
Conversation
4ab7715
to
76edf77
Compare
FYI, openbsd build work well with the diff, and tests are still passing. |
6b84514
to
3f167f5
Compare
Is it just me or does building this PR cause an entire 64 gb of swap to be used when compiling stage3 (build-host-zig) with zig-bootstrap 🤔 I tried to use zig bootstrap but I replaced the |
It's not just you! Trying to narrow down what is causing this. Strange tho, I am able to manually use the update: I threw out the mission-creep of linking to system c++ via regular |
17430f0
to
1277900
Compare
@mikdusan do you think that PR could be splitted and commits incrementally done (instead of pushing all in one big PR) ? currently, several OS are broken waiting for only some commits in this PR (like "avoid Dir.realpathAlloc"). having a good BSD support is a very good target (and thanks for your work on it), but I would be glad to have a working compiler too. |
I'd like to get a review from andrew first. But yeah if it makes some pieces land faster, I'm open to splitting things up. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for giving some attention to the BSDs. In particular you have made me realize that a problematic commit has been residing in master branch for quite some time, which I have reverted.
I left a few review comments, but with those resolved, this changeset looks ready to merge to me.
- first convert to lower-case then perform mappings - effect: freebsd, netbsd and openbsd convert arch `amd64` to `x86_64` - effect: convert `arm64` to `aarch64`
- per darwin-xnu source, fcntl F_GETPATH will return ENOSPC when path exceeds either user-supplied buffer or system MAXPATHLEN - macOS does not document this (and other) possible errno values
- add conditional compile error - add conditional skip test
- https://github.com/DragonFlyBSD/DPorts/tree/master/devel/libc++/files for hints as to which patches are needed
- freebsd, netbsd, openbsd, dragonfly
- add netbsd - add dragonfly - fixup freebsd
This allows for a more optimal std.crypto.tlcsprng codepath. Without it a an "incorrect alignment" panic is triggered from crypto.tlcsprng which aligns a threadlocal but it's actually not aligned, thus detected by the safety check. It appears that LLVM-IR does attribute the storage with alignment but it is ultimately not respected in the final binary for netbsd and dragonfly.
Great work, thank you very much! |
closes #13700
please see status/details in #13700