Bug 225557 - graphics/enblend:fails to build with clang 6.0
Summary: graphics/enblend:fails to build with clang 6.0
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Greg Lehey
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-01-30 12:04 UTC by Dmitry Afanasiev
Modified: 2018-02-08 07:54 UTC (History)
3 users (show)

See Also:
bugzilla: maintainer-feedback? (grog)


Attachments
patch-include_vigra-ext_impexalpha_hxx (1.99 KB, patch)
2018-02-06 01:33 UTC, Walter Schwarzenfeld
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Dmitry Afanasiev 2018-01-30 12:04:53 UTC
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
Comment 1 Walter Schwarzenfeld freebsd_triage 2018-02-06 01:33:40 UTC
Created attachment 190351 [details]
patch-include_vigra-ext_impexalpha_hxx

Please, try this patch.
Comment 2 commit-hook freebsd_committer freebsd_triage 2018-02-08 07:48:58 UTC
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
Comment 3 Alexey Dokuchaev freebsd_committer freebsd_triage 2018-02-08 07:54:22 UTC
Fixed in ports r461202 by backporting upstream patches.