From patchwork Thu Oct 3 13:40:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lynne X-Patchwork-Id: 51997 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:b18c:0:b0:48e:c0f8:d0de with SMTP id q12csp369123vqn; Thu, 3 Oct 2024 06:40:46 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCX3SYOQD1CnUGDJYY9/EHM75lTGtp81QzD6GqhdiuLG81VV9hwoy0MyxzSrYrzM6zQmgJepyrtrnHFU9yW9GbMl@gmail.com X-Google-Smtp-Source: AGHT+IHJGL3+baWzvizF83Qi7l0ubln5Ve3fqkExzjixS1av1egXt4zky2mDld+ZO9m7l/X2xOkt X-Received: by 2002:a17:906:fd83:b0:a77:ab9e:9202 with SMTP id a640c23a62f3a-a990a03463cmr371087966b.4.1727962846284; Thu, 03 Oct 2024 06:40:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1727962846; cv=none; d=google.com; s=arc-20240605; b=bnMyTJtF39uDZFmGahUEWfF+vKPAtnlLxPKPFf9+SevRUKbOSxE6aHrM/iWERejH3+ 0ZdxC9uYqdIwWu1aDSI6FMxImxNq5x+aygUxoOp9VbXIvWj+iZxrtVr0rjn+0P8/nWO1 0uuF7ifxbXwISvOmdc4hBOUjnd9jzZQkD/cZF/JtuQ5bFIOsuG4Ws2iKRrdxigdFv1sF EVMyENxYSp+9RKh35G7PjD57dAC8BLu/n3LFTbNaJ12t4NfgGE/YuNHB7wi/a7r5O3yJ aqjQ61MhVJdt6zuGG5YZCdVmVH0wotHa2uOHUaUrbrHq6te0Sdlh/SX/eA/g/S1qF3RW 62ag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:content-transfer-encoding:cc:reply-to:from :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to :delivered-to; bh=mSKBMT2fX/uCkfJxLxIoSvQKV+U47taLzTpbejatp4k=; fh=nenT92/WZoU6unXd3J6UhGUdod4piddKfVtctNBOh6k=; b=XamacnS15SuPTyiy275oDyLqRdNL+C0fgto4kX3E8yZPclEniGDQ4omI5eOeqoTRuU TNDyhUNpaXTp/0fXDP9GxOqGIkoz8AT241mc31Xl/hncWQVy+P7Be+vNWQk2w9ZL9r4b nxoN24rtYdKlZQm8p9uhLX5pnwlhsbEi18ZPF8gebrwWIq1jH1177YcGFKTnw5RoDyQt Y7wHYHNTyL/tPTUmvcvRfYtxCGDZ4Gcx6OeiFz6GeYoDOZYyx0C6DpV7eDsRStRv2S5F 8RqTwuXruVNxQi8oURPZ/HLmBIotBf3R6CnJDe6juEyDXDZLkl8Y8DqXUq855DhlcOY/ OxWw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a991100c5ffsi73755066b.524.2024.10.03.06.40.45; Thu, 03 Oct 2024 06:40:46 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A17A568D691; Thu, 3 Oct 2024 16:40:41 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from vidala.lynne.ee (vidala.pars.ee [116.203.72.101]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 26BA368B57B for ; Thu, 3 Oct 2024 16:40:35 +0300 (EEST) To: ffmpeg-devel@ffmpeg.org Date: Thu, 3 Oct 2024 15:40:16 +0200 Message-ID: <20241003134026.544919-1-dev@lynne.ee> X-Mailer: git-send-email 2.45.2.753.g447d99e1c3b MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/5] configure: drop yasm support X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Lynne via ffmpeg-devel From: Lynne Reply-To: FFmpeg development discussions and patches Cc: Lynne Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: IUiLACRvLKKA We started defauling to nasm 8 years ago. We are still compatible with yasm 0.8.0, released in 2009. **15 years ago**. The time has more than come to remove support for it. Maintaining compatibility started cutting into writing new code long ago. We still can't have 2-argument instructions, preprocessor booleans, and all AVX2 code must still be wrapped in ifdefs. Newly added code often breaks this. --- Changelog | 1 + configure | 20 ++------------------ doc/developer.texi | 2 +- doc/optimization.txt | 4 ++-- doc/platform.texi | 4 ++-- 5 files changed, 8 insertions(+), 23 deletions(-) diff --git a/Changelog b/Changelog index b82b948074..7963e093dd 100644 --- a/Changelog +++ b/Changelog @@ -2,6 +2,7 @@ Entries are sorted chronologically from oldest to youngest within each release, releases are sorted from youngest to oldest. version : +- yasm support dropped, users need to use nasm version 7.1: - Raw Captions with Time (RCWT) closed caption demuxer diff --git a/configure b/configure index 0247ea08d6..79ce2ba083 100755 --- a/configure +++ b/configure @@ -4415,16 +4415,6 @@ for opt do test $action = enable && warn_if_gets_disabled $list $action $list ;; - --enable-yasm|--disable-yasm) - warn "The ${opt} option is only provided for compatibility and will be\n"\ - "removed in the future. Use --enable-x86asm / --disable-x86asm instead." - test $opt = --enable-yasm && x86asm=yes || x86asm=no - ;; - --yasmexe=*) - warn "The --yasmexe option is only provided for compatibility and will be\n"\ - "removed in the future. Use --x86asmexe instead." - x86asmexe="$optval" - ;; --enable-?*|--disable-?*) eval $(echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g') if is_in $option $COMPONENT_LIST; then @@ -6449,22 +6439,16 @@ EOF x86asm_debug="-g -F dwarf" X86ASMDEP= X86ASM_DEPFLAGS='-MD $(@:.o=.d)' - elif test_cmd $x86asmexe_probe --version; then - x86asmexe=$x86asmexe_probe - x86asm_type=yasm - x86asm_debug="-g dwarf2" - X86ASMDEP='$(DEPX86ASM) $(X86ASMFLAGS) -M $(X86ASM_O) $< > $(@:.o=.d)' - X86ASM_DEPFLAGS= fi check_x86asm x86asm "movbe ecx, [5]" } if ! disabled_any asm mmx x86asm; then disable x86asm - for program in $x86asmexe nasm yasm; do + for program in $x86asmexe nasm; do probe_x86asm $program && break done - disabled x86asm && die "nasm/yasm not found or too old. Use --disable-x86asm for a crippled build." + disabled x86asm && die "nasm not found or too old. Use --disable-x86asm for a crippled build." X86ASMFLAGS="-f $objformat" test -n "$extern_prefix" && append X86ASMFLAGS "-DPREFIX" case "$objformat" in diff --git a/doc/developer.texi b/doc/developer.texi index 41b21938ef..16e8f9d6e4 100644 --- a/doc/developer.texi +++ b/doc/developer.texi @@ -825,7 +825,7 @@ filters, bitstream filters, parsers. If its not possible to do that, add an explanation why to your patchset, its ok to not test if theres a reason. @item -If you added YASM code please check that things still work with --disable-yasm. +If you added NASM code please check that things still work with --disable-nasm. @item Test your code with valgrind and or Address Sanitizer to ensure it's free diff --git a/doc/optimization.txt b/doc/optimization.txt index 3ed29fe38c..40480e4fa9 100644 --- a/doc/optimization.txt +++ b/doc/optimization.txt @@ -188,7 +188,7 @@ Code that depends on data in registries being untouched, should be written as a single __asm__() statement. Ideally, a single function contains only one __asm__() block. -Use external asm (nasm/yasm) or inline asm (__asm__()), do not use intrinsics. +Use external asm (nasm) or inline asm (__asm__()), do not use intrinsics. The latter requires a good optimizing compiler which gcc is not. When debugging a x86 external asm compilation issue, if lost in the macro @@ -199,7 +199,7 @@ actual lines causing issues. Inline asm vs. external asm --------------------------- Both inline asm (__asm__("..") in a .c file, handled by a compiler such as gcc) -and external asm (.s or .asm files, handled by an assembler such as nasm/yasm) +and external asm (.s or .asm files, handled by an assembler such as nasm) are accepted in FFmpeg. Which one to use differs per specific case. - if your code is intended to be inlined in a C function, inline asm is always diff --git a/doc/platform.texi b/doc/platform.texi index 764911d230..d9ee436a9f 100644 --- a/doc/platform.texi +++ b/doc/platform.texi @@ -158,7 +158,7 @@ You will need the following prerequisites: To set up a proper environment in MSYS2, you need to run @code{msys_shell.bat} from the Visual Studio or Intel Compiler command prompt. -Place @code{yasm.exe} somewhere in your @code{PATH}. +Place @code{nasm.exe} somewhere in your @code{PATH}. Next, make sure any other headers and libs you want to use, such as zlib, are located in a spot that the compiler can see. Do so by modifying the @code{LIB} @@ -301,7 +301,7 @@ These library packages are only available from @uref{http://sourceware.org/cygwinports/, Cygwin Ports}: @example -yasm, libSDL-devel, libgsm-devel, libmp3lame-devel, +libSDL-devel, libgsm-devel, libmp3lame-devel, speex-devel, libtheora-devel, libxvidcore-devel @end example