graphics/enblend fails to build on fresh HEAD with clang 6.0 with messages: c++ -DHAVE_CONFIG_H -I. -I.. -isystem /usr/local/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -I../include -I../src/layer_selection -I/usr/local/include/OpenEXR -pthread -O2 -pipe -march=k8-sse3 -fstack-protector -isystem /usr/local/include -fno-strict-aliasing -Wno-c++11-extensions -isystem /usr/local/include --param inline-unit-growth=60 -O2 -DNDEBUG -Wall -MT enfuse-error_message.o -MD -MP -MF .deps/enfuse-error_message.Tpo -c -o enfuse-error_message.o `test -f 'error_message.cc' || echo './'`error_message.cc c++: warning: argument unused during compilation: '--param inline-unit-growth=60' [-Wunused-command-line-argument] In file included from enblend.cc:181: In file included from ./enblend.h:43: In file included from ./assemble.h:43: ../include/vigra_ext/impexalpha.hxx:197:43: error: no matching constructor for initialization of 'std::auto_ptr<vigra::Decoder>' std::auto_ptr<vigra::Decoder> decoder(vigra::decoder(import_info)); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/v1/memory:2036:40: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Decoder>' to 'vigra::Decoder *' for 1st argument _LIBCPP_INLINE_VISIBILITY explicit auto_ptr(_Tp* __p = 0) throw() : ... ^ /usr/include/c++/v1/memory:2037:31: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Decoder>' to 'std::__1::auto_ptr<vigra::Decoder> &' for 1st argument _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr& __p) throw() : __ptr_(_... ^ /usr/include/c++/v1/memory:2065:31: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Decoder>' to 'auto_ptr_ref<vigra::Decoder>' for 1st argument _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr_ref<_Tp> __p) throw() : ... ^ /usr/include/c++/v1/memory:2038:51: note: candidate template ignored: could not match 'auto_ptr' against 'unique_ptr' template<class _Up> _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr<_Up>... ^ In file included from enblend.cc:181: In file included from ./enblend.h:43: In file included from ./assemble.h:43: ../include/vigra_ext/impexalpha.hxx:252:43: error: no matching constructor for initialization of 'std::auto_ptr<vigra::Decoder>' std::auto_ptr<vigra::Decoder> decoder(vigra::decoder(import_info)); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/v1/memory:2036:40: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Decoder>' to 'vigra::Decoder *' for 1st argument _LIBCPP_INLINE_VISIBILITY explicit auto_ptr(_Tp* __p = 0) throw() : ... ^ /usr/include/c++/v1/memory:2037:31: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Decoder>' to 'std::__1::auto_ptr<vigra::Decoder> &' for 1st argument _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr& __p) throw() : __ptr_(_... ^ /usr/include/c++/v1/memory:2065:31: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Decoder>' to 'auto_ptr_ref<vigra::Decoder>' for 1st argument _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr_ref<_Tp> __p) throw() : ... ^ /usr/include/c++/v1/memory:2038:51: note: candidate template ignored: could not match 'auto_ptr' against 'unique_ptr' template<class _Up> _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr<_Up>... ^ In file included from enblend.cc:181: In file included from ./enblend.h:43: In file included from ./assemble.h:43: ../include/vigra_ext/impexalpha.hxx:470:43: error: no matching constructor for initialization of 'std::auto_ptr<vigra::Encoder>' std::auto_ptr<vigra::Encoder> encoder(vigra::encoder(export_info)); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/v1/memory:2036:40: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Encoder>' to 'vigra::Encoder *' for 1st argument _LIBCPP_INLINE_VISIBILITY explicit auto_ptr(_Tp* __p = 0) throw() : ... ^ /usr/include/c++/v1/memory:2037:31: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Encoder>' to 'std::__1::auto_ptr<vigra::Encoder> &' for 1st argument _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr& __p) throw() : __ptr_(_... ^ /usr/include/c++/v1/memory:2065:31: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Encoder>' to 'auto_ptr_ref<vigra::Encoder>' for 1st argument _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr_ref<_Tp> __p) throw() : ... ^ /usr/include/c++/v1/memory:2038:51: note: candidate template ignored: could not match 'auto_ptr' against 'unique_ptr' template<class _Up> _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr<_Up>... ^ In file included from enblend.cc:181: In file included from ./enblend.h:43: In file included from ./assemble.h:43: ../include/vigra_ext/impexalpha.hxx:528:43: error: no matching constructor for initialization of 'std::auto_ptr<vigra::Encoder>' std::auto_ptr<vigra::Encoder> encoder(vigra::encoder(export_info)); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/v1/memory:2036:40: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Encoder>' to 'vigra::Encoder *' for 1st argument _LIBCPP_INLINE_VISIBILITY explicit auto_ptr(_Tp* __p = 0) throw() : ... ^ /usr/include/c++/v1/memory:2037:31: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Encoder>' to 'std::__1::auto_ptr<vigra::Encoder> &' for 1st argument _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr& __p) throw() : __ptr_(_... ^ /usr/include/c++/v1/memory:2065:31: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Encoder>' to 'auto_ptr_ref<vigra::Encoder>' for 1st argument _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr_ref<_Tp> __p) throw() : ... ^ /usr/include/c++/v1/memory:2038:51: note: candidate template ignored: could not match 'auto_ptr' against 'unique_ptr' template<class _Up> _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr<_Up>... ^ 1 error generated. gmake[6]: *** [Makefile:636: enblend-filespec.o] Error 1 gmake[6]: *** Waiting for unfinished jobs.... mv -f .deps/enfuse-error_message.Tpo .deps/enfuse-error_message.Po In file included from enfuse.cc:160: In file included from ./enfuse.h:51: In file included from ./assemble.h:43: ../include/vigra_ext/impexalpha.hxx:197:43: error: no matching constructor for initialization of 'std::auto_ptr<vigra::Decoder>' std::auto_ptr<vigra::Decoder> decoder(vigra::decoder(import_info)); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/v1/memory:2036:40: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Decoder>' to 'vigra::Decoder *' for 1st argument _LIBCPP_INLINE_VISIBILITY explicit auto_ptr(_Tp* __p = 0) throw() : ... ^ /usr/include/c++/v1/memory:2037:31: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Decoder>' to 'std::__1::auto_ptr<vigra::Decoder> &' for 1st argument _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr& __p) throw() : __ptr_(_... ^ /usr/include/c++/v1/memory:2065:31: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Decoder>' to 'auto_ptr_ref<vigra::Decoder>' for 1st argument _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr_ref<_Tp> __p) throw() : ... ^ /usr/include/c++/v1/memory:2038:51: note: candidate template ignored: could not match 'auto_ptr' against 'unique_ptr' template<class _Up> _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr<_Up>... ^ In file included from enfuse.cc:160: In file included from ./enfuse.h:51: In file included from ./assemble.h:43: ../include/vigra_ext/impexalpha.hxx:252:43: error: no matching constructor for initialization of 'std::auto_ptr<vigra::Decoder>' std::auto_ptr<vigra::Decoder> decoder(vigra::decoder(import_info)); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/v1/memory:2036:40: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Decoder>' to 'vigra::Decoder *' for 1st argument _LIBCPP_INLINE_VISIBILITY explicit auto_ptr(_Tp* __p = 0) throw() : ... ^ /usr/include/c++/v1/memory:2037:31: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Decoder>' to 'std::__1::auto_ptr<vigra::Decoder> &' for 1st argument _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr& __p) throw() : __ptr_(_... ^ /usr/include/c++/v1/memory:2065:31: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Decoder>' to 'auto_ptr_ref<vigra::Decoder>' for 1st argument _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr_ref<_Tp> __p) throw() : ... ^ /usr/include/c++/v1/memory:2038:51: note: candidate template ignored: could not match 'auto_ptr' against 'unique_ptr' template<class _Up> _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr<_Up>... ^ In file included from enfuse.cc:160: In file included from ./enfuse.h:51: In file included from ./assemble.h:43: ../include/vigra_ext/impexalpha.hxx:470:43: error: no matching constructor for initialization of 'std::auto_ptr<vigra::Encoder>' std::auto_ptr<vigra::Encoder> encoder(vigra::encoder(export_info)); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/v1/memory:2036:40: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Encoder>' to 'vigra::Encoder *' for 1st argument _LIBCPP_INLINE_VISIBILITY explicit auto_ptr(_Tp* __p = 0) throw() : ... ^ /usr/include/c++/v1/memory:2037:31: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Encoder>' to 'std::__1::auto_ptr<vigra::Encoder> &' for 1st argument _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr& __p) throw() : __ptr_(_... ^ /usr/include/c++/v1/memory:2065:31: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Encoder>' to 'auto_ptr_ref<vigra::Encoder>' for 1st argument _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr_ref<_Tp> __p) throw() : ... ^ /usr/include/c++/v1/memory:2038:51: note: candidate template ignored: could not match 'auto_ptr' against 'unique_ptr' template<class _Up> _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr<_Up>... ^ In file included from enfuse.cc:160: In file included from ./enfuse.h:51: In file included from ./assemble.h:43: ../include/vigra_ext/impexalpha.hxx:528:43: error: no matching constructor for initialization of 'std::auto_ptr<vigra::Encoder>' std::auto_ptr<vigra::Encoder> encoder(vigra::encoder(export_info)); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/v1/memory:2036:40: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Encoder>' to 'vigra::Encoder *' for 1st argument _LIBCPP_INLINE_VISIBILITY explicit auto_ptr(_Tp* __p = 0) throw() : ... ^ /usr/include/c++/v1/memory:2037:31: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Encoder>' to 'std::__1::auto_ptr<vigra::Encoder> &' for 1st argument _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr& __p) throw() : __ptr_(_... ^ /usr/include/c++/v1/memory:2065:31: note: candidate constructor not viable: no known conversion from 'std::unique_ptr<Encoder>' to 'auto_ptr_ref<vigra::Encoder>' for 1st argument _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr_ref<_Tp> __p) throw() : ... ^ /usr/include/c++/v1/memory:2038:51: note: candidate template ignored: could not match 'auto_ptr' against 'unique_ptr' template<class _Up> _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr<_Up>... ^ 4 errors generated. gmake[6]: *** [Makefile:580: enblend-enblend.o] Error 1 4 errors generated. gmake[6]: *** [Makefile:678: enfuse-enfuse.o] Error 1 gmake[6]: Leaving directory '/var/ports/usr/ports/graphics/enblend/work/enblend-enfuse-4.1.4/src' gmake[5]: *** [Makefile:811: all-recursive] Error 1 gmake[5]: Leaving directory '/var/ports/usr/ports/graphics/enblend/work/enblend-enfuse-4.1.4/src' gmake[4]: *** [Makefile:460: all] Error 2 gmake[4]: Leaving directory '/var/ports/usr/ports/graphics/enblend/work/enblend-enfuse-4.1.4/src' gmake[3]: *** [Makefile:413: all-recursive] Error 1 gmake[3]: Leaving directory '/var/ports/usr/ports/graphics/enblend/work/enblend-enfuse-4.1.4' gmake[2]: *** [Makefile:353: all] Error 2 gmake[2]: Leaving directory '/var/ports/usr/ports/graphics/enblend/work/enblend-enfuse-4.1.4' ===> Compilation failed unexpectedly. Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to the maintainer. *** Error code 1 Stop. make[1]: stopped in /usr/ports/graphics/enblend *** Error code 1 Stop. make: stopped in /usr/ports/graphics/enblend USE_CXXSTD=gnu++98 can be added to port's Makefile as workaround
Created attachment 190351 [details] patch-include_vigra-ext_impexalpha_hxx Please, try this patch.
A commit references this bug: Author: danfe Date: Thu Feb 8 07:48:49 UTC 2018 New revision: 461202 URL: https://svnweb.freebsd.org/changeset/ports/461202 Log: Unbreak the build against recent Clang by backporting two patches from the upstream (issue #1537368): - Unconditional usage of std::auto_ptr<> in "vigra_ext" code: http://hg.code.sf.net/p/enblend/code/rev/467a73754dbb - Get rid of `boost::assign::map_list_of' (additional patch): http://hg.code.sf.net/p/enblend/code/rev/73e6f16de80a PR: 225557 Changes: head/graphics/enblend/files/ head/graphics/enblend/files/patch-include_vigra__ext_impexalpha.hxx head/graphics/enblend/files/patch-src_filespec.cc
Fixed in ports r461202 by backporting upstream patches.