ffmpeg: add ARM64EC build support - #48803
Conversation
19b2c08 to
dfa654f
Compare
| @@ -0,0 +1,77 @@ | |||
| diff --git a/compat/windows/makedef b/compat/windows/makedef | |||
There was a problem hiding this comment.
These are fairly large patches, have you submitted them upstream?
There was a problem hiding this comment.
Hi Billy O'Neal (@BillyONeal),
Yes, these patches were submitted upstream to FFmpeg. However, the maintainers indicated that ARM64EC support would require ongoing maintenance and therefore could not be merged at this time, so we are providing ARM64EC support through vcpkg.
There was a problem hiding this comment.
the maintainers indicated that ARM64EC support would require ongoing maintenance and therefore could not be merged at this time
Unfortunately that sounds like upstream explicitly declining to take the patch which would be a reason we would not take this. See https://learn.microsoft.com/vcpkg/contributing/maintainer-guide#patching
... our most important thing is we don't put words in upstream's mouth and if they have explicitly declined to do something we are not a means to go around their wishes.
(I understand that arm64ec is a thing Microsoft cares about in some capacity and vcpkg is a Microsoft product but that doesn't mean we are sponsoring development of everything in vcpkg's registry)
There was a problem hiding this comment.
(You could consider doing vanilla arm64 and calling ffmpeg out-of-proc from arm64ec apps)
|
Drafted due to CLA. You should be able to fix the build failures with |
dfa654f to
f4d5f68
Compare
|
Hi Billy O'Neal (@BillyONeal), We have also submitted these patches upstream. However, the FFmpeg maintainers noted that ARM64EC support would require ongoing maintenance, so the ARM64EC-specific changes couldn't be merged at this time. Therefore, we would like to provide ARM64EC support for FFmpeg through vcpkg, as this would enable several applications such as Jianying Pro and WPS Office to build and run successfully for the ARM64EC target. I have initiated the CLA approval process within our organization and will respond to the CLA as soon as internal approval is granted. Thanks. |
f4d5f68 to
f0099bf
Compare
This update adds ARM64EC support to the FFmpeg vcpkg port. Key changes: - Enable ARM64EC architecture handling in portfile.cmake. - Add /machine:arm64ec flags for lib.exe, armasm64, and linker. - Update gas-preprocessor to a newer revision required for ARM64EC. - Extend assembler, AR, and dumpbin logic to correctly process ARM64EC binaries. This allows FFmpeg to be successfully built for Windows ARM64EC using the vcpkg toolchain.
f0099bf to
b166fd2
Compare
|
@microsoft-github-policy-service agree company="Multicoreware" |
|
I'm closing this PR due to the reasons stated in BIlly's comment: #48803 (comment) We recommend that you create a custom registry with your changes, that way you can still use vcpkg to install ffmpeg and include your ARM64EC fixes. |
This PR adds Windows ARM64EC build support to the FFmpeg port.
Summary
arm64ecarchitecture handling inportfile.cmake./machine:arm64ectolib.exe, armasm64, and linker flags.makedefto handle ARM64EC:dumpbin -linkermember:32(required for ARM64EC archives).$entry_thunk/$exit_thunksymbols.#on symbols.These changes enable FFmpeg to successfully build as ARM64EC while keeping behavior unchanged for all other architectures.