[ 
https://issues.apache.org/jira/browse/QPID-3320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13054335#comment-13054335
 ] 

Matt Stevenson commented on QPID-3320:
--------------------------------------

In ./src/CMakeList.txt around line 670 it checks if the non-windows 
CMAKE_SYSTEM_NAME is Linux or SunOS and sets the appropriate qpid_poller_module 
source files.
The CMAKE_SYSTEM_NAME is CYGWIN, so no source files are set for the Poller and 
SystemInfo, causing the undefined references above.

The Linux Poller is ./src/qpid/sys/epoll/EpollPoller.cpp
It requires <sys/epoll.h> which comes from the Linux glibc library which I 
could not find for Cygwin.

The SunOS Poller is ./src/qpid/sys/solaris/ECFPoller.cpp
This requires <port.h> which cannot be found, and I am unsure if it is 
available through any Cygwin packages.
This Poller includes <poll.h> rather than <sys/epoll.h>.  <port.h> is available 
in Cygwin.

Between the Windows, Linux, and Solaris Pollers, it should be possible to 
create a suitable replacement for Cygwin.


> Qpid C++ build fails on Cygwin
> ------------------------------
>
>                 Key: QPID-3320
>                 URL: https://issues.apache.org/jira/browse/QPID-3320
>             Project: Qpid
>          Issue Type: Bug
>          Components: Build Tools, C++ Broker
>    Affects Versions: 0.10
>         Environment: Windows 7 64-bit running Cygwin 1.7.9
>            Reporter: Matt Stevenson
>              Labels: C++, build, cygwin
>         Attachments: CMakeLists.txt
>
>
> I am trying to build the Qpid C++ 0.10 project using gcc in Cygwin.
> I was able to configure everything fine with both cmake and ./configure, but 
> I get errors about 40% through the build, when I get to: "Creating library 
> file: libqpidcommon.dll.a"
> The first errors I got were:
> {code}
> CMakeFiles/qpidcommon.dir/qpid/Modules.o:Modules.cpp:(.text+0x36): undefined 
> reference to `boost::system::get_system_category()'
> CMakeFiles/qpidcommon.dir/qpid/Modules.o:Modules.cpp:(.text+0x40): undefined 
> reference to `boost::system::get_generic_category()'
> CMakeFiles/qpidcommon.dir/qpid/Modules.o:Modules.cpp:(.text+0x4a): undefined 
> reference to `boost::system::get_generic_category()'
> CMakeFiles/qpidcommon.dir/qpid/Modules.o:Modules.cpp:(.text+0x54): undefined 
> reference to `boost::system::get_generic_category()'
> CMakeFiles/qpidcommon.dir/qpid/Modules.o:Modules.cpp:(.text+0x5e): undefined 
> reference to `boost::system::get_system_category()'
> CMakeFiles/qpidcommon.dir/qpid/Modules.o:Modules.cpp:(.text$_ZN5boost6system10error_codeC1Ev[boost::system::error_code::error_code()]+0x10):
>  undefined reference to `boost::system::get_system_category()'
> {code}
> After a little research, I found that the boost system library needed to be 
> linked along with the program_options lib after boost version 1.35 (I have 
> 1.43).  Looking through ./src/CMakeList.txt I saw a few places where someone 
> was checking boost versions to include the system lib, but it wasn't being 
> linked along with program_options.  I made a few changes to link the system 
> lib which fixed the above errors.
> The other errors I could not fix are:
> {code} 
> CMakeFiles/qpidcommon.dir/qpid/Url.o:Url.cpp:(.text+0x783): undefined 
> reference to `qpid::sys::SystemInfo::getLocalIpAddresses(unsigned short, 
> std::vector<qpid::Address, std::allocator<qpid::Address> >&)'
> CMakeFiles/qpidcommon.dir/qpid/Url.o:Url.cpp:(.text+0xc87): undefined 
> reference to `qpid::sys::SystemInfo::getLocalHostname(qpid::Address&)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x9f7):
>  undefined reference to 
> `qpid::sys::Poller::interrupt(qpid::sys::PollerHandle&)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0xb11):
>  undefined reference to 
> `qpid::sys::Poller::interrupt(qpid::sys::PollerHandle&)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0xb36):
>  undefined reference to 
> `qpid::sys::Poller::unregisterHandle(qpid::sys::PollerHandle&)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0xbad):
>  undefined reference to 
> `qpid::sys::Poller::unregisterHandle(qpid::sys::PollerHandle&)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0xd60):
>  undefined reference to 
> `qpid::sys::Poller::unregisterHandle(qpid::sys::PollerHandle&)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0xe67):
>  undefined reference to 
> `qpid::sys::Poller::unmonitorHandle(qpid::sys::PollerHandle&, 
> qpid::sys::Poller::Direction)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0xf75):
>  undefined reference to 
> `qpid::sys::Poller::unmonitorHandle(qpid::sys::PollerHandle&, 
> qpid::sys::Poller::Direction)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1083):
>  undefined reference to 
> `qpid::sys::Poller::unmonitorHandle(qpid::sys::PollerHandle&, 
> qpid::sys::Poller::Direction)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1191):
>  undefined reference to 
> `qpid::sys::Poller::monitorHandle(qpid::sys::PollerHandle&, 
> qpid::sys::Poller::Direction)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x129f):
>  undefined reference to 
> `qpid::sys::Poller::monitorHandle(qpid::sys::PollerHandle&, 
> qpid::sys::Poller::Direction)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1424):
>  undefined reference to 
> `qpid::sys::Poller::monitorHandle(qpid::sys::PollerHandle&, 
> qpid::sys::Poller::Direction)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x151f):
>  undefined reference to 
> `qpid::sys::Poller::registerHandle(qpid::sys::PollerHandle&)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x15a0):
>  undefined reference to 
> `qpid::sys::Poller::monitorHandle(qpid::sys::PollerHandle&, 
> qpid::sys::Poller::Direction)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1780):
>  undefined reference to `qpid::sys::PollerHandle::~PollerHandle()'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x17a8):
>  undefined reference to `qpid::sys::PollerHandle::~PollerHandle()'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1976):
>  undefined reference to `qpid::sys::PollerHandle::~PollerHandle()'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x199e):
>  undefined reference to `qpid::sys::PollerHandle::~PollerHandle()'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1b6c):
>  undefined reference to `qpid::sys::PollerHandle::~PollerHandle()'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1b94):
>  more undefined references to `qpid::sys::PollerHandle::~PollerHandle()' 
> follow
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1bd2):
>  undefined reference to 
> `qpid::sys::PollerHandle::PollerHandle(qpid::sys::IOHandle const&)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1dc6):
>  undefined reference to `qpid::sys::PollerHandle::~PollerHandle()'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1df2):
>  undefined reference to 
> `qpid::sys::PollerHandle::PollerHandle(qpid::sys::IOHandle const&)'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.text+0x1fe6):
>  undefined reference to `qpid::sys::PollerHandle::~PollerHandle()'
> CMakeFiles/qpidcommon.dir/qpid/sys/DispatchHandle.o:DispatchHandle.cpp:(.rdata$_ZTIN4qpid3sys14DispatchHandleE[typeinfo
>  for qpid::sys::DispatchHandle]+0x8): undefined reference to `typeinfo for 
> qpid::sys::PollerHandle'
> {code} 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to