After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 522278 - Problem with "movq" at file gst-plugins-good/gst/goom/xmmx.c
Problem with "movq" at file gst-plugins-good/gst/goom/xmmx.c
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other All
: Normal major
: 0.10.8
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-03-13 17:39 UTC by Manuel Rego Casasnovas
Modified: 2008-03-31 22:30 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
patch (2.01 KB, patch)
2008-03-31 21:58 UTC, David Schleef
committed Details | Review

Description Manuel Rego Casasnovas 2008-03-13 17:39:02 UTC
Please describe the problem:
When you compile the module gst-plugins-good with jhbuild, there are the next errors when it tries to compile the file gst-plugins-good/gst/goom/xmmx.c:
/tmp/cc8Z6pre.s: Assembler messages:
/tmp/cc8Z6pre.s:277: Error: suffix or operands invalid for `movq'
/tmp/cc8Z6pre.s:278: Error: suffix or operands invalid for `movq'

Steps to reproduce:
1. cd gst-plugins-good/gst/goom/
2. gcc -DHAVE_CONFIG_H -I. -I../.. -pthread -I/home/mrego-gnome/od/install/include/gstreamer-0.10 -I/home/mrego-gnome/od/install/include/glib-2.0 -I/home/mrego-gnome/od/install/lib/glib-2.0/include -I/home/mrego-gnome/od/install/include/libxml2 -pthread -I/home/mrego-gnome/od/install/include/gstreamer-0.10 -I/home/mrego-gnome/od/install/include/glib-2.0 -I/home/mrego-gnome/od/install/lib/glib-2.0/include -I/home/mrego-gnome/od/install/include/libxml2 -I../../gst-libs -I../../gst-libs -pthread -I/home/mrego-gnome/od/install/include/gstreamer-0.10 -I/home/mrego-gnome/od/install/include/glib-2.0 -I/home/mrego-gnome/od/install/lib/glib-2.0/include -I/home/mrego-gnome/od/install/include/libxml2 -Wall -Werror -g -DGST_DISABLE_DEPRECATED -I/home/mrego-gnome/od/install/include/liboil-0.3 -DBUILD_MMX -lz -MT libgstgoom_la-xmmx.lo -MD -MP -MF .deps/libgstgoom_la-xmmx.Tpo -c xmmx.c  -fPIC -DPIC -o .libs/libgstgoom_la-xmmx.o


Actual results:
/tmp/cc8Z6pre.s: Assembler messages:
/tmp/cc8Z6pre.s:277: Error: suffix or operands invalid for `movq'
/tmp/cc8Z6pre.s:278: Error: suffix or operands invalid for `movq'

Expected results:
Compile the file.

Does this happen every time?
Yes

Other information:
Comment 1 Sebastian Dröge (slomo) 2008-03-13 19:27:08 UTC
Is this on amd64 in 64 bit mode? Which gcc and ld (binutils) versions are used?

Also, which version of gst-plugins-good is this? Latest CVS?
Comment 2 Manuel Rego Casasnovas 2008-03-13 19:33:30 UTC
It's on a 32 bits distribution (Ubuntu Gutsy Gibbon).

$ gcc --version
gcc (GCC) 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)
Copyright (C) 2006 Free Software Foundation, Inc.
Esto es software libre; vea el código para las condiciones de copia.  NO hay
garantía; ni siquiera para MERCANTIBILIDAD o IDONEIDAD PARA UN PROPÓSITO EN
PARTICULAR

$ ld --version
GNU ld (GNU Binutils for Ubuntu) 2.18
Copyright 2007 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.

The version of gst-plugins-good is the latest CVS.
Comment 3 Marc-Andre Lureau 2008-03-13 19:44:09 UTC
confirmed here
Comment 4 Marc-Andre Lureau 2008-03-13 19:46:29 UTC
I use 4.2

beta@elmarco-laptop ~/git/gnome2$ gcc-4.2 --version
gcc-4.2 (GCC) 4.2.1 (Ubuntu 4.2.1-5ubuntu4)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

GNU assembler (GNU Binutils for Ubuntu) 2.18
Copyright 2007 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `i486-linux-gnu'.
Comment 5 Bastien Nocera 2008-03-13 19:54:52 UTC
Knowing which lines it fails on would be good. Which version of "as" do you have? (output of "as --version")
Comment 6 Marc-Andre Lureau 2008-03-13 20:36:35 UTC
(In reply to comment #5)
> Knowing which lines it fails on would be good. Which version of "as" do you
> have? (output of "as --version")
> 

You should have all those information alreadu in the bug.

line? /tmp/cc8Z6pre.s:277-278 ??
xmmx.h
262:            __asm__ __volatile__ ("movq %%" #reg ", %0" \
270:            __asm__ __volatile__ ("movq %%" #reg ", %0" \
283:            __asm__ __volatile__ ("movq %%" #reg ", %0" \
291:            __asm__ __volatile__ ("movq %%" #reg ", %0" \
301:            __asm__ __volatile__ ("movq %%" #reg ", %0" \
320:            __asm__ __volatile__ ("movq %%" #regs ", %0" \
325:            __asm__ __volatile__ ("movq %%" #regd ", %0" \
331:            __asm__ __volatile__ ("movq %%" #regd ", 
...

Code looks like:
#APP
        #1
         movq %esi, %mm0#1
         movq %eax, %mm1#1
         psubd   %mm0, %mm1#1
         movq    %mm1, %mm2#1
         pslld     $16, %mm1#1


binutils, 2.18-0ubuntu3, in my case.
Comment 7 Manuel Rego Casasnovas 2008-03-14 15:36:54 UTC
as --version
GNU assembler (GNU Binutils for Ubuntu) 2.18
Copyright 2007 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `i486-linux-gnu'.
Comment 8 Marc-Andre Lureau 2008-03-14 16:54:05 UTC
(In reply to comment #7)
> as --version
> GNU assembler (GNU Binutils for Ubuntu) 2.18

I guess we have the same version, I reported a bug in ubuntu:  https://bugs.launchpad.net/ubuntu/+source/binutils/+bug/202209
Comment 9 Kjartan Maraas 2008-03-31 20:46:55 UTC
I see this here too, but only when building with -O0 to get better backtraces.
Comment 10 David Schleef 2008-03-31 21:58:51 UTC
Created attachment 108374 [details] [review]
patch

2008-03-31  David Schleef  <ds@schleef.org>

        * gst/goom/xmmx.c: Fix constraints on asm code so that it
          compiles consistently.  Fixes #522278.
Comment 11 David Schleef 2008-03-31 22:06:19 UTC
I attempted to test this, but goom never ran the code in question.  Assuming fixed.