Hi Kim,
It looks like there is the same problem also with the log2 function. That
seems to be the last one - when I work around it the compilation succeeds.
So it looks like there is nothing else.
Thanks & Regards
Jakub
/root/rpmbuild/BUILD/qpid-cpp-1.37.0/src/qpid/linearstore/MessageStoreImpl.cpp:
In static member function 'static uint32_t
qpid::linearstore::MessageStoreImpl::chkJrnlWrPageCacheSize(uint32_t, const
string&)':
/root/rpmbuild/BUILD/qpid-cpp-1.37.0/src/qpid/linearstore/MessageStoreImpl.cpp:85:36:
error: 'log2' is not a member of 'std'
p = std::pow(2, std::floor(std::log2(p) + 0.5));
^
/root/rpmbuild/BUILD/qpid-cpp-1.37.0/src/qpid/linearstore/MessageStoreImpl.cpp:85:36:
note: suggested alternative:
In file included from /usr/include/features.h:375:0,
from
/usr/include/c++/4.8.2/x86_64-redhat-linux/bits/os_defines.h:39,
from
/usr/include/c++/4.8.2/x86_64-redhat-linux/bits/c++config.h:2097,
from /usr/include/c++/4.8.2/string:38,
from
/root/rpmbuild/BUILD/qpid-cpp-1.37.0/src/qpid/broker/PersistableExchange.h:25,
from
/root/rpmbuild/BUILD/qpid-cpp-1.37.0/src/qpid/broker/MessageStore.h:24,
from
/root/rpmbuild/BUILD/qpid-cpp-1.37.0/src/qpid/linearstore/MessageStoreImpl.h:25,
from
/root/rpmbuild/BUILD/qpid-cpp-1.37.0/src/qpid/linearstore/MessageStoreImpl.cpp:22:
/usr/include/bits/mathcalls.h:145:1: note: 'log2'
__MATHCALL (log2,, (_Mdouble_ __x));
^
At global scope:
cc1plus: error: unrecognized command line option
"-Wno-implicit-fallthrough" [-Werror]
cc1plus: all warnings being treated as errors
make[2]: ***
[src/CMakeFiles/linearstore.dir/qpid/linearstore/MessageStoreImpl.cpp.o]
Error 1
make[2]: Leaving directory `/root/rpmbuild/BUILD/qpid-cpp-1.37.0'
make[1]: *** [src/CMakeFiles/linearstore.dir/all] Error 2
On Wed, Feb 15, 2017 at 6:38 PM, Kim van der Riet <[email protected]>
wrote:
> My error.
>
> I have replaced the offending statement with a more traditional version
> that should not require c++11. See QPID-7676.
>
> Kim
>
>
> On 02/14/2017 05:18 PM, Jakub Scholz wrote:
>
>> Hi Alan,
>>
>> Thanks for your help. The -std=c++11 flag indeed helps to work around the
>> problem.
>>
>> Thanks & Regards
>> Jakub
>>
>>
>> On Mon, Feb 13, 2017 at 3:42 PM, Alan Conway <[email protected]> wrote:
>>
>> On Fri, 2017-02-10 at 22:46 +0100, Jakub Scholz wrote:
>>>
>>>> Hi,
>>>>
>>>> I seem to be unable to build the latest master of Qpid C++ broker. It
>>>> seems
>>>> to complain about the round function not being in std (the complete
>>>> output
>>>> is below). It seems to be related to QPID-7666 / commit 34cfb7f.
>>>>
>>>> I'm compiling it on CentOS 7 with g++ version 4.8.5, Make version
>>>> 3.82 and
>>>> cmake 2.8.12.2. Is this some bug in the code? Or do I need some newer
>>>> compiler / some newer libraries?
>>>>
>>>
>>> This should build if you do:
>>> cmake -DCMAKE_CXX_FLAGS=-std=c++11
>>>
>>> However qpid-cpp has always been buildable with c++03 so I think this
>>> is a regression that should be fixed. Kim, this was introduced in your
>>> commit:
>>>
>>> 34cfb7f0 QPID-7666: Added wcache-num-pages (and tpl-wcache-num-pages)
>>> to linearstore. Changed defaults for regular queues to wcache-page-
>>> size=16 (kiB) and set wcache-num-pages default to 16. Added wcache-
>>> page-size and wcache-num-pages to qpid-config.
>>>
>>> Can you fix that and make sure we compile with -std=c++03? FYI
>>> cppreference.com is a good reference for checking which version of
>>> C/C++ things were introduced in - anything that doesn't have an
>>> annotation like "(since C++11)" is safely c++03 or before.
>>>
>>> Cheers,
>>> Alan.
>>>
>>> Thanks & Regards
>>>> Jakub
>>>>
>>>> [ 79%] Building CXX object
>>>> src/CMakeFiles/linearstore.dir/qpid/linearstore/MessageStoreImpl.cpp.
>>>> o
>>>> /qpid-cpp/src/qpid/linearstore/MessageStoreImpl.cpp: In static member
>>>> function 'static uint32_t
>>>> qpid::linearstore::MessageStoreImpl::chkJrnlWrPageCacheSize(uint32_t,
>>>> const
>>>> string&)':
>>>> /qpid-cpp/src/qpid/linearstore/MessageStoreImpl.cpp:85:25: error:
>>>> 'round'
>>>> is not a member of 'std'
>>>> p = std::pow(2, std::round(std::log2(p)));
>>>> ^
>>>> /qpid-cpp/src/qpid/linearstore/MessageStoreImpl.cpp:85:25: note:
>>>> suggested
>>>> alternatives:
>>>> In file included from /usr/include/features.h:375:0,
>>>> from
>>>> /usr/include/c++/4.8.2/x86_64-redhat-linux/bits/os_defines.h:39,
>>>> from
>>>> /usr/include/c++/4.8.2/x86_64-redhat-linux/bits/c++config.h:2097,
>>>> from /usr/include/c++/4.8.2/string:38,
>>>> from /qpid-
>>>> cpp/src/qpid/broker/PersistableExchange.h:25,
>>>> from /qpid-cpp/src/qpid/broker/MessageStore.h:24,
>>>> from /qpid-
>>>> cpp/src/qpid/linearstore/MessageStoreImpl.h:25,
>>>> from
>>>> /qpid-cpp/src/qpid/linearstore/MessageStoreImpl.cpp:22:
>>>> /usr/include/bits/mathcalls.h:310:1: note: 'round'
>>>> __MATHCALLX (round,, (_Mdouble_ __x), (__const__));
>>>> ^
>>>> In file included from /usr/include/boost/math/tools/config.hpp:25:0,
>>>> from
>>>> /usr/include/boost/math/special_functions/sign.hpp:16,
>>>> from /usr/include/boost/lexical_cast.hpp:167,
>>>> from /qpid-cpp/src/qpid/Options.h:33,
>>>> from /qpid-
>>>> cpp/src/qpid/linearstore/MessageStoreImpl.h:27,
>>>> from
>>>> /qpid-cpp/src/qpid/linearstore/MessageStoreImpl.cpp:22:
>>>> /usr/include/boost/math/special_functions/detail/round_fwd.hpp:43:6:
>>>> note:
>>>> 'boost::math::round'
>>>> T round(const T& v);
>>>> ^
>>>> /qpid-cpp/src/qpid/linearstore/MessageStoreImpl.cpp:85:36: error:
>>>> 'log2' is
>>>> not a member of 'std'
>>>> p = std::pow(2, std::round(std::log2(p)));
>>>> ^
>>>> /qpid-cpp/src/qpid/linearstore/MessageStoreImpl.cpp:85:36: note:
>>>> suggested
>>>> alternative:
>>>> In file included from /usr/include/features.h:375:0,
>>>> from
>>>> /usr/include/c++/4.8.2/x86_64-redhat-linux/bits/os_defines.h:39,
>>>> from
>>>> /usr/include/c++/4.8.2/x86_64-redhat-linux/bits/c++config.h:2097,
>>>> from /usr/include/c++/4.8.2/string:38,
>>>> from /qpid-
>>>> cpp/src/qpid/broker/PersistableExchange.h:25,
>>>> from /qpid-cpp/src/qpid/broker/MessageStore.h:24,
>>>> from /qpid-
>>>> cpp/src/qpid/linearstore/MessageStoreImpl.h:25,
>>>> from
>>>> /qpid-cpp/src/qpid/linearstore/MessageStoreImpl.cpp:22:
>>>> /usr/include/bits/mathcalls.h:145:1: note: 'log2'
>>>> __MATHCALL (log2,, (_Mdouble_ __x));
>>>> ^
>>>> make[2]: ***
>>>> [src/CMakeFiles/linearstore.dir/qpid/linearstore/MessageStoreImpl.cpp
>>>> .o]
>>>> Error 1
>>>> make[1]: *** [src/CMakeFiles/linearstore.dir/all] Error 2
>>>> make: *** [all] Error 2
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>>
>>>
>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>