From owner-freebsd-hackers Thu Feb 27 17:33:17 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id RAA00191 for hackers-outgoing; Thu, 27 Feb 1997 17:33:17 -0800 (PST) Received: (from mpp@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id RAA00137; Thu, 27 Feb 1997 17:32:42 -0800 (PST) From: Mike Pritchard Message-Id: <199702280132.RAA00137@freefall.freebsd.org> Subject: Re: sig*set macros in To: bde@zeta.org.au (Bruce Evans) Date: Thu, 27 Feb 1997 17:32:42 -0800 (PST) Cc: bde@zeta.org.au, freebsd-hackers@freefall.freebsd.org In-Reply-To: <199702271114.WAA28126@godzilla.zeta.org.au> from "Bruce Evans" at Feb 27, 97 10:14:34 pm X-Mailer: ELM [version 2.4 PL24] Content-Type: text Sender: owner-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk Bruce Evans wrote: > > >> >Is there a good reason for having the sig*set macros defined > >> >in and the equivalent functions in libc? > > >> [Long answer.] > > >Let's try this again. > > >Can we remove the macro definitions, and just rely on the functions? > > Not so long answer: why do you want to? Some versions of Linux > removed them because they are buggy, but the FreeBSD libc versions > are equally buggy. > > Short answer: no. I've got a PR I was fixing, and it says that POSIX requires that these functions check the value of the signal number that was passed in, and return -1 if it is out of range, and set errno to EINVAL. Doing this in the macro versions now causes name space polution in signal.h, because they now depend on errno.h for EINVAL and errno. Removing the macros and just using the functions solves this problem. -- Mike Pritchard mpp@FreeBSD.org "Go that way. Really fast. If something gets in your way, turn"