Loading ...
Sorry, an error occurred while loading the content.

Re: [ftpbench] Error compiling on FreeBSD 4.10. Cant find 'SIGRTMIN' def.

Expand Messages
  • Dan Kegel
    ... 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
    Message 1 of 3 , Oct 31, 2004
    • 0 Attachment
      Nirav Jasapara wrote:
      > I am not able to built the sources. I run ./configure and then run make all.
      > I get the following error.
      >
      > FreeBSD ted.isi.edu 4.10-STABLE FreeBSD 4.10-STABLE ...
      >
      > g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\"
      > -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"dkftpbench\"
      > -DVERSION=\"0.45\" -DHAVE_INET_ATON=1 -DHAVE_KQUEUE=1 -DHAVE_GETIFADDRS=1
      > -DHAVE_DEVPOLL=0 -DHAVE_DEVEPOLL=0 -D_GNU_SOURCE=1 -DSTDC_HEADERS=1
      > -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1
      > -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_UNISTD_H=1
      > -DHAVE_PTHREAD_H=1 -D__x86__=1 -D__freebsd__=1 -I. -I. -Wall -W
      > -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations
      > -Wwrite-strings -O2 -pthread -c Poller_test.cc ...
      >
      > Poller_test.cc:312: `SIGRTMIN' undeclared (first use this function) ...
      >
      > Poller_test.cc:251: aggregate `struct sockaddr_in sin' has incomplete type
      > and cannot be initialized ...
      >
      > Stop in /auto/darkstar/guest/jasapara/ftp/dkftpbench-0.45.
      >
      > I found the patch sent by Francis for FreeBSD. I see that the tarball has
      > already been patched.
      >
      > I run grep to find 'SIGRTMIN' but I cant find it in any of the headers
      > provided. What am I missing ?

      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

      --
      Trying to get a job as a c++ developer? See http://kegel.com/academy/getting-hired.html
    • Nirav Jasapara
      ... Thanks Dan :) Here is a patch. (Use with caution!) %cat patch ... +++ Poller_test.cc Sun Oct 31 23:16:49 2004 @@ -36,6 +36,10 @@ #include
      Message 2 of 3 , Oct 31, 2004
      • 0 Attachment
        > -----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.
      Your message has been successfully submitted and would be delivered to recipients shortly.