activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Steve Pietrowicz (JIRA)" <j...@apache.org>
Subject [jira] [Created] (AMQCPP-423) Compiling with clang++
Date Mon, 27 Aug 2012 12:58:07 GMT
Steve Pietrowicz created AMQCPP-423:
---------------------------------------

             Summary: Compiling with clang++
                 Key: AMQCPP-423
                 URL: https://issues.apache.org/jira/browse/AMQCPP-423
             Project: ActiveMQ C++ Client
          Issue Type: Bug
          Components: CMS Impl
    Affects Versions: 3.4.3
         Environment: Redhat Enterprise Linux Server 6.3
Clang 3.0
            Reporter: Steve Pietrowicz
            Assignee: Timothy Bish
            Priority: Blocker


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

Mime
View raw message