[PATCH] Fix tools/wave compilation

I have problems building the wave preprocessor for the 1.33.1 release due to some typos in cpp.cpp (which are corrected by the patch below, CVS needs the same patch but that doesn't suffice and it fails in more interesting ways). This leads me to the question on the state of tools/wave - is it considered dead or obsolete? Preprocessing sources with the 1.33.1 release of wave causes spurious errors like /abuild/rguenther/boost/tramp3d-v4.cpp(4611): error: generic lexing error: '\000' in input stream if built with gcc 4.1.0 or the gcc trunk. Any ideas? Thanks, Richard. -- Richard Guenther <rguenther@suse.de> Novell / SUSE Labs --- tools/wave/cpp.cpp.orig 2005-05-16 11:36:01.000000000 +0200 +++ tools/wave/cpp.cpp 2006-05-11 16:14:31.000000000 +0200 @@ -108,7 +108,7 @@ /////////////////////////////////////////////////////////////////////////////// // forward declarations only -namespace cmd_line_utils +namespace cmd_line_util { class include_paths; } @@ -116,7 +116,7 @@ namespace boost { namespace program_options { void validate(boost::any &v, std::vector<std::string> const &s, - cmd_line_utils::include_paths *, int); + cmd_line_util::include_paths *, long); }} // boost::program_options /////////////////////////////////////////////////////////////////////////////// @@ -234,7 +234,7 @@ namespace boost { namespace program_options { void validate(boost::any &v, std::vector<std::string> const &s, - cmd_line_util::include_paths *, int) + cmd_line_util::include_paths *, long) { cmd_line_util::include_paths::validate(v, s); }

Richard Guenther wrote:
I have problems building the wave preprocessor for the 1.33.1 release due to some typos in cpp.cpp (which are corrected by the patch below, CVS needs the same patch but that doesn't suffice and it fails in more interesting ways). This leads me to the question on the state of tools/wave - is it considered dead or obsolete? Preprocessing sources with the 1.33.1 release of wave causes spurious errors like
It isn't dead nor obsolete. The Boost 1.33.1 release wasn't tested with gcc 4.1.0, so we couldn't catch the problems you're referring to. All of these things have been fixed recently and Wave will be functional with gcc 4.1.x in the V1.34.0 release.
/abuild/rguenther/boost/tramp3d-v4.cpp(4611): error: generic lexing error: '\000' in input stream
if built with gcc 4.1.0 or the gcc trunk.
This bug was fixed recently. It occurs if your files are larger than ~192k. To fix it locally simply replace all memcpy() calls in $BOOST_ROOT/libs/wave/src/cpplexer/re2clex/cpp_re.cpp to memmove(). HTH Regards Hartmut
Any ideas?
Thanks, Richard.
-- Richard Guenther <rguenther@suse.de> Novell / SUSE Labs
--- tools/wave/cpp.cpp.orig 2005-05-16 11:36:01.000000000 +0200 +++ tools/wave/cpp.cpp 2006-05-11 16:14:31.000000000 +0200 @@ -108,7 +108,7 @@
////////////////////////////////////////////////////////////// ///////////////// // forward declarations only -namespace cmd_line_utils +namespace cmd_line_util { class include_paths; } @@ -116,7 +116,7 @@ namespace boost { namespace program_options { void validate(boost::any &v, std::vector<std::string> const &s, - cmd_line_utils::include_paths *, int); + cmd_line_util::include_paths *, long); }} // boost::program_options
////////////////////////////////////////////////////////////// ///////////////// @@ -234,7 +234,7 @@ namespace boost { namespace program_options {
void validate(boost::any &v, std::vector<std::string> const &s, - cmd_line_util::include_paths *, int) + cmd_line_util::include_paths *, long) { cmd_line_util::include_paths::validate(v, s); } _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
participants (2)
-
Hartmut Kaiser
-
Richard Guenther