diff mbox

[1/1] package/ffmpeg: needs sync_4

Message ID 20170525093119.15205-1-bernd.kuhls@t-online.de
State Rejected
Headers show

Commit Message

Bernd Kuhls May 25, 2017, 9:31 a.m. UTC
Fixes
http://autobuild.buildroot.net/results/b3e/b3eaaf6d73cd49f5919143aeaa5cbb4d15a7ccc3/

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 package/ffmpeg/Config.in | 1 +
 1 file changed, 1 insertion(+)

Comments

Romain Naour May 29, 2017, 9:28 p.m. UTC | #1
Hi Bernd,

Le 25/05/2017 à 11:31, Bernd Kuhls a écrit :
> Fixes
> http://autobuild.buildroot.net/results/b3e/b3eaaf6d73cd49f5919143aeaa5cbb4d15a7ccc3/
> 
> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> ---
>  package/ffmpeg/Config.in | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/package/ffmpeg/Config.in b/package/ffmpeg/Config.in
> index 383374ddb..1326c7b8d 100644
> --- a/package/ffmpeg/Config.in
> +++ b/package/ffmpeg/Config.in
> @@ -4,6 +4,7 @@ config BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
>  	# No support for ARMv7-M in the ARM assembly logic
>  	# Microblaze build affected by gcc PR71124 (infinite loop)
>  	default y if !BR2_nios2 && !BR2_ARM_CPU_ARMV7M && !BR2_microblaze
> +	depends on BR2_TOOLCHAIN_HAS_SYNC_4

The code libavutil/buffer.c use atomic_fetch_add_explicit() and ffmpeg should
build correctly if you disable BR2_PACKAGE_FFMPEG_FFMPEG with this defconfig.

But with all option enabled except BR2_PACKAGE_FFMPEG_FFMPEG, it fail elsewhere:
ffmpeg-3.3.1/libavdevice/v4l2.c:515: undefined reference to `__sync_fetch_and_add_4

So,

Acked-by: Romain Naour <romain.naour@gmail.com>

Best regards,
Romain

>  
>  menuconfig BR2_PACKAGE_FFMPEG
>  	bool "ffmpeg"
>
Thomas Petazzoni May 29, 2017, 9:38 p.m. UTC | #2
Hello,

On Thu, 25 May 2017 11:31:19 +0200, Bernd Kuhls wrote:

>  	default y if !BR2_nios2 && !BR2_ARM_CPU_ARMV7M && !BR2_microblaze
> +	depends on BR2_TOOLCHAIN_HAS_SYNC_4

This is not correct, because ffmpeg has fallback code on pthreads
based atomics, so for example SPARC does not have
BR2_TOOLCHAIN_HAS_SYNC_4, but ffmpeg builds fine.

The issue is only with m68k_cf, where ffmpeg thinks it has atomic
intrinsics while it has not.

Since we really don't care about ffmpeg on m68k_cf, I've simply
excluded this architecture, as I proposed on another patch proposed by
Waldemar to fix the same issue:
https://patchwork.ozlabs.org/patch/756664/

Thomas
diff mbox

Patch

diff --git a/package/ffmpeg/Config.in b/package/ffmpeg/Config.in
index 383374ddb..1326c7b8d 100644
--- a/package/ffmpeg/Config.in
+++ b/package/ffmpeg/Config.in
@@ -4,6 +4,7 @@  config BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
 	# No support for ARMv7-M in the ARM assembly logic
 	# Microblaze build affected by gcc PR71124 (infinite loop)
 	default y if !BR2_nios2 && !BR2_ARM_CPU_ARMV7M && !BR2_microblaze
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4
 
 menuconfig BR2_PACKAGE_FFMPEG
 	bool "ffmpeg"