How do I link BSD C functions to my executable? To link executables using BSD compatibility functions (these are functions in the 3B man pages) add the library libucbc (-lucbc). The following is an example done in C. $ cat a.c #include #include #include main() { wait3(NULL,0,NULL); sigblock(0xffffffff); } $ cc a.c Undefined first referenced symbol in file sigblock a.o wait3 a.o ld: a.out: fatal error: Symbol referencing errors. No output written to a.out cc: ERROR: Errors in the ld pass, status = 1 $ These function are undefined because the ucb C library is not included. $ cc a.c -lucbc $ With the -lucbc option added we get no error messages. Running "man -k 3B" will show all the BSD functions. $ man -k 3B bstring: bcopy, bcmp, bzero (3B) - (BSD) bit and byte string operations dbm: dbminit, dbmclose, fetch, store, delete, firstkey, nextkey (3B) - (BSD) data base subroutines ... usleep (3B) - (BSD) suspend execution for interval in microseconds utimes (3B) - (BSD) set file times wait: wait3, WIFSTOPPED, WIFSIGNALED, WIFEXITED (3B) - (BSD) wait for process to \%terminate or stop For more information see cc(1).