There are several "families" of signal system calls. This is a very confusing situation. sighold(), sigset(), and sigrelse() all originated on System 5 Release 3. They were also documented in the SVID (System V Interface Definition).
I don't have access to a freeBSD system, but I just reviewed the online docs for freeBSD. It has two signal families available: the Berkeley family, and the Posix family. You are going to need to switch families. And I suggest that you switch to the Posix family. It is especially important that you pick a family. Don't mix system calls from different families in the same program.
I saw FreeBSD man pages for the following Posix signal system calls:
sigaction()
sigsuspend()
sigaltstack() (you will rarely need to use this one)
sigpending()
sigprocmask()
These system calls are probably going to be found more often than the other families. They will work on Suns. If you start using these calls, you will maximize the portability of your code.