configure: drop yasm support

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.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
Lynne 2024-10-03 15:25:37 +02:00 committed by Paul B Mahol
parent 82d8f44114
commit aa602d52de
5 changed files with 10 additions and 24 deletions

View File

@ -2,6 +2,9 @@ Entries are sorted chronologically from oldest to youngest within each release,
releases are sorted from youngest to oldest. releases are sorted from youngest to oldest.
version <next>: version <next>:
+- yasm support dropped, users need to use nasm
version 7.1:
- CLAP wrapper audio filter - CLAP wrapper audio filter
- more truehd encoder channel-layouts - more truehd encoder channel-layouts
- LC3/LC3plus demuxer and muxer - LC3/LC3plus demuxer and muxer

21
configure vendored
View File

@ -4384,16 +4384,6 @@ for opt do
test $action = enable && warn_if_gets_disabled $list test $action = enable && warn_if_gets_disabled $list
$action $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-?*) --enable-?*|--disable-?*)
eval $(echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g') eval $(echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g')
if is_in $option $COMPONENT_LIST; then if is_in $option $COMPONENT_LIST; then
@ -6414,26 +6404,19 @@ EOF
x86asmexe_probe=$1 x86asmexe_probe=$1
if test_cmd $x86asmexe_probe -v; then if test_cmd $x86asmexe_probe -v; then
x86asmexe=$x86asmexe_probe x86asmexe=$x86asmexe_probe
x86asm_type=nasm
x86asm_debug="-g -F dwarf" x86asm_debug="-g -F dwarf"
X86ASMDEP= X86ASMDEP=
X86ASM_DEPFLAGS='-MD $(@:.o=.d)' 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 fi
check_x86asm x86asm "movbe ecx, [5]" check_x86asm x86asm "movbe ecx, [5]"
} }
if ! disabled_any asm mmx x86asm; then if ! disabled_any asm mmx x86asm; then
disable x86asm disable x86asm
for program in $x86asmexe nasm yasm; do for program in $x86asmexe nasm; do
probe_x86asm $program && break probe_x86asm $program && break
done 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" X86ASMFLAGS="-f $objformat"
test -n "$extern_prefix" && append X86ASMFLAGS "-DPREFIX" test -n "$extern_prefix" && append X86ASMFLAGS "-DPREFIX"
case "$objformat" in case "$objformat" in

View File

@ -811,7 +811,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. an explanation why to your patchset, its ok to not test if theres a reason.
@item @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-x86asm.
@item @item
Test your code with valgrind and or Address Sanitizer to ensure it's free Test your code with valgrind and or Address Sanitizer to ensure it's free

View File

@ -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 a single __asm__() statement. Ideally, a single function contains only one
__asm__() block. __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. The latter requires a good optimizing compiler which gcc is not.
When debugging a x86 external asm compilation issue, if lost in the macro 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 Inline asm vs. external asm
--------------------------- ---------------------------
Both inline asm (__asm__("..") in a .c file, handled by a compiler such as gcc) 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. 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 - if your code is intended to be inlined in a C function, inline asm is always

View File

@ -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 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. 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 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} 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}: @uref{http://sourceware.org/cygwinports/, Cygwin Ports}:
@example @example
yasm, libSDL-devel, libgsm-devel, libmp3lame-devel, libSDL-devel, libgsm-devel, libmp3lame-devel,
speex-devel, libtheora-devel, libxvidcore-devel speex-devel, libtheora-devel, libxvidcore-devel
@end example @end example