imageworks/Field3D — Issue #36: Field3D fails to build with GCC 4.7.0
Author: hobbes1069
Created: 2012-01-13 20:12:57+00:00
State: open

I should have opened an issue in the first place instead of just posting to the list so here it is!
---
Fedora is starting a mass rebuild of all packages for the future
Fedora 17 which will have gcc 4.7[1].

Field 3D is currently failing to build. Hopefully this is an easy fix?

Here's a (large) snippet of the error (the full build log is available [2]):

/usr/bin/c++ -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 -Wl,-z,relro
CMakeFiles/read.dir/apps/sample_code/read/main.cpp.o -o read
-rdynamic libField3D.so.1.2 -lhdf5 -lz -lrt -lm -lz -lIex -lHalf
-lIlmThread -lImath -ldl -lboost_thread-mt -lboost_program_options-mt
-Wl,-rpath,/builddir/build/BUILD/imageworks-Field3D-26c5236/build
make[2]: Leaving directory
`/builddir/build/BUILD/imageworks-Field3D-26c5236/build'
/usr/bin/cmake -E cmake_progress_report
/builddir/build/BUILD/imageworks-Field3D-26c5236/build/CMakeFiles 18
[100%] Built target read
In file included from
/builddir/build/BUILD/imageworks-Field3D-26c5236/./Field3D/DenseField.h:51:0,
from
/builddir/build/BUILD/imageworks-Field3D-26c5236/test/unit_tests/UnitTest.cpp:45:
/builddir/build/BUILD/imageworks-Field3D-26c5236/./Field3D/Field.h: In
instantiation of 'void
Field3D::v1_2::ResizableField::copyFrom(typename
Field3D::v1_2::Field::Ptr) [with Data_T = half; typename
Field3D::v1_2::Field::Ptr =
boost::intrusive_ptr >]':
/builddir/build/BUILD/imageworks-Field3D-26c5236/./Field3D/Field3DFile.h:1009:7:
required from 'typename Field_T::Vec
Field3D::v1_2::Field3DInputFile::readScalarLayersAs(const string&,
const string&) const [with Field_T = Field3D::v1_2::DenseField; Data_T
= half; typename Field_T::Vec =
std::vector >,
std::allocator >
> >; std::string = std::basic_string]'
/builddir/build/BUILD/imageworks-Field3D-26c5236/test/unit_tests/UnitTest.cpp:1237:3:
required from 'void testReadAsDifferentType() [with Field_T =
Field3D::v1_2::DenseField; Data_T = half]'
/builddir/build/BUILD/imageworks-Field3D-26c5236/test/unit_tests/UnitTest.cpp:1918:13:
required from here
/builddir/build/BUILD/imageworks-Field3D-26c5236/./Field3D/Field.h:927:3:
error: 'setMapping' was not declared in this scope, and no
declarations were found by argument-dependent lookup at the point of
instantiation [-fpermissive]
/builddir/build/BUILD/imageworks-Field3D-26c5236/./Field3D/Field.h:927:3:
note: declarations in dependent base 'Field3D::v1_2::FieldRes' are not
found by unqualified lookup
/builddir/build/BUILD/imageworks-Field3D-26c5236/./Field3D/Field.h:927:3:
note: use 'this->setMapping' instead
/builddir/build/BUILD/imageworks-Field3D-26c5236/./Field3D/Field.h: In
instantiation of 'void
Field3D::v1_2::ResizableField::copyFrom(typename
Field3D::v1_2::Field::Ptr) [with Data_T = float; typename
Field3D::v1_2::Field::Ptr =
boost::intrusive_ptr >]':
/builddir/build/BUILD/imageworks-Field3D-26c5236/./Field3D/Field3DFile.h:1009:7:
required from 'typename Field_T::Vec
Field3D::v1_2::Field3DInputFile::readScalarLayersAs(const string&,
const string&) const [with Field_T = Field3D::v1_2::DenseField; Data_T
= float; typename Field_T::Vec =
std::vector >,
std::allocator >
> >; std::string = std::basic_string]'
/builddir/build/BUILD/imageworks-Field3D-26c5236/test/unit_tests/UnitTest.cpp:1237:3:
required from 'void testReadAsDifferentType() [with Field_T =
Field3D::v1_2::DenseField; Data_T = float]'
/builddir/build/BUILD/imageworks-Field3D-26c5236/test/unit_tests/UnitTest.cpp:1920:13:
required from here
/builddir/build/BUILD/imageworks-Field3D-26c5236/./Field3D/Field.h:927:3:
error: 'setMapping' was not declared in this scope, and no
declarations were found by argument-dependent lookup at the point of
instantiation [-fpermissive]
/builddir/build/BUILD/imageworks-Field3D-26c5236/./Field3D/Field.h:927:3:
note: declarations in dependent base 'Field3D::v1_2::FieldRes' are not
found by unqualified lookup
/builddir/build/BUILD/imageworks-Field3D-26c5236/./Field3D/Field.h:927:3:
note: use 'this->setMapping' instead
/builddir/build/BUILD/imageworks-Field3D-26c5236/./Field3D/Field.h: In
instantiation of 'void
Field3D::v1_2::ResizableField::copyFrom(typename
Field3D::v1_2::Field::Ptr) [with Data_T = double; typename
Field3D::v1_2::Field::Ptr =
boost::intrusive_ptr >]':
/builddir/build/BUILD/imageworks-Field3D-26c5236/./Field3D/Field3DFile.h:1009:7:
required from 'typename Field_T::Vec
Field3D::v1_2::Field3DInputFile::readScalarLayersAs(const string&,
const string&) const [with Field_T = Field3D::v1_2::DenseField; Data_T
= double; typename Field_T::Vec =
std::vector >,
std::allocator
> > >; std::string = std::basic_string]'
/builddir/build/BUILD/imageworks-Field3D-26c5236/test/unit_tests/UnitTest.cpp:1237:3:
required from 'void testReadAsDifferentType() [with Field_T =
Field3D::v1_2::DenseField; Data_T = double]'
/builddir/build/BUILD/imageworks-Field3D-26c5236/test/unit_tests/UnitTest.cpp:1922:13:
required from here
/builddir/build/BUILD/imageworks-Field3D-26c5236/./Field3D/Field.h:927:3:
error: 'setMapping' was not declared in this scope, and no
declarations were found by argument-dependent lookup at the point of
instantiation [-fpermissive]
/builddir/build/BUILD/imageworks-Field3D-26c5236/./Field3D/Field.h:927:3:
note: declarations in dependent base 'Field3D::v1_2::FieldRes' are not
found by unqualified lookup
/builddir/build/BUILD/imageworks-Field3D-26c5236/./Field3D/Field.h:927:3:
note: use 'this->setMapping' instead

Thanks,
Richard

[1] http://lists.fedoraproject.org/pipermail/devel/2011-December/160723.html
[2] http://koji.fedoraproject.org/koji/getfile?taskID=3622661&name=build.log