* [Buildroot] [PATCH 1/1] ncmpc: fix build with some old toolchains
@ 2018-08-12 7:45 Fabrice Fontaine
2018-08-12 12:32 ` Thomas Petazzoni
0 siblings, 1 reply; 5+ messages in thread
From: Fabrice Fontaine @ 2018-08-12 7:45 UTC (permalink / raw)
To: buildroot
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>
---
...unique_ptr-error-with-some-old-toolchains.patch | 54 ++++++++++++++++++++++
1 file changed, 54 insertions(+)
create mode 100644 package/ncmpc/0001-Fix-unique_ptr-error-with-some-old-toolchains.patch
diff --git a/package/ncmpc/0001-Fix-unique_ptr-error-with-some-old-toolchains.patch b/package/ncmpc/0001-Fix-unique_ptr-error-with-some-old-toolchains.patch
new file mode 100644
index 0000000000..47905d71d7
--- /dev/null
+++ b/package/ncmpc/0001-Fix-unique_ptr-error-with-some-old-toolchains.patch
@@ -0,0 +1,54 @@
+From 63c0c47106007f7b2a791e3e4b062a5424d3dfe8 Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Sun, 12 Aug 2018 09:02:50 +0200
+Subject: [PATCH] Fix unique_ptr error 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>
+---
+ src/screen.cxx | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/screen.cxx b/src/screen.cxx
+index dd42b25..56afd11 100644
+--- a/src/screen.cxx
++++ b/src/screen.cxx
+@@ -56,8 +56,9 @@ ScreenManager::MakePage(const struct screen_functions &sf)
+ return i;
+
+ auto j = pages.emplace(&sf,
+- sf.init(*this, main_window.w,
+- main_window.size));
++ std::unique_ptr<Page>(sf.init(*this,
++ main_window.w,
++ main_window.size)));
+ assert(j.second);
+ return j.first;
+ }
+--
+2.14.1
+
--
2.14.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* [Buildroot] [PATCH 1/1] ncmpc: fix build with some old toolchains
2018-08-12 7:45 [Buildroot] [PATCH 1/1] ncmpc: fix build with some old toolchains Fabrice Fontaine
@ 2018-08-12 12:32 ` Thomas Petazzoni
2018-08-12 13:52 ` Fabrice Fontaine
0 siblings, 1 reply; 5+ messages in thread
From: Thomas Petazzoni @ 2018-08-12 12:32 UTC (permalink / raw)
To: buildroot
Hello,
On Sun, 12 Aug 2018 09:45:20 +0200, Fabrice Fontaine wrote:
> 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>
> ---
> ...unique_ptr-error-with-some-old-toolchains.patch | 54 ++++++++++++++++++++++
> 1 file changed, 54 insertions(+)
> create mode 100644 package/ncmpc/0001-Fix-unique_ptr-error-with-some-old-toolchains.patch
To be honest, I don't have enough C++ knowledge to figure out if this
is the right fix, but I've applied to master anyway. Please submit
upstream to get a proper review. Thanks!
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 1/1] ncmpc: fix build with some old toolchains
2018-08-12 12:32 ` Thomas Petazzoni
@ 2018-08-12 13:52 ` Fabrice Fontaine
2018-08-12 14:01 ` Thomas Petazzoni
0 siblings, 1 reply; 5+ messages in thread
From: Fabrice Fontaine @ 2018-08-12 13:52 UTC (permalink / raw)
To: buildroot
Dear Thomas,
2018-08-12 14:32 GMT+02:00 Thomas Petazzoni <thomas.petazzoni@bootlin.com>:
> Hello,
>
> On Sun, 12 Aug 2018 09:45:20 +0200, Fabrice Fontaine wrote:
> > 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/d8a7339d8bdd5cdc6bd1716585d4bc
> f15a2e8015
> >
> > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> > ---
> > ...unique_ptr-error-with-some-old-toolchains.patch | 54
> ++++++++++++++++++++++
> > 1 file changed, 54 insertions(+)
> > create mode 100644 package/ncmpc/0001-Fix-unique_
> ptr-error-with-some-old-toolchains.patch
>
> To be honest, I don't have enough C++ knowledge to figure out if this
> is the right fix, but I've applied to master anyway. Please submit
> upstream to get a proper review. Thanks!
>
I sent it upstream (https://github.com/MusicPlayerDaemon/ncmpc/pull/29) but
the PR has been closed :-/
> Best regards,
>
> Thomas
> --
> Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
> Embedded Linux and Kernel engineering
> https://bootlin.com
>
Best Regards,
Fabrice
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180812/727f14de/attachment.html>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 1/1] ncmpc: fix build with some old toolchains
2018-08-12 13:52 ` Fabrice Fontaine
@ 2018-08-12 14:01 ` Thomas Petazzoni
2018-08-12 14:15 ` Fabrice Fontaine
0 siblings, 1 reply; 5+ messages in thread
From: Thomas Petazzoni @ 2018-08-12 14:01 UTC (permalink / raw)
To: buildroot
Hello,
On Sun, 12 Aug 2018 15:52:07 +0200, Fabrice Fontaine wrote:
> > To be honest, I don't have enough C++ knowledge to figure out if this
> > is the right fix, but I've applied to master anyway. Please submit
> > upstream to get a proper review. Thanks!
> >
> I sent it upstream (https://github.com/MusicPlayerDaemon/ncmpc/pull/29) but
> the PR has been closed :-/
Considering upstream's reaction, perhaps we should drop the patch, and
add the appropriate BR2_TOOLCHAIN_HAS_GCC_AT_LEAST_... dependency ?
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 1/1] ncmpc: fix build with some old toolchains
2018-08-12 14:01 ` Thomas Petazzoni
@ 2018-08-12 14:15 ` Fabrice Fontaine
0 siblings, 0 replies; 5+ messages in thread
From: Fabrice Fontaine @ 2018-08-12 14:15 UTC (permalink / raw)
To: buildroot
Dear Thomas,
2018-08-12 16:01 GMT+02:00 Thomas Petazzoni <thomas.petazzoni@bootlin.com>:
> Hello,
>
> On Sun, 12 Aug 2018 15:52:07 +0200, Fabrice Fontaine wrote:
>
> > > To be honest, I don't have enough C++ knowledge to figure out if this
> > > is the right fix, but I've applied to master anyway. Please submit
> > > upstream to get a proper review. Thanks!
> > >
> > I sent it upstream (https://github.com/MusicPlayerDaemon/ncmpc/pull/29)
> but
> > the PR has been closed :-/
>
> Considering upstream's reaction, perhaps we should drop the patch, and
> add the appropriate BR2_TOOLCHAIN_HAS_GCC_AT_LEAST_... dependency ?
>
Indeed, you're right. I will send a new patch to add a dependency to gcc
>= 5.6.
>
> Thanks!
>
> Thomas
> --
> Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
> Embedded Linux and Kernel engineering
> https://bootlin.com
>
Best Regards,
Fabrice
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180812/bcbbd526/attachment.html>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-08-12 14:15 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-08-12 7:45 [Buildroot] [PATCH 1/1] ncmpc: fix build with some old toolchains Fabrice Fontaine
2018-08-12 12:32 ` Thomas Petazzoni
2018-08-12 13:52 ` Fabrice Fontaine
2018-08-12 14:01 ` Thomas Petazzoni
2018-08-12 14:15 ` Fabrice Fontaine
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.