[FFmpeg-devel] [PATCH 1/5] configure: drop yasm support
Lynne
dev at lynne.ee
Sun Oct 6 02:42:24 EEST 2024
On 03/10/2024 15:40, Lynne wrote:
> 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 <next>:
> +- 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
>
Pushed.
Better late than never, but we can now clean up some old assembly.
Partially, at least, since ARCH_X86_64 and HAVE_AVX2_EXTERNAL checks
often go hand in hand. Don't look at me, I don't want 32-bit support
dropped, not after all the effort it took to write code with only 8
registers.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0xA2FEA5F03F034464.asc
Type: application/pgp-keys
Size: 624 bytes
Desc: OpenPGP public key
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20241006/dce0eacf/attachment.key>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 236 bytes
Desc: OpenPGP digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20241006/dce0eacf/attachment.sig>
More information about the ffmpeg-devel
mailing list