From 677568b2cacf4db9468a08127ee2d19e6544f438 Mon Sep 17 00:00:00 2001 From: Trevor Woerner Date: Wed, 28 Jul 2021 08:29:14 -0400 Subject: [PATCH] ffmpeg: add libatomic for armv5 The GNU Atomic library is a GCC support runtime library for atomic operations not supported by hardware. Otherwise we get the following when building: | arm-oe-linux-gnueabi-gcc -mcpu=arm926ej-s -mfpu=vfp -mfloat-abi=hard -marm --sysroot=.../build/tmp-glibc/work/armv5ehf-vfp-oe-linux-gnueabi/ffmpeg/4.4-r0/recipe-sysroot -Llibavcodec -Llibavdevice -Llibavfilter -Llibavformat -Llibavresample -Llibavutil -Llibpostproc -Llibswscale -Llibswresample -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=.../build/tmp-glibc/work/armv5ehf-vfp-oe-linux-gnueabi/ffmpeg/4.4-r0/recipe-sysroot -mcpu=arm926ej-s -Wl,--as-needed -Wl,-z,noexecstack -Wl,--warn-common -Wl,-rpath-link=:libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample -o ffprobe_g fftools/cmdutils.o fftools/ffprobe.o -lavdevice -lavfilter -lavformat -lavcodec -lavresample -lswresample -lswscale -lavutil -lm -lxcb -lxcb-shm -lxcb-shape -lxcb-xfixes -lasound -lXv -lX11 -lXext -pthread -lm -lm -lbz2 -lz -pthread -lm -llzma -lz -ltheoraenc -ltheoradec -logg -lm -lm -lm -pthread -lm -lXv -lX11 -lXext | .../build/tmp-glibc/work/armv5ehf-vfp-oe-linux-gnueabi/ffmpeg/4.4-r0/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/11.1.1/ld: libavformat/libavformat.so: undefined reference to `__atomic_fetch_sub_8' | .../build/tmp-glibc/work/armv5ehf-vfp-oe-linux-gnueabi/ffmpeg/4.4-r0/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/11.1.1/ld: libavformat/libavformat.so: undefined reference to `__atomic_store_8' | .../build/tmp-glibc/work/armv5ehf-vfp-oe-linux-gnueabi/ffmpeg/4.4-r0/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/11.1.1/ld: libavformat/libavformat.so: undefined reference to `__atomic_load_8' | .../build/tmp-glibc/work/armv5ehf-vfp-oe-linux-gnueabi/ffmpeg/4.4-r0/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/11.1.1/ld: libavformat/libavformat.so: undefined reference to `__atomic_fetch_add_8' | collect2: error: ld returned 1 exit status Signed-off-by: Trevor Woerner Signed-off-by: Richard Purdie --- meta/recipes-multimedia/ffmpeg/ffmpeg_4.4.bb | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg_4.4.bb b/meta/recipes-multimedia/ffmpeg/ffmpeg_4.4.bb index 89c75f4250..e19077541e 100644 --- a/meta/recipes-multimedia/ffmpeg/ffmpeg_4.4.bb +++ b/meta/recipes-multimedia/ffmpeg/ffmpeg_4.4.bb @@ -136,6 +136,7 @@ EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mips32r6', '--disable-mi EXTRA_OECONF:append:mips = " --extra-libs=-latomic --disable-mips32r5 --disable-mipsdsp --disable-mipsdspr2 \ --disable-loongson2 --disable-loongson3 --disable-mmi --disable-msa --disable-msa2" EXTRA_OECONF:append:riscv32 = " --extra-libs=-latomic" +EXTRA_OECONF:append:armv5 = " --extra-libs=-latomic" # gold crashes on x86, another solution is to --disable-asm but thats more hacky # ld.gold: internal error in relocate_section, at ../../gold/i386.cc:3684 -- 2.40.1