[FFmpeg-cvslog] x86inc: Clear __SECT__

Timothy Gu git at videolan.org
Thu May 28 21:20:45 CEST 2015


ffmpeg | branch: master | Timothy Gu <timothygu99 at gmail.com> | Mon May 25 16:00:43 2015 -0700| [dd4d709be705edaec0bc35c426bf8434e942b7df] | committer: Luca Barbato

x86inc: Clear __SECT__

Silences warning(s) like:

    libavcodec/x86/fft.asm:93: warning: section flags ignored on
    section redeclaration

The cause of this warning is that because `struc` and `endstruc`
attempts to revert to the previous section state [1].

The section state is stored in the macro __SECT__, defined by
x86inc.asm to be `.note.GNU-stack ...`, through the `SECTION`
directive [2].

Thus, the `.note.GNU-stack` section is defined twice
(once in x86inc.asm, once during `endstruc`), causing the warning.

That is the first part of the commit: using the primitive `[section]` format
for .note.GNU-stack etc., which does not update `__SECT__` [2].

That fixes only half of the problem. Even without any `SECTION` directives,
`__SECT__` is predefined as `.text`, which conflicting with the later
`SECTION_TEXT` (which expands to `.text align=16`).

[1]: http://www.nasm.us/doc/nasmdoc6.html#section-6.4
[2]: http://www.nasm.us/doc/nasmdoc6.html#section-6.3

Signed-off-by: Luca Barbato <lu_zero at gentoo.org>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=dd4d709be705edaec0bc35c426bf8434e942b7df
---

 libavutil/x86/x86inc.asm |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/libavutil/x86/x86inc.asm b/libavutil/x86/x86inc.asm
index e3ed381..a6e1f33 100644
--- a/libavutil/x86/x86inc.asm
+++ b/libavutil/x86/x86inc.asm
@@ -722,9 +722,13 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae,
 ; This is needed for ELF, otherwise the GNU linker assumes the stack is
 ; executable by default.
 %ifidn __OUTPUT_FORMAT__,elf
-SECTION .note.GNU-stack noalloc noexec nowrite progbits
+[section .note.GNU-stack noalloc noexec nowrite progbits]
 %endif
 
+; Overrides the default .text section.
+; Silences warnings when defining structures.
+%define __SECT__
+
 ; cpuflags
 
 %assign cpuflags_mmx      (1<<0)



More information about the ffmpeg-cvslog mailing list