Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Harish Raja Selvan via ffmpeg-devel <ffmpeg-devel@ffmpeg.org>
To: "Martin Storsjö" <martin@martin.st>
Cc: "harish.rajaselvan--- via ffmpeg-devel" <ffmpeg-devel@ffmpeg.org>,
	Harish Raja Selvan <harish.rajaselvan@multicorewareinc.com>
Subject: [FFmpeg-devel] Re: [DISCUSSION] Adding ARM64EC support to FFmpeg
Date: Tue, 30 Sep 2025 04:58:43 +0000
Message-ID: <MA5P287MB46250801E615EFD59F4ACEF69E1EA@MA5P287MB4625.INDP287.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <582fec83-771a-eef4-d5d1-6ff5621cff98@martin.st>

[-- Attachment #1: Type: text/plain, Size: 2036 bytes --]

Hello,

Thank you for your feedback and questions about the ARM64EC patch.
I’m sharing the build system patch for enabling ARM64EC support in FFmpeg.
This patch addresses .def file generation for ARM64EC builds on Windows.

In-Lined patch:

diff --git a/compat/windows/makedef b/compat/windows/makedef
index add8222d13..59e300ab61 100755
--- a/compat/windows/makedef
+++ b/compat/windows/makedef
@@ -108,7 +108,12 @@ if [ -n "$NM" ]; then
               cut -d' ' -f3 |
               sed -e "s/^${prefix}//")
 else
-    dump=$(dumpbin.exe -linkermember:1 ${libname} |
+    member=1
+    arch=$VSCMD_ARG_TGT_ARCH
+    if [ "${arch^^}" = "ARM64EC" ]; then
+        member=32
+    fi
+        dump=$(dumpbin.exe -linkermember:${member} ${libname} |
               sed -e '/public symbols/,$!d' -e '/^ \{1,\}Summary/,$d' -e "s/ \{1,\}${prefix}/ /" -e 's/ \{1,\}/ /g' |
               tail -n +2 |
               cut -d' ' -f3)
@@ -121,7 +126,7 @@ list=""
 for exp in ${regex}; do
     list="${list}"'
 '$(echo "${dump}" |
-          grep "^${exp}" |
+          grep "^${exp}" | awk '!/\$exit_thunk/{print}' |
           sed -e 's/^/    /')
 done

--
2.50.0.windows.1

For reference, here is the configuration used to build FFmpeg with MSVC for ARM64EC:
I've also attached the same configuration in ffmpeg-arm64ec-msvc.config for convenience.

# find_ar_lib resolves to /usr/share/automake-1.16/ar-lib
AR_LIB="$(find_ar_lib)"
AR_CMD="${AR_LIB} lib.exe -machine:arm64ec"
ARCH="arm64"

"${SRC_DIR}/configure" \
    --toolchain=msvc \
    --target-os=win64 \
    --cc=cl.exe \
    --cxx=cl.exe \
    --extra-cxxflags="-arm64EC" \
    --extra-cflags="-arm64EC" \
    --extra-ldflags="/machine:arm64ec" \
    --as="armasm64.exe -machine ARM64EC" \
    --ld=link.exe \
    --ar="${AR_CMD}" \
    --arch="${ARCH}"

In my setup, this configuration requires the gas-preprocessor.pl patch, as the build otherwise ends with a “GNU assembler not found” error.

Thanks,
Harish Raja Selvan.

[-- Attachment #2: 0001-compat-windows-makedef-fix-.def-generation-for-ARM64.patch --]
[-- Type: application/octet-stream, Size: 2032 bytes --]

[-- Attachment #3: 0001-ffmpeg-gas-preprocessor-enable-ARM64EC-compilation.patch --]
[-- Type: application/octet-stream, Size: 1666 bytes --]

[-- Attachment #4: config-arm64ec-msvc.config --]
[-- Type: application/xml, Size: 480 bytes --]

[-- Attachment #5: Type: text/plain, Size: 163 bytes --]

_______________________________________________
ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org
To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org

  reply	other threads:[~2025-09-30  4:59 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-22 10:04 [FFmpeg-devel] " harish.rajaselvan--- via ffmpeg-devel
2025-09-22 11:48 ` [FFmpeg-devel] " Martin Storsjö via ffmpeg-devel
2025-09-23 13:03   ` Harish Raja Selvan via ffmpeg-devel
2025-09-24 12:15     ` Martin Storsjö via ffmpeg-devel
2025-09-30  4:58       ` Harish Raja Selvan via ffmpeg-devel [this message]
2025-10-03 12:27         ` Martin Storsjö via ffmpeg-devel
2025-09-27  9:00 ` Rémi Denis-Courmont via ffmpeg-devel
2025-10-03 12:44   ` Martin Storsjö via ffmpeg-devel
2025-10-03 14:32     ` Rémi Denis-Courmont via ffmpeg-devel
2025-10-03 15:11       ` Martin Storsjö via ffmpeg-devel
2025-10-03 16:39         ` Rémi Denis-Courmont via ffmpeg-devel
2025-10-03 20:49           ` Stephen Hutchinson via ffmpeg-devel
2025-10-04  8:43             ` Rémi Denis-Courmont via ffmpeg-devel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=MA5P287MB46250801E615EFD59F4ACEF69E1EA@MA5P287MB4625.INDP287.PROD.OUTLOOK.COM \
    --to=ffmpeg-devel@ffmpeg.org \
    --cc=harish.rajaselvan@multicorewareinc.com \
    --cc=martin@martin.st \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ http://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git