enblend 4.1.4 build-error with gcc-6

Bug #1537368 reported by Andreas Metzler on 2016-01-23
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Enblend
Medium
Christoph Spiel

Bug Description

Hello,
enblend 4.1.4 FTBFS with gcc/g++ 6 (tested with snapshot 20160117):

../../include/vigra_ext/impexalpha.hxx:252:78: error: no matching function for call to 'std::auto_ptr<vigra::Decoder>::auto_ptr(std::unique_ptr<vigra::Decoder>)'
             std::auto_ptr<vigra::Decoder> decoder(vigra::decoder(import_info));
                                                                              ^

This does not apply to HG default!

See https://bugs.debian.org/811869 and https://wiki.debian.org/GCC6

cu Andreas

Christoph Spiel (cspiel) on 2016-01-24
Changed in enblend:
status: New → In Progress
importance: Undecided → Medium
assignee: nobody → Christoph Spiel (cspiel)
Christoph Spiel (cspiel) wrote :

Fixed in rev 467a73754dbb.

I had to open up `Patchlevel 5', which is _unreleased_ and which will
remain open for a while in case gcc-6 finds more problems. That
way you can carry on testing/porting.

> This does not apply to HG default!

The offending source does not exist in the current tip of the
`Development Branch'. All local changes to Vigra were pushed
to the Vigra-project a long time ago.

Changed in enblend:
status: In Progress → Fix Committed
Download full text (3.1 KiB)

Thank you, indeed a further error as popped up:

g++-6 -DHAVE_CONFIG_H -I. -I../../src -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -I../../include -I../../src/layer_selection -I/usr/include/OpenEXR -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -pipe --param inline-unit-growth=60 -O2 -DNDEBUG -Wall -fopenmp -MT enblend-filespec.o -MD -MP -MF .deps/enblend-filespec.Tpo -c -o enblend-filespec.o `test -f 'filespec.cc' || echo '../../src/'`filespec.cc
../../src/filespec.cc: In constructor 'enblend::Globbing::Globbing()':
../../src/filespec.cc:420:113: error: ambiguous overload for 'operator=' (operand types are 'enblend::Globbing::algorithm_map {aka std::map<std::__cxx11::basic_string<char>, std::pair<bool, enblend::AbstractGlobbingAlgorithm*> >}' and 'boost::assign_detail::generic_list<std::pair<const char*, std::pair<bool, enblend::AbstractGlobbingAlgorithm*> > >')
             ("shell", MAKE_ALGORITHM(new ShellGlobbingAlgorithm))
                                                                                                                 ^
In file included from /usr/include/c++/6/map:61:0,
                 from ../../src/filespec.cc:36:
/usr/include/c++/6/bits/stl_map.h:296:7: note: candidate: std::map<_Key, _Tp, _Compare, _Alloc>& std::map<_Key, _Tp, _Compare, _Alloc>::operator=(const std::map<_Key, _Tp, _Compare, _Alloc>&) [with _Key = std::__cxx11::basic_string<char>; _Tp = std::pair<bool, enblend::AbstractGlobbingAlgorithm*>; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, std::pair<bool, enblend::AbstractGlobbingAlgorithm*> > >]
       operator=(const map& __x)
       ^~~~~~~~
/usr/include/c++/6/bits/stl_map.h:305:7: note: candidate: std::map<_Key, _Tp, _Compare, _Alloc>& std::map<_Key, _Tp, _Compare, _Alloc>::operator=(std::map<_Key, _Tp, _Compare, _Alloc>&&) [with _Key = std::__cxx11::basic_string<char>; _Tp = std::pair<bool, enblend::AbstractGlobbingAlgorithm*>; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, std::pair<bool, enblend::AbstractGlobbingAlgorithm*> > >]
       operator=(map&&) = default;
       ^~~~~~~~
In file included from /usr/include/c++/6/map:61:0,
                 from ../../src/filespec.cc:36:
/usr/include/c++/6/bits/stl_map.h:319:7: note: candidate: std::map<_Key, _Tp, _Compare, _Alloc>& std::map<_Key, _Tp, _Compare, _Alloc>::operator=(std::initializer_list<std::pair<const _Key, _Tp> >) [with _Key = std::__cxx11::basic_string<char>; _Tp = std::pair<bool, enblend::AbstractGlobbingAlgorithm*>; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, std::pair<bool, enblend::AbstractGlobbingAlgorithm*> > >]
       operator=(initializer_list<value_type> __l)
       ^~~~~~~~
Makefile:646: recipe for target 'enblend-filespec.o' failed
make[5]: *** [enblend-filespec.o] Error 1
make[5]: Leaving directory '/tmp/ENBLEND/enblend-enfuse-4.1.4/build-tree-mp/src'
Makefile:821: recipe for target 'all-recursive' failed
make[4]: *** [all-rec...

Read more...

Christoph Spiel (cspiel) on 2016-02-15
Changed in enblend:
status: Fix Committed → In Progress
Christoph Spiel (cspiel) wrote :

Broken compilation with gcc-6 as reported in #2 should
be fixed in rev 73e6f16de80a.

Dropped the dependency on `boost::assign' at the offending position;
it did not buy us that much anyhow.

On 2016-02-15 Christoph Spiel <email address hidden> wrote:
> Broken compilation with gcc-6 as reported in #2 should
> be fixed in rev 73e6f16de80a.

> Dropped the dependency on `boost::assign' at the offending position;
> it did not buy us that much anyhow.

Thanks, confirmed. I got a successful build with the gcc6 snapshot.

cu Andreas

tduell (tduell-iinet) wrote :

Chris,
Is this fix also needed in the default branch?

Cheers,
Terry

Christoph Spiel (cspiel) wrote :

Wrt to #5: No gcc-6 here, so dunno. Andreas would have hollered, though.

tduell (tduell-iinet) wrote :

And he did...in his original report text.
Just a another example of my 'domestic blindness'!
Sorry, should have read more carefully.

Cheers,
Terry

Christoph Spiel (cspiel) wrote :

Released version 4.1 Patchlevel 5:
    http://hg.code.sf.net/p/enblend/code/file/f8a34cfab8c1/NEWS

Changed in enblend:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers