mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-17 21:14:47 +00:00
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.
This commit is contained in:
parent
73d2cb1c2b
commit
2f888fb99e
@ -2,6 +2,7 @@ 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:
|
version 7.1:
|
||||||
- Raw Captions with Time (RCWT) closed caption demuxer
|
- Raw Captions with Time (RCWT) closed caption demuxer
|
||||||
|
21
configure
vendored
21
configure
vendored
@ -4415,16 +4415,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
|
||||||
@ -6445,26 +6435,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
|
||||||
|
@ -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.
|
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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user