qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matt Stevenson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (QPID-3320) Qpid C++ build fails on Cygwin
Date Fri, 24 Jun 2011 10:04:47 GMT

    [ 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:dev-subscribe@qpid.apache.org


Mime
View raw message