Hi,
I compiled this simple program with gcc 2.95 on FreeBSD 4.3:
#include <signal.h>
int main(int argc, char *argv[])
{
sigqueue(0,0,(union sigval)0);
sigtimedwait((sigset_t *)0, (siginfo_t *)0, (struct timespec *)0);
sigwaitinfo((sigset_t *)0, (siginfo_t *)0);
return 0;
}
% gcc test.c
/tmp/cc6AHohn.o: In function `main':
/tmp/cc6AHohn.o(.text+0x11): undefined reference to `sigqueue'
/tmp/cc6AHohn.o(.text+0x22): undefined reference to `sigtimedwait'
/tmp/cc6AHohn.o(.text+0x31): undefined reference to `sigwaitinfo'
If I look in signal.h, I find:
#ifdef _P1003_1B_VISIBLE
__BEGIN_DECLS
int sigqueue __P((_BSD_PID_T_, int, const union sigval));
int sigtimedwait __P((const sigset_t *, siginfo_t *, const struct timespec *));
int sigwaitinfo __P((const sigset_t *, siginfo_t *));
__END_DECLS
#endif
So, apparently _P1003_1B_VISIBLE is somehow being defined by the
header files, but these particular functions are not available.
Can someone tell me how I can detect if these functions are available
on a system at compile time? I cannot use an autoconf type of test,
and need to use a preprocessor macro type of test.
It seems to me that this particular definition of _P1003_1B_VISIBLE
is broken if it is enabling symbols in header files to appear
which cannot be linked on a generically configured FreeBSD system.
Thanks.
--
Craig Rodrigues Distributed Systems and Logistics, Office 6/304
[EMAIL PROTECTED] BBN Technologies, a Verizon company
(617) 873-4725 Cambridge, MA
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message