RE: [ftpbench] Error compiling on FreeBSD 4.10. Cant find 'SIGRTMIN' def.
> -----Original Message-----
> From: Dan Kegel [mailto:
dank@...]
>
> SIGRTMIN is part of the Real Time Signals optional section of POSIX.
> It would be nice if dkftpbench did not require Real Time Signals to
> compile.
>
> Sounds like Poller_test.cc should conditionalize this line
> CHECK(0, m_p.setSignum(SIGRTMIN));
> with #ifdef SIGRTMIN.
>
> As for your second error:
>
> > Poller_test.cc:251: aggregate `struct sockaddr_in sin' has incomplete
> type
> > and cannot be initialized ...
>
> Poller_test.cc has the lines
>
> #include <sys/socket.h>
> #include <arpa/inet.h>
> #include <sys/socket.h>
>
> Hmm, maybe one of those should be sys/types.h instead? Anyway,
> some .h file is missing. Should be easy to fix. Let us know what
> it is.
> - Dan
Thanks Dan :)
Here is a patch. (Use with caution!)
%cat patch
--- Poller_test.cc.old Wed Jul 31 07:59:52 2002
+++ Poller_test.cc Sun Oct 31 23:16:49 2004
@@ -36,6 +36,10 @@
#include <arpa/inet.h>
#include <sys/socket.h>
+/* Added to compile on FreeBSD.
+Also conditionalize statements using SIGRTMIN */
+#include <netinet/in.h>
+
/*----------------------------------------------------------------------
Portable function to set a socket into nonblocking mode.
----------------------------------------------------------------------*/
@@ -136,7 +140,9 @@
void testMondo()
{
CHECK(0, m_p.init());
+ #ifdef SIGRTMIN /* FreeBSD does not have this
defined */
CHECK(0, m_p.setSignum(SIGRTMIN));
+ #endif
clear();
@@ -238,7 +244,9 @@
void testRejection(const char *theHost, int thePort)
{
CHECK(0, m_p.init());
+ #ifdef SIGRTMIN
CHECK(0, m_p.setSignum(SIGRTMIN));
+ #endif
DPRINT(("Connect to a port that will refuse connections,
verify error reported.\n"));
// Requires theHost = a nonlocal IP adr, thePort = port
where that host will refuse a connection
@@ -309,7 +317,9 @@
void testWakeUp()
{
CHECK(0, m_p.init());
+ #ifdef SIGRTMIN
CHECK(0, m_p.setSignum(SIGRTMIN));
+ #endif
DPRINT(("testWakeUp: Set up a wakeup pipe\n"));
CHECK(0, m_p.initWakeUpPipe());
@@ -337,7 +347,9 @@
{
DPRINT(("testCaching\n"));
CHECK(0, m_p.init());
+ #ifdef SIGRTMIN
CHECK(0, m_p.setSignum(SIGRTMIN));
+ #endif
// Create a pipe so we have file descriptors to watch with
Poller.
// We use a pipe rather than a file or socket because it's
easy to
%
I know it compiles without a warning. Now to see if it works ;-)
- Nirav Jasapara.
http://www-scf.usc.edu/~jasapara/
"A professional is just an amateur who didn't quit" - Richard Bach.