9fans/plan9port

kcmp in cmd/sort.c conflicts with FreeBSD system header file

VoxSciurorum opened this issue · 1 comments

Recent development versions of FreeBSD define a function kcmp in <unistd.h>

     kcmp(pid_t pid1, pid_t pid2, int type, uintptr_t idx1, uintptr_t idx2);

This conflicts with int kcmp(Key *ka, Key *kb) defined in src/cmd/sort.c causing a compilation error.

The kcmp system call also exists on Linux but there is no C library wrapper to conflict. kcmp(2): "Glibc does not provide a wrapper for this system call; call it using syscall(2)."

kcmp was added to /usr/include/unicode.h post FreeBSD-14.0.

As kcmp is local to src/cmd/sort.c , renaming it to keycmp would fix this without impacting anything else.