Opened 10 months ago
Last modified 10 months ago
#72822 new defect
daemontools @0.76: error: call to undeclared function 'lockf'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
| Reported by: | jf (Jeffrey 'jf' Lim) | Owned by: | |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | ports | Version: | |
| Keywords: | sequoia haspatch | Cc: | cooljeanius (Eric Gallager) |
| Port: | daemontools |
Description
$ sudo port install daemontools Password: ---> Fetching archive for daemontools ---> Attempting to fetch daemontools-0.76_3.darwin_24.arm64.tbz2 from https://packages.macports.org/daemontools ---> Attempting to fetch daemontools-0.76_3.darwin_24.arm64.tbz2 from http://jog.id.packages.macports.org/macports/packages/daemontools ---> Attempting to fetch daemontools-0.76_3.darwin_24.arm64.tbz2 from http://aarnet.au.packages.macports.org/pub/macports/packages/daemontools ---> Fetching distfiles for daemontools ---> Verifying checksums for daemontools ---> Extracting daemontools ---> Applying patches to daemontools ---> Configuring daemontools ---> Building daemontools Error: Failed to build daemontools: command execution failed Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_daemontools/daemontools/main.log for details. Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug. Error: Processing of port daemontools failed $
Last few lines of main.log showing the error (the complete main.log is attached, just fyi):
:info:build ./compile lock_ex.c
:info:build lock_ex.c:12:30: error: call to undeclared function 'lockf'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
:info:build 12 | int lock_ex(int fd) { return lockf(fd,1,0); }
:info:build | ^
:info:build 1 error generated.
:info:build make: *** [lock_ex.o] Error 1
:info:build Command failed: cd "/opt/local/var/macports/build/daemontools-9f9e0159/work/admin/daemontools-0.76" && package/compile
:info:build Exit code: 2
:error:build Failed to build daemontools: command execution failed
:debug:build Error code: CHILDSTATUS 53466 2
:debug:build Backtrace: command execution failed
:debug:build while executing
:debug:build "system {*}$notty {*}$callback {*}$nice $fullcmdstring"
:debug:build invoked from within
:debug:build "command_exec -callback portprogress::target_progress_callback build"
:debug:build (procedure "portbuild::build_main" line 10)
:debug:build invoked from within
:debug:build "$procedure $targetname"
:error:build See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_daemontools/daemontools/main.log for details.
The fix (with help from Homebrew's formula, and tested on my system) is to patch some more (hm). Specifically:
--- src/lock_ex.c.orig 2001-07-13 00:49:49 +++ src/lock_ex.c 2025-08-13 14:07:33 @@ -1,5 +1,6 @@ /* Public domain. */ +#include <unistd.h> #include <sys/types.h> #include <sys/file.h> #include <fcntl.h> --- src/lock_exnb.c.orig 2001-07-13 00:49:49 +++ src/lock_exnb.c 2025-08-13 14:07:33 @@ -1,5 +1,6 @@ /* Public domain. */ +#include <unistd.h> #include <sys/types.h> #include <sys/file.h> #include <fcntl.h> --- src/multilog.c.orig 2025-08-13 13:42:49 +++ src/multilog.c 2025-08-13 14:07:39 @@ -2,6 +2,7 @@ #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> +#include <stdio.h> #include "direntry.h" #include "alloc.h" #include "buffer.h" --- src/supervise.c.orig 2025-08-13 13:42:49 +++ src/supervise.c 2025-08-13 14:07:45 @@ -3,6 +3,7 @@ #include <sys/types.h> #include <sys/stat.h> #include <signal.h> +#include <stdio.h> #include "sig.h" #include "strerr.h" #include "error.h"
(This patch file is also attached)
Attachments (2)
Change History (5)
Changed 10 months ago by jf (Jeffrey 'jf' Lim)
Changed 10 months ago by jf (Jeffrey 'jf' Lim)
comment:1 Changed 10 months ago by ryandesign (Ryan Carsten Schmidt)
| Keywords: | sequoia haspatch added |
|---|---|
| Summary: | daemontools fails to build → daemontools @0.76: error: call to undeclared function 'lockf'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] |
comment:2 Changed 10 months ago by jmroot (Joshua Root)
Like ucspi-tcp, this hasn't been updated upstream in decades, and Debian has patches: https://udd.debian.org/patches.cgi?src=daemontools&version=1%3A0.76-14
comment:3 Changed 10 months ago by cooljeanius (Eric Gallager)
| Cc: | cooljeanius added |
|---|
Note: See
TracTickets for help on using
tickets.

Thanks. Did you report the problem to the developer? If not, please do.