Hi, On Wed, Nov 2, 2011 at 1:55 PM, Loren Merritt <[email protected]> wrote: > On Tue, 1 Nov 2011, Justin Ruggles wrote: >> On 10/30/2011 01:29 PM, Ronald S. Bultje wrote: >> >>> @@ -459,10 +462,24 @@ DECLARE_REG 6, ebp, ebp, bp, null, [esp + >>> stack_offset + 28] >>> >>> %assign function_align 16 >>> >>> -; Symbol prefix for C linkage >>> -%macro cglobal 1-2+ >>> - %xdefine %1 mangle(program_name %+ _ %+ %1) >>> - %xdefine %1.skip_prologue %1 %+ .skip_prologue >>> +; Begin a function. >>> +; Applies any symbol mangling needed for C linkage, and sets up a define >>> such that >>> +; subsequent uses of the function name automatically refer to the mangled >>> version. >>> +; Appends cpuflags to the function name if cpuflags has been specified. >>> +%macro cglobal 1-2+ ; name, [PROLOGUE args] >>> +%if %0 == 1 >>> + cglobal_internal %1 %+ SUFFIX >>> +%else >>> + cglobal_internal %1 %+ SUFFIX, %2 >>> +%endif >>> +%endmacro >>> +%macro cglobal_internal 1-2+ >>> + %ifndef cglobaled_%1 >>> + %xdefine %1 mangle(program_name %+ _ %+ %1) >>> + %xdefine %1.skip_prologue %1 %+ .skip_prologue >>> + CAT_XDEFINE cglobaled_, %1, 1 >>> + %endif >>> + %xdefine current_function %1 >>> %ifidn __OUTPUT_FORMAT__,elf >>> global %1:function hidden >>> %else >>> @@ -479,12 +496,14 @@ DECLARE_REG 6, ebp, ebp, bp, null, [esp + >>> stack_offset + 28] >>> >>> %macro cextern 1 >>> %xdefine %1 mangle(program_name %+ _ %+ %1) >>> + CAT_XDEFINE cglobaled_, %1, 1 >>> extern %1 >>> %endmacro >>> >>> -;like cextern, but without the prefix >>> +; like cextern, but without the prefix >>> %macro cextern_naked 1 >>> %xdefine %1 mangle(%1) >>> + CAT_XDEFINE cglobaled_, %1, 1 >>> extern %1 >>> %endmacro >> >> do the above changes do anything functional other than adding the >> cpuflags suffix? > > They also make multiple functions of the same name into a fatal error, > instead of silently renaming one of them. This detected the issue fixed > in patch4 in this thread. > Btw, the avx symmetry patch fixes another fatal error also introduced by > x86inc. If you don't want any uncompilable intermediate revisions, you > have to squash avx symmetry into x86inc and move patch4 first.
Patch 4 is now applied. I'll merge your current AVX patch with the symmetry one, re-send and hopefully then apply. Ronald _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
