From: George Koehler Subject: Re: Attempting new port: ctune Internet Radio player To: Chris Billington Cc: ports@openbsd.org Date: Mon, 9 Dec 2024 17:46:40 -0500 On Sun, 8 Dec 2024 13:36:07 +0800 Chris Billington wrote: > First steps, getting the program to build, having solved a few type errors I have run into the following issue: > ... > /home/chris/Downloads/build/ctune/src/datastructure/CircularBuffer.c:36:17: warning: call to undeclared function 'syscall'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] > long fd = syscall( __NR_memfd_create, name, flags ); > ^ > /home/chris/Downloads/build/ctune/src/datastructure/CircularBuffer.c:36:26: error: use of undeclared identifier '__NR_memfd_create' > long fd = syscall( __NR_memfd_create, name, flags ); > ^ > 1 warning and 1 error generated. OpenBSD has neither the syscall(2) nor memfd_create(2) functions from Linux. I would try mkstemp(3) and unlink(2) to create a file descriptor. That might look like #ifdef __OpenBSD__ int fd; char buf [] = "/tmp/mem.XXXXXXXXXX"; fd = mkstemp( buf ); if( fd != -1 ) unlink( buf ); return fd; #else long fd = syscall( __NR_memfd_create, name, flags ); ... return cast; #endif If mkstemp or unlink aren't declared, then #include or . --gkoehler