Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-2549

Port qpid to FreeBSD

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.6
    • qpid-cpp-1.35.0
    • C++ Broker

    Description

      For qpid to work on FreeBSD it needs a version of the low level Poller code that works there:

      [Comments from original reporter below]
      g++ Werror -pedantic -Wall -Wextra -Wno-shadow -Wpointer-arith -Wcast-qual -Wcast-align -Wno-long-long -Wvolatile-register-var -Winvalid-pch -Wno-system-headers -Woverloaded-virtual -DMODULE_DIR=\"/usr/local/lib/qpid/daemon\" -DCONF_FILE=\"/usr/local/etc/qpidd.conf\" -g -O2 -o .libs/qpidd qpidd-qpidd.o posix/qpidd-QpiddBroker.o -L/usr/local/lib -L/usr/lib/openais -L/usr/lib64/openais -L/usr/lib/corosync -L/usr/lib64/corosync ./.libs/libqpidbroker.so /test/qpid/qpid/cpp/src/.libs/libqpidcommon.so ./.libs/libqpidcommon.so -lboost_program_options -lboost_filesystem -luuid -Wl,-rpath -Wl,/usr/local/lib
      /test/qpid/qpid/cpp/src/.libs/libqpidcommon.so: undefined reference to `qpid::sys::Poller::interrupt(qpid::sys::PollerHandle&)'
      /test/qpid/qpid/cpp/src/.libs/libqpidcommon.so: undefined reference to `typeinfo for qpid::sys::PollerHandle'
      ./.libs/libqpidbroker.so: undefined reference to `qpid::sys::Poller::shutdown()'
      /test/qpid/qpid/cpp/src/.libs/libqpidcommon.so: undefined reference to `qpid::sys::PollerHandle::~PollerHandle()'
      ./.libs/libqpidbroker.so: undefined reference to `qpid::sys::Poller::Poller()'
      /test/qpid/qpid/cpp/src/.libs/libqpidcommon.so: undefined reference to `qpid::sys::Poller::addFd(qpid::sys::PollerHandle&, qpid::sys::Poller::Direction)'
      /test/qpid/qpid/cpp/src/.libs/libqpidcommon.so: undefined reference to `qpid::sys::Poller::delFd(qpid::sys::PollerHandle&)'
      /test/qpid/qpid/cpp/src/.libs/libqpidcommon.so: undefined reference to `qpid::sys::PollerHandle::PollerHandle(qpid::sys::IOHandle const&)'
      /test/qpid/qpid/cpp/src/.libs/libqpidcommon.so: undefined reference to `qpid::sys::Poller::modFd(qpid::sys::PollerHandle&, qpid::sys::Poller::Direction)'

      I think it would be nice to have at least a standard select/poll interface. Going straight with (and only with) the specialised OS-dependent interfaces seem to be a bad idea for the poor people, not running Linux (or Solaris, or Windows, if they work correctly).
      BTW, shouldn't using libevent or libev would be more logical?

      [Comments from AStitcher:]
      There are two essential options here write a Poller using the kqueue which has very similar capability to the Linux epoll, or write a less functional (and probably performant) but far more portable version using the posix poll.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              astitcher Andrew Stitcher
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: