Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] package/mpd: disable on SPARCV8, NIOS2, ARMV{4, 5}
@ 2017-01-21 16:11 Jörg Krause
  2017-01-22  6:26 ` Thomas Petazzoni
  0 siblings, 1 reply; 6+ messages in thread
From: Jörg Krause @ 2017-01-21 16:11 UTC (permalink / raw)
  To: buildroot

Since version 0.20 mpd uses the C++11 feature `std::exception_ptr` which
is not available on architectures that do not have always-lock-free
atomics for int.

The issue [1,2] has been fixed in GCC trunk r244051 [3] and will be
available in GCC 7. However, as GCC 7 is not released yet and will not
be before the next release of Buildroot, we disable the following
architectures, which caused build errors on the autobuilders:
  * SPARCV8
  * NIOS2
  * ARMV4
  * ARMV5

Fixes:
http://autobuild.buildroot.net/results/1c5/1c5090fe361b08c60277e54be1bfa7e80d5d31d8/
http://autobuild.buildroot.net/results/076/07621b958a3a35066790543586549aa41f2effa9/
http://autobuild.buildroot.net/results/7b1/7b12d41bee83ad20251dbc7026e0fc665d5abe0c/
.. and many more

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58938
[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64735
[3]
https://gcc.gnu.org/viewcvs/gcc/trunk/libstdc%2B%2B-v3/include/std/future?view=log&pathrev=244051

Signed-off-by: J?rg Krause <joerg.krause@embedded.rocks>
---
 package/mpd/Config.in | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/package/mpd/Config.in b/package/mpd/Config.in
index 9b22f68ce..52deef438 100644
--- a/package/mpd/Config.in
+++ b/package/mpd/Config.in
@@ -6,6 +6,11 @@ menuconfig BR2_PACKAGE_MPD
 	depends on BR2_USE_MMU # fork
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++14
 	depends on BR2_TOOLCHAIN_HAS_ATOMIC
+	# std::exception_ptr is not available on architectures that do not have
+	# always-lock-free atomics for int. Note that GCC 7 will fix this issue
+	# by not relying on atomics anymore, so MPD will be available for these
+	# archs again (if build with GCC 7).
+	depends on !(BR2_sparc_v8 || BR2_nios2 || BR2_ARM_CPU_ARMV4 || BR2_ARM_CPU_ARMV5)
 	select BR2_PACKAGE_BOOST
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	select BR2_PACKAGE_MPD_TREMOR if !(BR2_PACKAGE_MPD_MAD || BR2_PACKAGE_MPD_MPG123 || BR2_PACKAGE_MPD_VORBIS || BR2_PACKAGE_MPD_WAVPACK || BR2_PACKAGE_MPD_FLAC || BR2_PACKAGE_MPD_MUSEPACK || BR2_PACKAGE_MPD_FFMPEG)
@@ -317,5 +322,6 @@ endif
 comment "mpd needs a toolchain w/ C++, threads, wchar, gcc >= 4.9"
 	depends on BR2_USE_MMU
 	depends on BR2_TOOLCHAIN_HAS_ATOMIC
+	depends on !(BR2_sparc_v8 || BR2_nios2 || BR2_ARM_CPU_ARMV4 || BR2_ARM_CPU_ARMV5)
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
 		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH] package/mpd: disable on SPARCV8, NIOS2, ARMV{4, 5}
  2017-01-21 16:11 [Buildroot] [PATCH] package/mpd: disable on SPARCV8, NIOS2, ARMV{4, 5} Jörg Krause
@ 2017-01-22  6:26 ` Thomas Petazzoni
  2017-01-22 10:19   ` Jörg Krause
  0 siblings, 1 reply; 6+ messages in thread
From: Thomas Petazzoni @ 2017-01-22  6:26 UTC (permalink / raw)
  To: buildroot

Hello,

On Sat, 21 Jan 2017 17:11:00 +0100, J?rg Krause wrote:
> Since version 0.20 mpd uses the C++11 feature `std::exception_ptr` which
> is not available on architectures that do not have always-lock-free
> atomics for int.
> 
> The issue [1,2] has been fixed in GCC trunk r244051 [3] and will be
> available in GCC 7. However, as GCC 7 is not released yet and will not
> be before the next release of Buildroot, we disable the following
> architectures, which caused build errors on the autobuilders:
>   * SPARCV8
>   * NIOS2
>   * ARMV4
>   * ARMV5
> 
> Fixes:
> http://autobuild.buildroot.net/results/1c5/1c5090fe361b08c60277e54be1bfa7e80d5d31d8/
> http://autobuild.buildroot.net/results/076/07621b958a3a35066790543586549aa41f2effa9/
> http://autobuild.buildroot.net/results/7b1/7b12d41bee83ad20251dbc7026e0fc665d5abe0c/
> .. and many more

How many packages are potentially affected by this?

The reason I'm asking is because I believe a
BR2_TOOLCHAIN_HAS_GCC_BUG_xyz hidden option would be a bit better:

 1. It would document what this is for

 2. It would avoid repeating the architecture conditions

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH] package/mpd: disable on SPARCV8, NIOS2, ARMV{4, 5}
  2017-01-22  6:26 ` Thomas Petazzoni
@ 2017-01-22 10:19   ` Jörg Krause
  2017-01-30  9:49     ` Thomas Petazzoni
  0 siblings, 1 reply; 6+ messages in thread
