about summary refs log tree commit homepage
path: root/devel/sysdefs-list
DateCommit message (Collapse)
2024-01-30syscall: use pure Perl sendmsg/recvmsg on *BSD
While syscall symbols (e.g. SYS_*) have changed on us in FreeBSD during the history of Sys::Syscall and this project and did bite us in some cases; the actual numbers don't get recycled for new syscalls. We're also fortunate that sendmsg and recvmsg syscalls and associated msghdr and cmsg structs predate the BSD forks and are compatible across all the BSDs I've tried. OpenBSD routes Perl `syscall' through libc; while NetBSD + FreeBSD document procedures for maintaining backwards compatibility. It looks like Dragonfly follows FreeBSD, here. Tested on i386 OpenBSD, and amd64 {Free,Net,Open,Dragonfly}BSD This enables *BSD users to use lei, -cindex and future SCM_RIGHTS-only features without needing Inline::C. [1] https://cvsweb.openbsd.org/src/gnu/usr.bin/perl/gen_syscall_emulator.pl [2] https://www.netbsd.org/docs/internals/en/chap-processes.html#syscall_versioning [3] https://wiki.freebsd.org/AddingSyscalls#Backward_compatibily
2023-12-29pure Perl inotify support
This is a step towards improving the out-of-the-box experience in achieving notifications without XS, extra downloads, and .so loading + runtime mmap overhead. This also fixes loongarch support of all Linux syscalls due to a bad regexp :x All the reachable Linux architectures listed at <https://portal.cfarm.net/machines/list/> should be supported. At the moment, there appears to be no reachable sparc* Linux machines available to cfarm users. Fixes: b0e5093aa3572a86 (syscall: add support for riscv64, 2022-08-11)
2023-10-06devel/sysdefs-list: show more info regardless of OS
We'll show SO_ACCEPTFILTER since it's supported on three of the BSDs we support.
2023-09-18devel/sysdefs-list: cleanup and make partially eval-able
It's stdout can now be placed into a Perl hash, now. The MAYBE pseudo-macro can now emit hex as well as decimal output to make some constants look nicer and eliminate some special cases. Constants for _SC_AVPHYS_PAGES and _SC_PAGE*SIZE have also been added in case we dynamically generate BATCH_SIZE for search indexing I'm not sure how far I want to go down this route, but it could open the door to us supporting more things on platforms with unstable syscall numbers with only a C compiler, but without relying on needing Inline::C (nor XS and difficult-to-audit binaries). This is because a C compiler is readily installed on more systems than Inline::C (even if packaged) requires an additional installation step.
2023-09-09pop3d: support fcntl locks on NetBSD and OpenBSD
MboxLock already supported it since it locked the whole file, but POP3D requires more fine-grained locking at file offsets. I wonder if "struct flock" is old enough for it to be the same across all the BSDs, it certainly seems so. I originally considered using C11 `_Generic' support for the struct offset/type dumping as I have in other projects, but I am not ready to depend on C11 for this project, yet. While we're modifying devel/sysdefs-list, add some Linux-only structs to verify our `pack' templates are correct and remain so when we encounter new architectures.
2023-09-05update devel/syscall-list to devel/sysdefs-list
We use it to dump SIGWINCH and _SC_NPROCESSORS_ONLN, so "sysdefs" is a more appropriate list for *BSD users.