Opened 4 years ago
Closed 4 years ago
#8771 closed defect (fixed)
nasm 2.15 generates lot of warnings when compiling ffmpeg.
Reported by: | Dale Curtis | Owned by: | |
---|---|---|---|
Priority: | minor | Component: | avutil |
Version: | git-master | Keywords: | |
Cc: | Gramner | Blocked By: | |
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | yes |
Description
Summary of the bug:
nasm is more verbose on the warnings it's generating for misconfigured assembly code as of 2.15. So x86inc.asm generates lots of issues -- specifically the -w+error=macro-params-legacy warning.
Here's a snippet of one of the warnings -- there are many more of the same type:
../../third_party/ffmpeg/libavcodec/x86/qpel.asm:88: error: improperly calling multi-line macro `SETUP_STACK_POINTER' with 0 parameters [-w+error=macro-params-legacy]
../../third_party/ffmpeg/libavutil/x86/x86inc.asm:555: ... from macro `PROLOGUE' defined here
../../third_party/ffmpeg/libavcodec/x86/qpel.asm:88: error: improperly calling multi-line macro `ALLOC_STACK' with 0 parameters [-w+error=macro-params-legacy]
../../third_party/ffmpeg/libavutil/x86/x86inc.asm:558: ... from macro `PROLOGUE' defined here
How to reproduce:
configure and build ToT ffmpeg using nasm 2.15
dav1d's x86inc.asm has fixes for this, but I was unable to merge them without breaking other pieces of code (specifically vf_overlay.asm and one more I don't recall (rv34.asm maybe?), so an expert will need to take a look.
dav1d has the most recent version of x86inc.asm:
https://code.videolan.org/videolan/dav1d/-/issues/343
https://code.videolan.org/videolan/dav1d/-/blob/master/src/ext/x86/x86inc.asm
Fixes haven't quite made it to the x264 copy yet, but will probably be there soon:
https://code.videolan.org/videolan/x264/-/blob/master/common/x86/x86inc.asm
Change History (5)
comment:1 by , 4 years ago
Component: | undetermined → avutil |
---|---|
Priority: | normal → minor |
comment:2 by , 4 years ago
comment:3 by , 4 years ago
Status: | new → open |
---|
There are many issue with assembly even in linux kernel. It is very hard to write good assembly. Even ffmpeg https://patchwork.ffmpeg.org/project/ffmpeg/list/?submitter=974
comment:5 by , 4 years ago
Analyzed by developer: | set |
---|---|
Reproduced by developer: | set |
Resolution: | → fixed |
Status: | open → closed |
Warnings removed in commits 0b2b03568f22fdb361d9a44c262bfb9269335f80, 2c844c98285ca03d9cc44db920da645cf0376c40, and 320694ff84a609c5b0438c1f10da355cb48a0be3.
Thank you.
One wonders if 2.15.rc? does this to ffmpeg, what does it do to the multitude of optionally built ffmpeg dependencies ?