From: Jörg Krause @ 2017-01-22 10:19 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

On Sun, 2017-01-22 at 17:26 +1100, Thomas Petazzoni wrote:
> Hello,
> 
> On Sat, 21 Jan 2017 17:11:00 +0100, J?rg Krause wrote:
> > Since version 0.20 mpd uses the C++11 feature `std::exception_ptr`
> > which
> > is not available on architectures that do not have always-lock-free
> > atomics for int.
> > 
> > The issue [1,2] has been fixed in GCC trunk r244051 [3] and will be
> > available in GCC 7. However, as GCC 7 is not released yet and will
> > not
> > be before the next release of Buildroot, we disable the following
> > architectures, which caused build errors on the autobuilders:
> > ? * SPARCV8
> > ? * NIOS2
> > ? * ARMV4
> > ? * ARMV5
> > 
> > Fixes:
> > http://autobuild.buildroot.net/results/1c5/1c5090fe361b08c60277e54b
> > e1bfa7e80d5d31d8/
> > http://autobuild.buildroot.net/results/076/07621b958a3a350667905435
> > 86549aa41f2effa9/
> > http://autobuild.buildroot.net/results/7b1/7b12d41bee83ad20251dbc70
> > 26e0fc665d5abe0c/
> > .. and many more
> 
> How many packages are potentially affected by this?

Not sure about this. Eventually all C++11 packages using
std:exception_ptr or std::future are affected. I am not aware of any
other Buildroot package besides MPD.

> The reason I'm asking is because I believe a
> BR2_TOOLCHAIN_HAS_GCC_BUG_xyz hidden option would be a bit better:
> 
> ?1. It would document what this is for
> 
> ?2. It would avoid repeating the architecture conditions

Yes, this would be better in case more packages show up. Shall I make
an updated fix?

J?rg

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH] package/mpd: disable on SPARCV8, NIOS2, ARMV{4, 5}
  2017-01-22 10:19   ` Jörg Krause
@ 2017-01-30  9:49     ` Thomas Petazzoni
  2017-01-30 19:55       ` Jörg Krause
  0 siblings, 1 reply; 6+ messages in thread
From: Thomas Petazzoni @ 2017-01-30  9:49 UTC (permalink / raw)
  To: buildroot

Hello,

On Sun, 22 Jan 2017 11:19:45 +0100, J?rg Krause wrote:

> > The reason I'm asking is because I believe a
> > BR2_TOOLCHAIN_HAS_GCC_BUG_xyz hidden option would be a bit better:
> > 
> > ?1. It would document what this is for
> > 
> > ?2. It would avoid repeating the architecture conditions  
> 
> Yes, this would be better in case more packages show up. Shall I make
> an updated fix?

Yes, please :)

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH] package/mpd: disable on SPARCV8, NIOS2, ARMV{4, 5}
  2017-01-30  9:49     ` Thomas Petazzoni
@ 2017-01-30 19:55       ` Jörg Krause
  2017-01-30 20:27         ` Peter Korsgaard
  0 siblings, 1 reply; 6+ messages in thread
From: Jörg Krause @ 2017-01-30 19:55 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

On Mon, 2017-01-30 at 10:49 +0100, Thomas Petazzoni wrote:
> Hello,
> 
> On Sun, 22 Jan 2017 11:19:45 +0100, J?rg Krause wrote:
> 
> > > The reason I'm asking is because I believe a
> > > BR2_TOOLCHAIN_HAS_GCC_BUG_xyz hidden option would be a bit
> > > better:
> > > 
> > > ?1. It would document what this is for
> > > 
> > > ?2. It would avoid repeating the architecture conditions??
> > 
> > Yes, this would be better in case more packages show up. Shall I
> > make
> > an updated fix?
> 
> Yes, please :)

OK.

I'm a little upset that there will be no MPD available for the ARMv5
architecture until GCC 7 is available?in Buildroot. Maybe we can still
support the 0.19 branch for the archs which are affected by the GCC
issue and use the 0.20 otherwise? Any objections?

J?rg

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH] package/mpd: disable on SPARCV8, NIOS2, ARMV{4, 5}
  2017-01-30 19:55       ` Jörg Krause
@ 2017-01-30 20:27         ` Peter Korsgaard
  0 siblings, 0 replies; 6+ messages in thread
From: Peter Korsgaard @ 2017-01-30 20:27 UTC (permalink / raw)
  To: buildroot

>>>>> "J?rg" == J?rg Krause <joerg.krause@embedded.rocks> writes:

Hi,

 > OK.

 > I'm a little upset that there will be no MPD available for the ARMv5
 > architecture until GCC 7 is available?in Buildroot. Maybe we can still
 > support the 0.19 branch for the archs which are affected by the GCC
 > issue and use the 0.20 otherwise? Any objections?

Yeah, I agree that it isn't really very nice. What does upstream say?
Stick to 0.19 for now?

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-01-30 20:27 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-21 16:11 [Buildroot] [PATCH] package/mpd: disable on SPARCV8, NIOS2, ARMV{4, 5} Jörg Krause
2017-01-22  6:26 ` Thomas Petazzoni
2017-01-22 10:19   ` Jörg Krause
2017-01-30  9:49     ` Thomas Petazzoni
2017-01-30 19:55       ` Jörg Krause
2017-01-30 20:27         ` Peter Korsgaard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox