[FFmpeg-devel] Various build errors with armasm64 and armasmafter update to FFmpeg 4.2

Lukas Fellechner lukas.fellechner at gmx.net
Thu Oct 3 14:17:42 EEST 2019


> > On Oct 1, 2019, at 23:07, Lukas Fellechner <lukas.fellechner at gmx.net> wrote:
> > 
> > This has worked very well for quite a long time. But after upgrading to FFmpeg 4.2, the build fails. A lot of changes and additions have been done for ARM/NEON 64-bit, and it looks like many of them are not compatible with armasm64. First I had to fix gas-preprocessor, a patch has been submitted today. But now, many other errors occur, which have to do with the ARM64 assembly code itself. I don’t have any knowledge of ARM/NEON assembly code, so I cannot help much with the investigation or fixes.
> 
> The issue you posted about, and the other arm64 assembler issue you’ve linked, are already fixed since a very long time in libav’s gas-preprocessor, https://git.libav.org/?p=gas-preprocessor.git;a=summary.

Thank you, I tried with that updated gas-preprocessor and indeed all compile errors on ARM64 went away!

> > On ARM platform, I also see build errors. Interestingly, those files have not even changed. Only the referenced file libavutil/arm/asm.S has changed. Even when I undo the last changes there, the build still fails, so I am out of ideas here right now. When I switch back to FFmpeg 4.1.4, everything builds fine. Maybe there is a config change which causes those errors?

> > Errors with ARM target (32 bit):
> > 
> > C:\Source\FFmpegInterop-lukasf\ffmpeg\Output\Windows10\ARM\libavcodec\arm\ac3dsp_arm.o.asm(72) : error A2173: syntax error in expression
>        it gt
> 
> This seems to be a new regression in armasm in MSVC 2019 16.3 (released a couple weeks ago), see https://developercommunity.visualstudio.com/content/problem/757709/armasm-fails-to-handle-it-instructions.html. I don’t see how it would work for you with an earlier version of FFmpeg though, maybe those files are around from an earlier build and you didn’t try doing a full rebuild?

You are right, I was mainly testing with ARM64, so I did not notice that even FFmpeg 4.1.4 fails to build on ARM (32 bit). I need to roll back to the older build tools to build ARM platform successfully for now. 

> You can apply https://lists.libav.org/pipermail/libav-devel/2019-October/086581.html on your copy of gas-preprocessor to work around this issue, but I’m not sure if it’s worth keeping the fix permanently (if the bug gets fixed in 16.4).

Thank you!

Best Regards
Lukas


More information about the ffmpeg-devel mailing list