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

[email protected]
Newsgroups gmane.comp.version-control.monotone.devel
Message-ID <[email protected]>
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:

"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
[email protected]
https://lists.nongnu.org/mailman/listinfo/monotone-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.