Gearman Server and Client Libraries

errors compiling libtest/stream.cc in gearmand-0.33 on gcc 4.4

Reported by Alexander Piavlo on 2012-05-05
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Gearman
High
Brian Aker

Bug Description

it was configured with:
env CC=gcc44 CXX=g++44 ./configure --disable-libmemcached --disable-libsqlite3

and make fails with:
....
  CXX libtest/libtest_libtest_la-signal.lo
  CXX libtest/libtest_libtest_la-socket.lo
  CXX libtest/libtest_libtest_la-stream.lo
libtest/stream.cc: In constructor 'libtest::stream::make_cerr::make_cerr(const char*, int, const char*)':
libtest/stream.cc:48: error: class 'libtest::stream::make_cerr' does not have any field named 'log'
libtest/stream.cc:48: error: no matching function for call to 'libtest::stream::detail::log<libtest::stream::detail::channelln, char, std::char_traits<char>, std::allocator<char> >::log()'
./libtest/stream.h:126: note: candidates are: libtest::stream::detail::log<OutputPolicy, Ch, Tr, A>::log(std::ostream&, const char*, int, const char*) [with OutputPolicy = libtest::stream::detail::channelln, Ch = char, Tr = std::char_traits<char>, A = std::allocator<char>]
./libtest/stream.h:115: note: libtest::stream::detail::log<libtest::stream::detail::channelln, char, std::char_traits<char>, std::allocator<char> >::log(const libtest::stream::detail::log<libtest::stream::detail::channelln, char, std::char_traits<char>, std::allocator<char> >&)
libtest/stream.cc: In constructor 'libtest::stream::cerr::cerr(const char*, int, const char*)':
libtest/stream.cc:52: error: class 'libtest::stream::cerr' does not have any field named 'log'
libtest/stream.cc:52: error: no matching function for call to 'libtest::stream::detail::log<libtest::stream::detail::channel, char, std::char_traits<char>, std::allocator<char> >::log()'
./libtest/stream.h:126: note: candidates are: libtest::stream::detail::log<OutputPolicy, Ch, Tr, A>::log(std::ostream&, const char*, int, const char*) [with OutputPolicy = libtest::stream::detail::channel, Ch = char, Tr = std::char_traits<char>, A = std::allocator<char>]
./libtest/stream.h:115: note: libtest::stream::detail::log<libtest::stream::detail::channel, char, std::char_traits<char>, std::allocator<char> >::log(const libtest::stream::detail::log<libtest::stream::detail::channel, char, std::char_traits<char>, std::allocator<char> >&)
libtest/stream.cc: In constructor 'libtest::stream::clog::clog(const char*, int, const char*)':
libtest/stream.cc:56: error: class 'libtest::stream::clog' does not have any field named 'log'
libtest/stream.cc:56: error: no matching function for call to 'libtest::stream::detail::log<libtest::stream::detail::channel, char, std::char_traits<char>, std::allocator<char> >::log()'
./libtest/stream.h:126: note: candidates are: libtest::stream::detail::log<OutputPolicy, Ch, Tr, A>::log(std::ostream&, const char*, int, const char*) [with OutputPolicy = libtest::stream::detail::channel, Ch = char, Tr = std::char_traits<char>, A = std::allocator<char>]
./libtest/stream.h:115: note: libtest::stream::detail::log<libtest::stream::detail::channel, char, std::char_traits<char>, std::allocator<char> >::log(const libtest::stream::detail::log<libtest::stream::detail::channel, char, std::char_traits<char>, std::allocator<char> >&)
libtest/stream.cc: In constructor 'libtest::stream::cout::cout(const char*, int, const char*)':
libtest/stream.cc:60: error: class 'libtest::stream::cout' does not have any field named 'log'
libtest/stream.cc:60: error: no matching function for call to 'libtest::stream::detail::log<libtest::stream::detail::channel, char, std::char_traits<char>, std::allocator<char> >::log()'
./libtest/stream.h:126: note: candidates are: libtest::stream::detail::log<OutputPolicy, Ch, Tr, A>::log(std::ostream&, const char*, int, const char*) [with OutputPolicy = libtest::stream::detail::channel, Ch = char, Tr = std::char_traits<char>, A = std::allocator<char>]
./libtest/stream.h:115: note: libtest::stream::detail::log<libtest::stream::detail::channel, char, std::char_traits<char>, std::allocator<char> >::log(const libtest::stream::detail::log<libtest::stream::detail::channel, char, std::char_traits<char>, std::allocator<char> >&)
make[1]: *** [libtest/libtest_libtest_la-stream.lo] Error 1
make[1]: Leaving directory `/root/installs/gearman/gearmand-0.33'
make: *** [all] Error 2

Clint Byrum (clint-fewbar) wrote :

This affects Ubuntu 10.04 users as well (see duplicate #995106).

summary: - errors compiling libtest/stream.cc in gearmand-0.33 on cetos5.7
+ errors compiling libtest/stream.cc in gearmand-0.33 on gcc 4.4
Changed in gearmand:
status: New → Confirmed
Clint Byrum (clint-fewbar) wrote :

I think it may be a bit early to start abandoning GCC 4.4. Ubuntu 12.04 has only just been released as the latest LTS Ubuntu with a gcc newer than 4.4. RHEL and CentOS 6 are in the same boat (though they have at least been around long enough that migrations should be under way).

Is there perhaps a compatibility layer available in boost for these newer features?

Clint Byrum (clint-fewbar) wrote :

Oh also Debian's latest stable release, "wheezy", only has GCC 4.4 available

Download full text (9.0 KiB)

Yep,...

I can revert a change which will make all of this go away (the original fix was for OSX, but it can be solved differently).

On May 4, 2012, at 10:34 PM, Alexander Piavlo wrote:

> Public bug reported:
>
> it was configured with:
> env CC=gcc44 CXX=g++44 ./configure --disable-libmemcached --disable-libsqlite3
>
> and make fails with:
> ....
> CXX libtest/libtest_libtest_la-signal.lo
> CXX libtest/libtest_libtest_la-socket.lo
> CXX libtest/libtest_libtest_la-stream.lo
> libtest/stream.cc: In constructor 'libtest::stream::make_cerr::make_cerr(const char*, int, const char*)':
> libtest/stream.cc:48: error: class 'libtest::stream::make_cerr' does not have any field named 'log'
> libtest/stream.cc:48: error: no matching function for call to 'libtest::stream::detail::log<libtest::stream::detail::channelln, char, std::char_traits<char>, std::allocator<char> >::log()'
> ./libtest/stream.h:126: note: candidates are: libtest::stream::detail::log<OutputPolicy, Ch, Tr, A>::log(std::ostream&, const char*, int, const char*) [with OutputPolicy = libtest::stream::detail::channelln, Ch = char, Tr = std::char_traits<char>, A = std::allocator<char>]
> ./libtest/stream.h:115: note: libtest::stream::detail::log<libtest::stream::detail::channelln, char, std::char_traits<char>, std::allocator<char> >::log(const libtest::stream::detail::log<libtest::stream::detail::channelln, char, std::char_traits<char>, std::allocator<char> >&)
> libtest/stream.cc: In constructor 'libtest::stream::cerr::cerr(const char*, int, const char*)':
> libtest/stream.cc:52: error: class 'libtest::stream::cerr' does not have any field named 'log'
> libtest/stream.cc:52: error: no matching function for call to 'libtest::stream::detail::log<libtest::stream::detail::channel, char, std::char_traits<char>, std::allocator<char> >::log()'
> ./libtest/stream.h:126: note: candidates are: libtest::stream::detail::log<OutputPolicy, Ch, Tr, A>::log(std::ostream&, const char*, int, const char*) [with OutputPolicy = libtest::stream::detail::channel, Ch = char, Tr = std::char_traits<char>, A = std::allocator<char>]
> ./libtest/stream.h:115: note: libtest::stream::detail::log<libtest::stream::detail::channel, char, std::char_traits<char>, std::allocator<char> >::log(const libtest::stream::detail::log<libtest::stream::detail::channel, char, std::char_traits<char>, std::allocator<char> >&)
> libtest/stream.cc: In constructor 'libtest::stream::clog::clog(const char*, int, const char*)':
> libtest/stream.cc:56: error: class 'libtest::stream::clog' does not have any field named 'log'
> libtest/stream.cc:56: error: no matching function for call to 'libtest::stream::detail::log<libtest::stream::detail::channel, char, std::char_traits<char>, std::allocator<char> >::log()'
> ./libtest/stream.h:126: note: candidates are: libtest::stream::detail::log<OutputPolicy, Ch, Tr, A>::log(std::ostream&, const char*, int, const char*) [with OutputPolicy = libtest::stream::detail::channel, Ch = char, Tr = std::char_traits<char>, A = std::allocator<char>]
> ./libtest/stream.h:115: note: libtest::stream::detail::log<libtest::stream::detail::channel, char, std:...

Read more...

Brian Aker (brianaker) wrote :

Can you pull trunk and verify the fix?

Brian Aker (brianaker) on 2012-05-06
Changed in gearmand:
milestone: none → 0.34
importance: Undecided → Low
importance: Low → High
status: Confirmed → Fix Committed
assignee: nobody → Brian Aker (brianaker)
Alexander Piavlo (lolitushka) wrote :

It compiles ok now.

Brian Aker (brianaker) on 2012-07-12
Changed in gearmand:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers