Opened 2 years ago

Closed 2 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 Carl Eugen Hoyos, 2 years ago

Component: undeterminedavutil
Priority: normalminor

comment:2 by hydra3333, 2 years ago

Thank you.

One wonders if 2.15.rc? does this to ffmpeg, what does it do to the multitude of optionally built ffmpeg dependencies ?

comment:3 by Balling, 2 years ago

Status: newopen

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

Last edited 2 years ago by Balling (previous) (diff)

comment:4 by Elon Musk, 2 years ago

Balling, could you please just stop!

comment:5 by James, 2 years ago

Analyzed by developer: set
Reproduced by developer: set
Resolution: fixed
Status: openclosed
Note: See TracTickets for help on using tickets.