Skip to contentSkip to conversation

boost: fiber needs exception_ptr

PATCH New Fabrice Fontaine 2 participants 4 messages Jun 25, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 boost: fiber needs exception_ptr

fiber needs exception_ptr because context is a transient dependency of fiber that needs exception_ptr.
An other option would be to make boost fiber depends on boost context
(https://www.boost.org/doc/libs/1_67_0/libs/fiber/doc/html/fiber/overview.html)

Fixes:
- http://autobuild.buildroot.net/results/56509d315defb95d4ac6e278a9d40cd98f61baa7

---
 package/boost/Config.in | 4 ++++
 1 file changed, 4 insertions(+)
package/boost/Config.in +4 -0
index db69afa27f..aedc8be97a 100644
@@ -114,6 +114,7 @@ config BR2_PACKAGE_BOOST_FIBER
 	# mips support uses the "pause" instruction, only available
 	# since mips32r2/mips64r2.
 	depends on !BR2_MIPS_CPU_MIPS32 && !BR2_MIPS_CPU_MIPS64
+	depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr
 	depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_85180
 	help
 	  C++11 userland threads library.
@@ -121,6 +122,9 @@ config BR2_PACKAGE_BOOST_FIBER
 comment "boost-fiber needs a toolchain w/ NPTL"
 	depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
 
+comment "boost-fiber needs a toolchain not affected by GCC bug 64735"
+	depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
+
 comment "boost-fiber needs a toolchain not affected by GCC bug 85180"
 	depends on BR2_TOOLCHAIN_HAS_GCC_BUG_85180
 
Signature · 1 line
2.14.1
#1 lore raw

PATCH 1/1 boost: fiber needs exception_ptr

Hello,

Quoted 1 line · Fabrice Fontaine

fiber needs exception_ptr because context is a transient dependency of fiber

What do you mean by "transient" ? Perhaps you meant "transitive" ?

Quoted 3 lines

that needs exception_ptr.
An other option would be to make boost fiber depends on boost context
(https://www.boost.org/doc/libs/1_67_0/libs/fiber/doc/html/fiber/overview.html)

If boost fiber relies on boost context, then boost fiber should select boost context.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
#2 lore raw

PATCH 1/1 boost: fiber needs exception_ptr

Dear Thomas,

2018-06-25 21:35 GMT+02:00 Thomas Petazzoni <[email protected]>:

Quoted 8 lines

Hello,

Quoted 1 line · Fabrice Fontaine

fiber needs exception_ptr because context is a transient dependency of

fiber

What do you mean by "transient" ? Perhaps you meant "transitive" ?

I got this "transient dependencies" from
https://gist.github.com/ax3l/7450482 but you're right transitive is better.

Quoted 9 lines
Quoted 4 lines

that needs exception_ptr.
An other option would be to make boost fiber depends on boost context
(https://www.boost.org/doc/libs/1_67_0/libs/fiber/doc/

html/fiber/overview.html)

If boost fiber relies on boost context, then boost fiber should select boost context.

Indeed a select would be better, I will update my patch. However, I was thinking to add a dependency because that's what is currently done for BR2_PACKAGE_BOOST_COROUTINE which depends on BR2_PACKAGE_BOOST_CONTEXT. But after checking the history in patchwork (
http://patchwork.ozlabs.org/patch/539552), it seems this one is a special case and you wanted to avoid duplicating the dependencies of boost-context in boost-coroutine.

Quoted 9 lines

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/20180625/7ac33ea8/attachment.html>

#3 lore raw

PATCH 1/1 boost: fiber needs exception_ptr

Hello,

Quoted 4 lines · Fabrice Fontaine
Quoted 2 lines

What do you mean by "transient" ? Perhaps you meant "transitive" ?

I got this "transient dependencies" from
https://gist.github.com/ax3l/7450482 but you're right transitive is better.

Transient means temporary (in french "fugace", "?ph?m?re", according to
http://www.wordreference.com/enfr/transient). So I believe "transient" here is not correct.

Quoted 8 lines
Quoted 8 lines
Quoted 3 lines

that needs exception_ptr.
An other option would be to make boost fiber depends on boost context
(https://www.boost.org/doc/libs/1_67_0/libs/fiber/doc/

html/fiber/overview.html)

If boost fiber relies on boost context, then boost fiber should select boost context.

Quoted 7 lines

Indeed a select would be better, I will update my patch. However, I was thinking to add a dependency because that's what is currently done for BR2_PACKAGE_BOOST_COROUTINE which depends on BR2_PACKAGE_BOOST_CONTEXT. But after checking the history in patchwork (
http://patchwork.ozlabs.org/patch/539552), it seems this one is a special case and you wanted to avoid duplicating the dependencies of boost-context in boost-coroutine.

To be honest, I believe a "select" would have been more appropriate as well in the coroutine->context dependency.

A hidden BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS dependency would help simplify the handling of its architecture dependency.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com