To answer your last question, I got it to compile and to start up, but the self 
tests did not 
run cleanly (one or two of them claimed memory corruption).  I put it aside in 
favor of
looking at CentOS, which is a more desirable target in the long run (and 
probably more
interesting to the wider community?)

I've not succeeded in compiling on CentOS yet, but am getting closer each time. 
 
So far: 
- sprout/modules/libmemcached/libmemcached/csl/parser.cc needed edits to stop 
choking 
on YYENABLE_NLS and YYLTYPE_IS_TRIVIAL.  
- the #include of <atomic> in sprout/include/sas.h and accumulator.h needed to 
be changed to 
<cstdatomic>
- connection_pool.cpp, flowtable.cpp and accumulator.cpp needed tweaks to 
overcome the 
ambiguity in calls to to_string (eg whether the arg was a unsigned int, long 
long etc).

Currently I'm looking at this error compiling accumulator.cpp:

g++  -Wno-write-strings -ggdb3 -std=c++0x -I/home/keller/cw/sprout/include 
-I/home/keller/cw/sprout/usr/include -DPJ_AUTOCONF=1 -ggdb3 
-DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1 
-I/home/keller/cw/sprout/usr/include -Wall -O2  -c -o 
/home/keller/cw/sprout/build/obj/sprout/accumulator.o accumulator.cpp
accumulator.cpp: In member function ?void Accumulator::accumulate(long unsigned 
int)?:
accumulator.cpp:56: error: no matching function for call to 
?std::__atomic2::__atomic_base<long long unsigned 
int>::compare_exchange_weak(uint_fast64_t&, long unsigned int&)?
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/atomic_2.h:328:
 note: candidates are: bool 
std::__atomic2::__atomic_base<_IntTp>::compare_exchange_weak(_ITp&, _ITp, 
std::memory_order, std::memory_order) volatile [with _ITp = long long unsigned 
int]
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/atomic_2.h:333:
 note:                 bool 
std::__atomic2::__atomic_base<_IntTp>::compare_exchange_weak(_ITp&, _ITp, 
std::memory_order) volatile [with _ITp = long long unsigned int]

The code does things like this:

while ((sample < lwm) &&
         (!_current._lwm.compare_exchange_weak(lwm, sample)))
  {
    // Do nothing.
  }

...but evidently two arguments are not enough to satisfy the compiler.  Any 
thoughts about a possible cause/cure?

Thank you
_______________________________________________
Clearwater mailing list
[email protected]
http://lists.projectclearwater.org/listinfo/clearwater

Reply via email to