« Return to Thread: Issue 191 - xdelta unit test fails to build due a symbol conflict with boost (monotone)

Updated Issue 191 - xdelta unit test fails to build due a symbol conflict with boost (monotone)

by code-6 :: Rate this Message:

| View in Thread

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

 « Return to Thread: Issue 191 - xdelta unit test fails to build due a symbol conflict with boost (monotone)