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 19, 2011:
Note: According to HACKING, the first version of my patch should have caused "make distcheck" to fail. This did not happen. (I corrected the patch anyway.) With the patch of ticket 195, such violations are now found.
# By Christian Cornelssen, Okt 19, 2011:
"make distcheck" succeeds with the latest patch above (and with the patch of ticket 194).
# By Christian Cornelssen, Okt 18, 2011:
Same patch, with corrected comment.
Attachments:
- xdelta.diff - 925 bytes
https://code.monotone.ca/p/monotone/issues/view/attachment/38/xdelta.diff# 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