[FFmpeg-trac] #1565(avfilter:new): ffmpeg-0.10.3 fails to build on x32 ABI

FFmpeg trac at avcodec.org
Sat Jul 21 17:15:07 CEST 2012


#1565: ffmpeg-0.10.3 fails to build on x32 ABI
-------------------------------------+-------------------------------------
             Reporter:  devsk        |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  avfilter     |                  Version:
             Keywords:  x32 new ABI  |  unspecified
             Blocking:               |               Blocked By:
Analyzed by developer:  0            |  Reproduced by developer:  0
-------------------------------------+-------------------------------------
 Summary of the bug: ffmpeg-0.10.3 fails to build on x32 ABI
 How to reproduce:
 {{{
 emerge -v ffmpeg
 CC      libavfilter/libmpcodecs/vf_pullup.o
 libavfilter/libmpcodecs/vf_ilpack.c: Assembler messages:
 libavfilter/libmpcodecs/vf_ilpack.c:116: Error: operand type mismatch for
 `push'
 libavfilter/libmpcodecs/vf_ilpack.c:195: Error: operand type mismatch for
 `pop'
 libavfilter/libmpcodecs/vf_ilpack.c:224: Error: operand type mismatch for
 `push'
 libavfilter/libmpcodecs/vf_ilpack.c:307: Error: operand type mismatch for
 `pop'
 make: *** [libavfilter/libmpcodecs/vf_ilpack.o] Error 1
 make: *** Waiting for unfinished jobs....
 CC      libavfilter/libmpcodecs/vf_qp.o
 libavfilter/libmpcodecs/vf_mcdeint.c: In function 'config':
 libavfilter/libmpcodecs/vf_mcdeint.c:199:13: warning:
 'avcodec_alloc_context' is deprecated (declared at
 ./libavcodec/avcodec.h:4025) [-Wdeprecated-declarations]
 libavfilter/libmpcodecs/vf_mcdeint.c:227:13: warning: 'avcodec_open' is
 deprecated (declared at ./libavcodec/avcodec.h:4155) [-Wdeprecated-
 declarations]
  * ERROR: media-video/ffmpeg-0.10.3 failed (compile phase):
  *   emake failed

 Line 116 from libavfilter/libmpcodecs/vf_ilpack.c:

 #if HAVE_EBX_AVAILABLE
 static void pack_li_0_MMX(unsigned char *dst, unsigned char *y,
     unsigned char *u, unsigned char *v, int w, int us, int vs)
 {
     __asm__ volatile (""
         "push %%"REG_BP" \n\t"

 REG_BP defined in ./libavutil/x86_cpu.h:

 #if ARCH_X86_64
 ...
 #    define REG_SP "rsp"
 #    define REG_BP "rbp"
 ...
 #elif ARCH_X86_32
 ...
 #    define REG_SP "esp"
 #    define REG_BP "ebp"
 ...
 #else
 typedef int x86_reg;

 The question is: is it hard to provide support for the new x32 ABI which
 is now supported in kernel 3.4.x, glibc-2.16, gcc-4.7.1, binutils-2.22?
 }}}

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/1565>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list