ncmpc: fix build with some old toolchains
authorFabrice Fontaine <fontaine.fabrice@gmail.com>
Sun, 12 Aug 2018 07:45:20 +0000 (09:45 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sun, 12 Aug 2018 12:31:27 +0000 (14:31 +0200)
commit21f0507cc193469b8ba7fccc3fc07a2bbd12784b
treeb16448a6edd0559730135b32074f4beabe8a4fb0
parent98e3c1eee505b6c92c75daa1772ba543936b099f
ncmpc: fix build with some old toolchains

With some "old" toolchains (glibc, uclibc in version 4.9.4, 5.3, 5.4,
5.5 ...), the following error is raised by the compiler:

../src/screen.cxx:60:29:   required from here
/usr/lfs/v0/rc-buildroot-test/scripts/instance-1/output/host/opt/ext-toolchain/mips-linux-gnu/include/c++/5.3.0/ext/new_allocator.h:120:4:
error: no matching function for call to 'std::pair<const screen_functions* const, std::unique_ptr<Page> >::pair(const screen_functions*, Page*)'

[...]

/usr/lfs/v0/rc-buildroot-test/scripts/instance-1/output/host/opt/ext-toolchain/mips-linux-gnu/include/c++/5.3.0/bits/stl_pair.h:112:26:
note: candidate: constexpr std::pair<_T1, _T2>::pair(const _T1&, const _T2&) [with _T1 = const screen_functions* const; _T2 = std::unique_ptr<Page>]
       _GLIBCXX_CONSTEXPR pair(const _T1& __a, const _T2& __b)
                          ^
/usr/lfs/v0/rc-buildroot-test/scripts/instance-1/output/host/opt/ext-toolchain/mips-linux-gnu/include/c++/5.3.0/bits/stl_pair.h:112:26:
note:   no known conversion for argument 2 from 'Page*' to 'const std::unique_ptr<Page>&'

This is due to the fact that init function of screen_functions
structure returns Page* but PageMap wants a std::unique_ptr<Page>

To fix this, cast raw pointer into a unique_ptr with an explicit cast

Fixes:
 - http://autobuild.buildroot.net/results/d8a7339d8bdd5cdc6bd1716585d4bcf15a2e8015

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/ncmpc/0001-Fix-unique_ptr-error-with-some-old-toolchains.patch [new file with mode: 0644]