Bug 757385 - Error in boost lexical_cast
Error in boost lexical_cast
Product: Fedora
Classification: Fedora
Component: boost (Show other bugs)
i686 Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: Petr Machata
Fedora Extras Quality Assurance
Depends On:
Blocks: 754865
  Show dependency treegraph
Reported: 2011-11-26 14:15 EST by Rich Mattes
Modified: 2015-05-04 21:36 EDT (History)
5 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2011-11-29 19:45:16 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
Proposed fix (1.38 KB, patch)
2011-11-28 19:31 EST, Petr Machata
no flags Details | Diff

  None (edit)
Description Rich Mattes 2011-11-26 14:15:44 EST
Description of problem:
There seems to be an issue in the lexical_cast.hpp header that's preventing my package (ompl) from building.

Version-Release number of selected component (if applicable):
boost-devel  1.48.0-1.fc17

How reproducible:
Attempt to build the master branch of the ompl package.

Additional info:
Build output:
[ 89%] Building CXX object src/ompl/CMakeFiles/ompl.dir/extensions/ode/src/ODEStatePropagator.cpp.o
cd /builddir/build/BUILD/ompl-0.9.5-Source/src/ompl && /usr/bin/c++   -Dompl_EXPORTS -DdSINGLE -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4  -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables  -fPIC -I/builddir/build/BUILD/ompl-0.9.5-Source/src    -W -Wall -Wextra -Wno-missing-field-initializers -Wno-unused -fPIC -o CMakeFiles/ompl.dir/extensions/ode/src/ODEStatePropagator.cpp.o -c /builddir/build/BUILD/ompl-0.9.5-Source/src/ompl/extensions/ode/src/ODEStatePropagator.cpp
In file included from /builddir/build/BUILD/ompl-0.9.5-Source/src/ompl/extensions/ode/src/ODEEnvironment.cpp:38:0:
/usr/include/boost/lexical_cast.hpp: In static member function 'static Target boost::detail::lexical_cast_do_cast<Target, Source>::lexical_cast_impl(const Source&) [with Target = std::basic_string<char>, Source = dxGeom*]':
/usr/include/boost/lexical_cast.hpp:1916:50:   instantiated from 'Target boost::lexical_cast(const Source&) [with Target = std::basic_string<char>, Source = dxGeom*]'
/builddir/build/BUILD/ompl-0.9.5-Source/src/ompl/extensions/ode/src/ODEEnvironment.cpp:64:53:   instantiated from here
/usr/include/boost/lexical_cast.hpp:1742:25: error: invalid application of 'sizeof' to incomplete type 'removed_ptr_t {aka dxGeom}' 
make[2]: *** [src/ompl/CMakeFiles/ompl.dir/extensions/ode/src/ODEEnvironment.cpp.o] Error 1

Full log at http://koji.fedoraproject.org/koji/taskinfo?taskID=3543662
Comment 1 Petr Machata 2011-11-28 18:14:06 EST

#include <boost/lexical_cast.hpp>

struct ble;
typedef struct ble *meh;

int main(int argc, char *argv[])
  meh heh;
  return boost::lexical_cast<std::string>(heh);
Comment 2 Petr Machata 2011-11-28 19:31:13 EST
Created attachment 537703 [details]
Proposed fix

To decide whether source type is char, they first ask for whether it's char or wchar, and then compare sizeofs.  I think the same can be achieved by simply asking whether src is char, but I might be missing something.  This patch implements what I propose.  I'll pass it through upstream now.
Comment 3 Petr Machata 2011-11-28 19:53:19 EST
https://svn.boost.org/trac/boost/ticket/6182 is the upstream ticket.
Comment 4 Petr Machata 2011-11-29 10:22:13 EST
I built a package that should fix this issue.  Could you please try whether it actually does?
Comment 5 Rich Mattes 2011-11-29 19:45:16 EST
Looks like your update has taken care of the issue, I was able to build ompl against it.  Thanks for looking at this, I'll go ahead and close this ticket as fixed.


Note You need to log in before you can comment on or make changes to this bug.