Opened 14 years ago

Closed 14 years ago

Last modified 14 years ago

#24002 closed defect (fixed)

gstreamer 0.10.27 has bad inline asm

Reported by: jeremyhu (Jeremy Huddleston Sequoia) Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 1.8.2
Keywords: Cc:
Port: gstreamer

Description

  CC    lex._gst_parse_yy.o
  LINK  libgstparse.la
  CC    gstutils.o
/var/tmp//cchdaKxu.s:11248:no instruction mnemonic suffix given and no register operands; can't size instruction
lipo: can't open input file: /var/tmp//cciD2n2U.out (No such file or directory)
make[4]: *** [libgstreamer_0.10_la-gstutils.lo] Error 1

Eliminating optimizations and investigating, I found:

$ /usr/bin/gcc-4.2 -arch x86_64 -c libgstreamer_0.10_la-gstutils.pp.c
/var/tmp//ccm9gu9N.s:548:no instruction mnemonic suffix given and no register operands; can't size instruction

Here is the hunk failing:

_gst_util_uint64_mul_uint64:
LFB118:
        pushq   %rbp
LCFI19:
        movq    %rsp, %rbp
LCFI20:
        movq    %rdi, -8(%rbp)
        movq    %rsi, -16(%rbp)
        movq    %rdx, -24(%rbp)
        movq    %rcx, -32(%rbp)
        movq    -24(%rbp), %rax
        movq    %rax, -48(%rbp)
        movq    -48(%rbp), %rax
        mul -32(%rbp)                  # line 548
        movq    %rdx, %rcx
        movq    %rax, -40(%rbp)
        movq    -16(%rbp), %rax
        movq    -40(%rbp), %rdx
        movq    %rdx, (%rax)
        movq    -8(%rbp), %rax
        movq    %rcx, (%rax)
        leave
        ret

which is from:

static inline void
gst_util_uint64_mul_uint64 (GstUInt64 * c1, GstUInt64 * c0, guint64 arg1,
    guint64 arg2)
{
  __asm__ __volatile__ ("mul %3":"=a" (c0->ll), "=d" (c1->ll)
      :"a" (arg1), "g" (arg2)
      );
}

This "mul %3" should be a "mulq %3"

Change History (2)

comment:1 Changed 14 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Resolution: fixed
Status: newclosed

comment:2 Changed 14 years ago by jmroot (Joshua Root)

Port: gstreamer added
Note: See TracTickets for help on using tickets.