Hello,
The following issue has been updated:
191 - xdelta unit test fails to build due a symbol conflict with boost
Project: monotone
Status: New
Reported by: Dan Horák
URL:
https://code.monotone.ca/p/monotone/issues/191/Labels:
Type:Defect
Priority:Medium
Comments (last first):
# By Christian Cornelssen, Okt 18, 2011:
After having read HACKING, I have moved the BOOST #include
after the #include of base.hh. Enjoy until you have worked out something solid regarding one-letter macros vs. C++ template parameters. With this patch, "make check" passes.
Attachments:
- xdelta.diff - 913 bytes
https://code.monotone.ca/p/monotone/issues/view/attachment/37/xdelta.diff# By Christian Cornelssen, Okt 18, 2011:
Encountered the same problem with a fresh mtn clone today (revision 22f47ba88188cc15e92de60cc2597df6054809a7).
Workaround was to #include <boost/random.hpp> before the local headers in test/unit/tests/xdelta.cc. A clean approach should avoid the definition of such a macro (in src/sanity.hh) however.
Attachments:
- xdelta.diff - 711 bytes
https://code.monotone.ca/p/monotone/issues/view/attachment/36/xdelta.diff# By Dan Horák, Sep 26, 2011:
The xdelta unit test fails to build due a symbol conflict with boost >= 1.47
The problem a conflict of L() macro defined by monotone in sanity.hh and L as a template parameter in boost. I was told that single upper case letters are usually used for classes passed as template parameters in C++ code.
from the build log:
...
make[3]: Entering directory `/builddir/build/BUILD/monotone-1.0'
\
# source='test/unit/tests/xdelta.cc' object='test/unit/tests/xdelta.o' libtool=no
g++ -I. -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wall -W -Wno-unused -c -o test/unit/tests/xdelta.o test/unit/tests/xdelta.cc
In file included from /usr/include/boost/math/special_functions/gamma.hpp:43:0,
from /usr/include/boost/math/special_functions/detail/bessel_jy.hpp:14,
from /usr/include/boost/math/special_functions/bessel.hpp:17,
from /usr/include/boost/math/special_functions.hpp:18,
from /usr/include/boost/random/generate_canonical.hpp:22,
from /usr/include/boost/random.hpp:52,
from test/unit/tests/xdelta.cc:15:
/usr/include/boost/math/special_functions/detail/lgamma_small.hpp: In function ‘T boost::math::detail::lgamma_small_imp(T, T, T, const mpl_::int_<0>&, const Policy&, const L&)’:
/usr/include/boost/math/special_functions/detail/lgamma_small.hpp:483:38: error: expected primary-expression before ‘do’
/usr/include/boost/math/special_functions/detail/lgamma_small.hpp:488:38: error: expected primary-expression before ‘do’
make[3]: *** [test/unit/tests/xdelta.o] Error 1
make[3]: Leaving directory `/builddir/build/BUILD/monotone-1.0'
make[2]: *** [check-am] Error 2
make[2]: Leaving directory `/builddir/build/BUILD/monotone-1.0'
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory `/builddir/build/BUILD/monotone-1.0'
make: *** [check] Error 2
--
Issue:
https://code.monotone.ca/p/monotone/issues/191/_______________________________________________
Monotone-devel mailing list
Monotone-devel@...
https://lists.nongnu.org/mailman/listinfo/monotone-devel