You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Timothy Bish (JIRA)" <ji...@apache.org> on 2012/08/27 15:06:07 UTC

[jira] [Updated] (AMQCPP-423) Compiling with clang++

     [ https://issues.apache.org/jira/browse/AMQCPP-423?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Timothy Bish updated AMQCPP-423:
--------------------------------

      Priority: Major  (was: Blocker)
    Issue Type: New Feature  (was: Bug)

clang isn't currently supported, if you want to submit patches you are welcome to.
                
> Compiling with clang++
> ----------------------
>
>                 Key: AMQCPP-423
>                 URL: https://issues.apache.org/jira/browse/AMQCPP-423
>             Project: ActiveMQ C++ Client
>          Issue Type: New Feature
>          Components: CMS Impl
>    Affects Versions: 3.4.3
>         Environment: Redhat Enterprise Linux Server 6.3
> Clang 3.0
>            Reporter: Steve Pietrowicz
>            Assignee: Timothy Bish
>
> We're trying to get our entire software stack running under clang.  One of the third party packages we use is ActiveMQCPP.  We're using an older version of the library, which builds, but results in an error when we try to use it (see the last part of this message).
> The ActiveMQCPP 3.4.3 package fails to compile under clang 3.0, first giving many warnings in other files, and then the error in ExecutorService.cpp:
> libtool: compile:  clang++ -DHAVE_CONFIG_H -I. -I../.. -ansi -pedantic -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -I/lsst/home/srp/clang/lsst_clang/Linux64/external/apr/1.3.3+1/include/apr-1 -I/lsst/home/srp/clang/lsst_clang/Linux64/external/apr/1.3.3+1/include/apr-1 -W -Wall -Wextra -Wconversion -fPIC -fstrict-aliasing -Wstrict-aliasing=2 -Wno-long-long -g -O2 -pthread -MT decaf/util/concurrent/libactivemq_cpp_la-ExecutorService.lo -MD -MP -MF decaf/util/concurrent/.deps/libactivemq_cpp_la-ExecutorService.Tpo -c decaf/util/concurrent/ExecutorService.cpp -o decaf/util/concurrent/libactivemq_cpp_la-ExecutorService.o >/dev/null 2>&1
> In file included from decaf/util/concurrent/Executors.cpp:25:
> In file included from ./decaf/util/concurrent/ThreadPoolExecutor.h:23:
> In file included from ./decaf/util/concurrent/BlockingQueue.h:22:
> In file included from ./decaf/util/AbstractQueue.h:28:
> ./decaf/util/Queue.h:101:19: warning: 'decaf::util::Queue<decaf::lang::Runnable
>       *>::remove' hides overloaded virtual function [-Woverloaded-virtual]
>         virtual E remove() = 0;
>                   ^
> ./decaf/util/AbstractQueue.h:47:34: note: in instantiation of template class
>       'decaf::util::Queue<decaf::lang::Runnable *>' requested here
>     class AbstractQueue : public decaf::util::Queue<E>,
>                                  ^
> ./decaf/util/concurrent/BlockingQueue.h:164:34: note: in instantiation of
>       template class 'decaf::util::AbstractQueue<decaf::lang::Runnable *>'
>       requested here
>     class BlockingQueue : public AbstractQueue<E> {
>                                  ^
> ./decaf/util/concurrent/ThreadPoolExecutor.h:598:45: note: in instantiation of
>       template class
>       'decaf::util::concurrent::BlockingQueue<decaf::lang::Runnable *>'
>       requested here
>                         executer->getQueue()->poll(oldest);
>                                             ^
> ./decaf/util/Collection.h:214:22: note: hidden overloaded virtual function
>       'decaf::util::Collection<decaf::lang::Runnable *>::remove' declared here
>         virtual bool remove( const E& value ) = 0;
>                      ^
> In file included from decaf/util/concurrent/Executors.cpp:28:
> ./decaf/util/concurrent/LinkedBlockingQueue.h:465:27: warning: implicit
>       conversion changes signedness: 'int' to 'size_type' (aka 'unsigned long')
>       [-Wsign-conversion]
>             array.reserve(size);
>             ~~~~~         ^~~~
> decaf/util/concurrent/Executors.cpp:112:28: note: in instantiation of member
>       function
>       'decaf::util::concurrent::LinkedBlockingQueue<decaf::lang::Runnable
>       *>::toArray' requested here
>         backingQ.reset(new LinkedBlockingQueue<Runnable*>());
>                            ^
> In file included from decaf/util/concurrent/Executors.cpp:25:
> In file included from ./decaf/util/concurrent/ThreadPoolExecutor.h:23:
> In file included from ./decaf/util/concurrent/BlockingQueue.h:22:
> ./decaf/util/AbstractQueue.h:63:17: error: use of undeclared identifier 'offer'
>             if( offer( value ) ) {
>                 ^
>                 this->
> decaf/util/concurrent/Executors.cpp:112:28: note: in instantiation of member
>       function 'decaf::util::AbstractQueue<decaf::lang::Runnable *>::add'
>       requested here
>         backingQ.reset(new LinkedBlockingQueue<Runnable*>());
>                            ^
> ./decaf/util/Queue.h:76:22: note: must qualify identifier to find this
>       declaration in dependent base class
>         virtual bool offer( const E& value ) = 0;
>                      ^
> In file included from decaf/util/concurrent/Executors.cpp:18:
> In file included from decaf/util/concurrent/Executors.h:24:
> In file included from ./decaf/util/concurrent/ExecutorService.h:24:
> In file included from ./decaf/util/ArrayList.h:30:
> In file included from ./decaf/util/List.h:27:
> ./decaf/util/AbstractCollection.h:318:33: warning: implicit conversion changes
>       signedness: 'int' to 'size_type' (aka 'unsigned long') [-Wsign-conversion]
>             valueArray.reserve( this->size() );
>             ~~~~~~~~~~          ^~~~~~~~~~~~
> decaf/util/concurrent/Executors.cpp:112:28: note: in instantiation of member
>       function 'decaf::util::AbstractCollection<decaf::lang::Runnable
>       *>::toArray' requested here
>         backingQ.reset(new LinkedBlockingQueue<Runnable*>());
>                            ^
> 5 warnings and 1 error generated.
> Version 3.1.2 of the library compiles, but throws an exception (out of range) on in createConnection in AMQConnectionFactory.
> I wasn't sure how to classify this issue and whether it should be classified as enhancement request.  Is there any plan to support clang in the future?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira