[FFmpeg-devel] ARM/NEON build error on MSVC after moving to ffmpeg 4.2

Lukas Fellechner lukas.fellechner at gmx.net
Sun Sep 29 22:55:29 EEST 2019


Hi,

after updating ffmpeg form 4.1.x to n4.2 or n4.2.1, I can no longer build ARM or ARM64 versions of ffmpeg with Visual Studio. I always get build errors on neon assembly code, like this:

C:\Source\FFmpegInterop-lukasf\ffmpeg\Output\Windows10\ARM64\libavcodec\aarch64\fft_neon.o.asm(811) : 
error A2034: unknown opcode: .
        .section .rdata

The problem seems to be with a change in libavutil/aarch64/asm.S and libavutil/aarch/asm.S.

Changeset 41cf3e3 („arm: Create proper .rdata sections for COFF“) has added the following line, which MSVC compiler does not seems to understand.

#elif defined(_WIN32)

.section .rdata


Although it seems that this was added based on feedback from a MS developer, it does not seem to work on MSVC compiler toolchain.


Can we perhaps change this to something like this:

#elif defined(_WIN32) && !defined(_MSC_VER)

.section .rdata


Or is there some other way to get this working, without completely disabling NEON optimizations?

Thank you, all the best

Lukas


More information about the ffmpeg-devel mailing list